02-KMeans聚类PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分群1 84
33.73%
分群2 114
45.78%
分群3 51
20.48%
K-Means聚类案例
%为便于可视化,仅选取6个属性维度中的两个维度进行绘图
figure; scatter(X(IDX==1,2),X(IDX==1,3),'rx') hold on scatter(X(IDX==2,2),X(IDX==2,3),'m+') scatter(X(IDX==3,2),X(IDX==3,3),'c*') plot(C(:,2),C(:,3),'ko','MarkerSize',4,'LineWidth',1.5) legend('Cluster 1','Cluster 2','Cluster 3','Centroids')
Matlab的K-Means函数
函数参数选项Param:
1. ‘Distance’(距离测度):
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式) ‘cityblock’ 绝度误差和,又称:L1 ‘cosine’ 针对向量 ‘correlation’ 针对有时序关系的值 ‘ hamming’ 只针对二进制数据
Matlab的K-Means函数
函数参数选项Param:
2. ‘Start’(初始质心位置选择方法)
‘sample’从A中随机选取K个质心点 ‘uniform’根据A的分布范围均匀的随机生成K个质心 ‘cluste’r 初始聚类阶段随机选择10%的A的子样本(此方
法初始使用‘sample’方法) ‘matrix’提供一K*N的矩阵,作为初始质心位置集合。
K-Means聚类案例
% 数据标准化
X = zscore(data);
K-Means聚类案例
% 调用kmeans算法
opts = statset('MaxIter',iteration); [IDX,C,~,D] = kmeans(X,k,'distance',distance,'Options',opts);
分群类别 样本个数 样本个数占比
3. ‘Replicates’(聚类重复次数)整数
K-Means聚类案例
出行旅游目的地的选取体现了个人兴趣。所以可以通过 对旅游目的地的评论进行聚类,以此来反映人们的共同兴趣。
User Id
User 1 User 2 User 3 User 4 User 5 User 6 User 7 User 8 User 9 User 10
Matlab的K-Means函数
输入参数:
A:M*N的数据
K :表示将A划分为K类,为整数
输出参数:
Idx :M*1的向量,存储的是每个点的聚类标号 C :K*N的矩阵,存储的是K个聚类质心位置 sumD: 1*K的和向量,存储类内所有点与该类质心点距离之和 D :M*K的矩阵,存储的是每个点与所有质心的距离
数据科学基础Ⅰ
(Matlab)
东北大学
K-Means聚类的原理
K-Means算法是典型的基于距离的非层次聚类算 法,在最小化误差函数的基础上将数据划分为预定的 类数K,采用距离作为相似性的评价指标,即认为两 个对象的距离越近,其相似度就越大。
K-Means聚类算法中,一般需要度量样本之间的 距离、样本与簇之间的距离以及簇与簇之间的距离。
K-Means聚类步骤
① 从N个样本数据中随机选取K个对象作为初始的聚类中心; ② 分别计算每个样本到各个聚类中心的距离,将对象分配到
距离最近的聚类中; ③ 所有对象分配完成后,重新计算K个聚类的中心; ④ 与前一次计算得到的K个聚类中心比较,如果聚类中心发
生变化,转② ,否则转⑤ ; ⑤ 当质心不发生变化时停止并输出聚类结果。
Sports 2 2 2 2 2 3 3 3 3 3
Number of reviews on different category
Religious Nature Theatre Shopping Picnic
77
79
69
68
95
62
76
76
69
68
50
97
87
50
75
68
77
95
76
61
98
54
59
95
86
52
109
93
52
76
64
85
82
73
69
54
107
92
54
76
64
108
64
54
93
86
76
Байду номын сангаас
74
74
103
K-Means聚类案例
% 参数初始化
k = 3; % 聚类的类别 iteration =500 ; % 聚类最大循环次数 distance = 'sqEuclidean’; % 距离函数
Matlab的K-Means函数
使用方法:
Idx=Kmeans(A,K) [Idx,C]=Kmeans(A,K) [Idx,C,sumD]=Kmeans(A,K) [Idx,C,sumD,D]=Kmeans(A,K) […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)
相关文档
最新文档