![《大数据处理与智能决策 》课件-8-聚类算法典型算法_第1页](http://file4.renrendoc.com/view10/M01/0C/08/wKhkGWekD0KAIA8AAAJ4YJeJvOc047.jpg)
![《大数据处理与智能决策 》课件-8-聚类算法典型算法_第2页](http://file4.renrendoc.com/view10/M01/0C/08/wKhkGWekD0KAIA8AAAJ4YJeJvOc0472.jpg)
![《大数据处理与智能决策 》课件-8-聚类算法典型算法_第3页](http://file4.renrendoc.com/view10/M01/0C/08/wKhkGWekD0KAIA8AAAJ4YJeJvOc0473.jpg)
![《大数据处理与智能决策 》课件-8-聚类算法典型算法_第4页](http://file4.renrendoc.com/view10/M01/0C/08/wKhkGWekD0KAIA8AAAJ4YJeJvOc0474.jpg)
![《大数据处理与智能决策 》课件-8-聚类算法典型算法_第5页](http://file4.renrendoc.com/view10/M01/0C/08/wKhkGWekD0KAIA8AAAJ4YJeJvOc0475.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
K-means算法
由于具有出色的速度和良好的可扩展性,Kmeans聚类算法算得上是最著名的聚类方法。Kmeans算法是一个重复移动类中心点的过程,把类的中心点,也称重心(centroids),移动到其包含成员的平均位置,然后重新划分其内部成员。k是算法计算出的超参数,表示类的数量;Kmeans可以自动分配样本到不同的类,但是不能决定究竟要分几个类。k必须是一个比训练集样本数小的正整数。有时,类的数量是由问题内容指定的。
例如,一个鞋厂有三种新款式,它想知道每种新款式都有哪些潜在客户,于是它调研客户,然后从数据里找出三类。也有一些问题没有指定聚类的数量,最优的聚类数量是不确定的。后面我将会详细介绍一些方法来估计最优聚类数量。hyperparameterK-means算法原理k-means算法的基本步骤:
(1)从数据中选择k个对象作为初始聚类中心即初始质心;
(2)然后将数据集中的每一个点分配到一个簇中,即为每一个点找到距其最近的质心,并将其分配给该质心所对应的簇;
(3)每一个簇的质心更新为该簇所有点的平均值;
(4)计算标准测度函数,直到达到最大迭代次数,则停止,否则,继续操作。K-means算法原理1、为什么K值的确定很重要?举例说明先产生三组不同的高斯分布数据,做为原始数据,如下图:K-means算法的关键点:K值和质心的选取K-means算法原理当聚类个数K取不同的值,聚类结果不同,如下:K=2时K=3时K-means算法原理K=4时K=5时可知K-means算法中K值取值不同时对聚类的结果影响至关重要,上例中k为3时才是理想的聚类结果。那么如何初步确定K值的选取呢??K-means算法原理K值确定方法-肘部法则:肘部法的核心指标是SSE(sumofthesquarederrors,误差平方和)其中,Ci是第i个簇,p是Ci中的样本点,mi是Ci的质心(Ci中所有样本的均值),SSE是所有样本的聚类误差,代表了聚类效果的好坏。K-means算法原理肘部法的核心思想是:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。当然,这也是该方法被称为手肘法的原因。K-means算法原理
2、初始质心的选取方法:
1)选择适当的初始质心是基本kmeans算法的关键步骤。常见的方法是随机的选取初始中心,但是这样簇的质量常常很差。处理选取初始质心问题的一种常用技术是:多次运行,每次使用一组不同的随机初始质心,然后选取具有最小SSE(误差的平方和)的簇集。这种策略简单,但是效果可能不好,这取决于数据集和寻找的簇的个数。2)首先随机选择一个点作为第一个初始类簇中心点,然后选择距离该点最远的那个点作为第二个初始类簇中心点,然后再选择距离前两个点的最近距离最大的点作为第三个初始类簇的中心点,以此类推,直至选出K个初始类簇中心点。(推荐)K-means算法原理K-means伪代码实现:创建k个点作为起始质心,可以随机选择(位于数据边界内)当任意一个点的簇分配结果发生改变时对数据集中每一个点对每个质心计算质心与数据点之间的距离将数据点分配到距其最近的簇对每一个簇,计算簇中所有点的均值并将均值作为质心K-means算法的matlab实现两个公式的理解:公式一:求出所有数据和初始化的随机数据的距离,然后找出距离每个初始数据最近的数据。公式二:意思就是求出所有和这个初始数据最近原始数据的距离的均值。然后不断迭代两个公式,直到所有的u都不怎么变化了,就算完成了。计算聚类结果的准确率[a,b]=find(Idx==Compound(:,3));K-means算法的matlab实现main.mclearall;closeall;clc;%第一类数据mu1=[000];%均值S1=[0.300;00.350;000.3];%协方差data1=mvnrnd(mu1,S1,100);%产生高斯分布数据%%第二类数据mu2=[1.251.251.25];S2=[0.300;00.350;000.3];data2=mvnrnd(mu2,S2,100);%第三个类数据mu3=[-1.251.25-1.25];S3=[0.300;00.350;000.3];data3=mvnrnd(mu3,S3,100);%显示数据plot3(data1(:,1),data1(:,2),data1(:,3),'+');holdon;plot3(data2(:,1),data2(:,2),data2(:,3),'r+');plot3(data3(:,1),data3(:,2),data3(:,3),'g+');gridon;K-means算法实现%三类数据合成一个不带标号的数据类data=[data1;data2;data3];%这里的data是不带标号的%k-means聚类[ure]=KMeans(data,3);%最后产生带标号的数据,标号在所有数据的最后,意思就是数据再加一维度[mn]=size(re);%最后显示聚类后的数据figure;holdon;fori=1:mifre(i,4)==1plot3(re(i,1),re(i,2),re(i,3),'ro');elseifre(i,4)==2plot3(re(i,1),re(i,2),re(i,3),'go');elseplot3(re(i,1),re(i,2),re(i,3),'bo');endendgridon;K-means算法实现KMeans.m%N是数据一共分多少类%data是输入的不带分类标号的数据%u是每一类的中心%re是返回的带分类标号的数据function[ure]=KMeans(data,N)[mn]=size(data);%m是数据个数,n是数据维数
ma=zeros(n);%每一维最大的数
mi=zeros(n);%每一维最小的数
u=zeros(N,n);%随机初始化,最终迭代到每一类的中心位置
fori=1:nma(i)=max(data(:,i));%每一维最大的数
mi(i)=min(data(:,i));%每一维最小的数
forj=1:Nu(j,i)=ma(i)+(mi(i)-ma(i))*rand();%随机初始化,不过还是在每一维[minmax]中初始化好些
endendK-means算法实现while1pre_u=u;%上一次求得的中心位置
fori=1:Ntmp{i}=[];%公式一中的x(i)-uj,为公式一实现做准备
forj=1:mtmp{i}=[tmp{i};data(j,:)-u(i,:)];endendquan=zeros(m,N);fori=1:m%公式一的实现
c=[];forj=1:Nc=[cnorm(tmp{j}(i,:))];end[junkindex]=min(c);quan(i,index)=norm(tmp{index}(i,:));endfori=1:N%公式二的实现
forj=1:nu(i,j)=sum(quan(:,i).*data(:,j))/sum(quan(:,i));endendifnorm(pre_u-u)<0.1%不断迭代直到位置不再变化
break;endendK-means算法实现re=[];fori=1:mtmp=[];forj=1:Ntmp=[tmpnorm(data(i,:)-u(j,:))];end[junkindex]=min(tmp);re=[re;data(i,:)index];end
endK-means算法实现结果:初始的三类样本K-means算法实现结果:聚类的结果K-means算法实现K-means算法应用实例一、电信运营商–客户价值分析从客户需求出发,了解客户需要什么,他们有怎么样的特征,电信运营商为客户设置不同的优惠套餐争取更多的用户:推出不同的优惠套餐降低客户流失率提高收入增加ARPU值(averagerevenueperuser每个用户平均收益)精准的市场营销策略定制
K-means算法应用实例使用聚类模型—分析项目需求K-means算法应用实例importpandasaspdimportmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansfromscipy.cluster.hierarchyimportlinkage,dendrogramcustinfo=pd.read_csv(r'.\\data\\custinfo.csv')custcall=pd.read_csv(r'.\\data\\custcall.csv')custcall.head()1、数据感知K-means算法应用实例2、数据预处理K-means算法应用实例K-means算法应用实例3、模型建立K-means算法应用实例K-means算法应用实例K-means算法应用实例defdensity_plot(data):#自定义作图函数
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
p=data.plot(kind='kde',linewidth=2,subplots=True,sharex=False,figsize=(10,15))[p[i].set_ylabel(u'密度',fontproperties='SimHei')for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国六位机械计数器市场调查研究报告
- 2025年转向中间臂支架项目可行性研究报告
- 常州2025年江苏常州市卫生健康委员会直属事业单位招聘高层次紧缺专业人才269人(定期)笔试历年参考题库附带答案详解
- 2025年生化仪器项目可行性研究报告
- 成都2024年四川成都经开区(龙泉驿区)招聘教育人才11人笔试历年参考题库附带答案详解
- 2025年智能程序温控箱项目可行性研究报告
- 2025至2031年中国喷灌机管道行业投资前景及策略咨询研究报告
- 2025年双色底项目可行性研究报告
- 2025至2030年中国袋装水简易连接器数据监测研究报告
- 2025年X射线探测器项目可行性研究报告
- 2024-2030年中国免疫细胞存储行业发展模式及投资战略分析报告
- 家庭清洁课件教学课件
- 湖南财政经济学院《常微分方程》2023-2024学年第一学期期末试卷
- 2011年公务员国考《申论》真题卷及答案(地市级)
- 《篮球体前变向运球技术》教案(共三篇)
- 多元化评价体系构建
- 部编版六年级下册道德与法治全册教案教学设计
- DBJ04∕T 290-2012 袖阀管注浆加固地基技术规程
- GB/T 17775-2024旅游景区质量等级划分
- 灯笼彩灯安装合同范本
- 物流无人机垂直起降场选址与建设规范
评论
0/150
提交评论