《大数据分析技术》 课件 第8章-聚类分析_第1页
《大数据分析技术》 课件 第8章-聚类分析_第2页
《大数据分析技术》 课件 第8章-聚类分析_第3页
《大数据分析技术》 课件 第8章-聚类分析_第4页
《大数据分析技术》 课件 第8章-聚类分析_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章聚类分析BigData目录§8.1导论§8.2模糊c均值聚类§8.3k均值聚类§8.4密度聚类算法聚类分析是一类无监督机器学习方法,旨在将相似的数据点归为一类,以便发现数据中的内在模式和结构。本节介绍聚类分析的概念、数学理论及步骤。§8.1导论一、概念1.引例:气象站的调整问题现有12个气象站10年的降雨信息。现因资金问题要减少2个气象站,请问减少哪两个其气象站合适?2.定义

所谓聚类分析,是指按相似性的大小将数据点进行归类——相似性大的归为一类,相似性小的归到不同的类中,目的是发现数据点的内在结构和规律。本节其他知识点请见下页(↓)导图。知识点导图§8.2模糊c均值聚类模糊c均值聚类是一种用模糊数学中的隶属度来定义对象之间的相似度的聚类方法。其中c是指类别数量,是需事先设定的一个超参数。一、定义

设原始数据矩阵X标准化为X’:模糊c均值聚类就是将X划分为c类(),聚类中心为:令

uij表示第i个对象属于第j个类的隶属度,有

1.聚类准则定义目标函数为

2.算法描述如右图所示→

Python没有集成模糊c均值聚类算法,我们写了一个自建库fcm_clusterer,遵循python机器学习库sklearn接口规范,用法如下:二、实现###2.分析模块##2.1建模fromfcm_clustererimportFuzzyCMeansmodel=FuzzyCMeans()##2.2训练model.fit(data)##2.3获取结果results=model.get_results()##2.4可视化聚类结果model.visualize_clusters()##2.5可视化各特征对各簇的重要性model.visualize_feature_importance()其中通过get_results()方法获取的结果包括7个方面:

'1.样本类别标签’:self.obj_labels,'2.按类别分组的样本’:self.clusters,'3.原始聚类中心’:self.centers,'4.标准化聚类中心’:self.scaled_centers,'5.聚类质量评估’:self.quality,'6.各类别统计信息’:self.cluster_stats,'7.白化隶属度矩阵’:self.whiteU另外,还要模型评估的clustering_evaluator方法和新对象类别预测的predict方法。应用中体会聚类器的要领。三、案例分析-大型百货商场会员画像数据集“【第8章案例分析】会员的RFMP信息.xlsx”是某大型百货商场会员的RFMP信息。下表是数据的前5行:请根据数据集完成下述任务:(一)应用模糊C均值聚类法对数据集中的会员进行聚类分析,类别数C自拟;(二)对聚类结果进行评价;(三)请对各类会员进行画像,即描述各类会员的特征。卡号RFMP3c3cba51030113556.986903.834c4b072f025196460.745117.435d1d7f0c9193720047.1828221.56e70373e21884790.518352.94565cc95ff3834250523.813394.075【实验过程】本案例有两个模块:数据模块→分析模块。

数据模块主要是:读入数据,数据标准化已放在模型的fit方法中;

分析模块主要是:建立模型(拟定C=3)

→训练模型(数据标准化、聚类中心的计算,等)

→评估模型(三个非监督型指标)

→提取结果(7个方面的结果+可视化)【实验结果】(1)各对象聚类后的类别标签及各类成员(前5行)样本编号所属类别类别1类别2类别3111485421250683135198414529951553100……………聚类效果可视化:可以看出各簇还是聚集在一起的。(2)聚类中心(标准化数据)类别标签RFMP类均值类标准差类别10.1154740.0708030.0303880.0444910.0652890.037414类别20.702840.0100520.0070190.0173090.1843050.345717类别30.033660.3640430.1954210.1747410.1919660.135376(3)模型评估评估指标值备注Calinski-Harabasz指数264.8118826越高表示聚类效果越好Davis-Bouldin指数0.835772933越低表示聚类效果越好轮廓系数0.469006101范围[-1,1],越接近1表示聚类效果越好(4)各类别统计信息类别类内样本数类内占比重要性显著特征(重要性前三)RFMP类别15022.02640.16850.07750.04720.0344RFM类别29340.96920.41880.07750.07060.0615RFM类别38437.00440.25030.21570.11780.0959RFM特征重要性可视化(5)画像类别消费特点画像类别1R相对F、M、P偏大,说明是活跃度一般的会员普通会员类别2R特别大,F、M、P三个特征都特别小,说明是不常购物会员沉睡会员(流失风险会员)类别3R特别小,F、M、P三个特征都较大,说明是常购物会员高价值活跃会员描述会员的四个指标,R是指最近一次消费记录到当前时间的间隔,F是指一定时间内的消费频率,M是指一定时间内的累计消费金额,P是指会员在一定时间内给商场带来的累计利润。R用来描述会员的活跃度,F用来描述会员的忠诚度,M和P都用来描述会员的价值度。####案例分析——大型百货商场会员画像###1.数据模块importpandasaspdfile=r"..\数据\【第8章案例分析】会员的RFMP信息.xlsx"data=pd.read_excel(file,index_col=0)###2.分析模块##2.1建模——建立模糊c均值聚类模型,其中类别数设置为3,隶属度指数因子设置为2fromfcm_clustererimportFuzzyCMeansmodel=FuzzyCMeans(n_clusters=3,e=2)##2.2训练model.fit(data)##2.3获取结果results=model.get_results()##2.4可视化聚类结果model.visualize_clusters()##2.5可视化各特征对各簇的重要性model.visualize_feature_importance()分析程序小结+课程思政:模糊c均值聚类算法是基于模糊数学的算法,算法流程在教材中图文并茂,但隶属度这个陌生的概念会让算法理解起来有一定的难度。模糊c聚类算法没有集成在python机器学习库中,我们基于算法自建了模糊c均值聚类器fcm_clusterer,输入输出都很友好,供大家使用。课程思政:FCM允许一个样本以不同隶属度属于多个类别,打破了“非此即彼”的二元对立。这可谓与中华传统文化中的“中庸之道”与“和而不同”的智慧不谋而合。§8.3K-均值聚类

K-均值聚类是一个小而美的聚类方法,特点是算法容易懂、效率特别高、应用极其广。其中的K是类别数量,是算法中需要事先设定的一个超参数。算法如右图所示。一、概念K-均值聚类算法流程图K-means的升级版K-means++,主要是初始聚类中心的选取方法上做了改进二、基于python的实现Python中实现k-mean聚类算法的工具是来自sklearn.cluster模块的Kmeans类,其语法及重要参数介绍如下:fromsklearn.clusterimportKmeansmodel=KMeans(n_clusters=8,init='k-means++’)主要输入项:(1)n_clusters:类别数,默认值是8(2)init:初始聚类中心的选取方法,取值有3个{'k-means++','random',或一个数组}主要输出项:(1)label_:每个样本对应的类别标签(2)cluster_centers_:聚类中心,是一个[n_clusters,n_features]矩阵,示例:centroid=pd.DataFrame(model.cluster_centers_)该语句给出聚类中心。应用k-means聚类算法解决大型百货商场会员画像问题。三、案例分析

【实验过程】实验流程:数据模块→分析模块→提取结果

【实验结果】按上述流程编程,运行后按流程输出结果:对象ID类别标签RFMP3c3cba510类别0246.465.4319047.912069.764c4b072f1类别116.5034.77214153.4611110.08d1d7f0c92类别26.0072.00826828.0420684.126e70373e065cc95ff1……会员类别标签各簇中心模型评估结果从评估结果和聚类结果的可视化看,聚类效果优良评估指标值备注Calinski-Harabasz指数695.3054越高表示聚类效果越好Davis-Bouldin指数0.4199越低表示聚类效果越好轮廓系数0.7802范围[-1,1],越接近1表示聚类效果越好小结+课程思政:应用K-means实现聚类分析,总体上代码简单。但若要输出的结果直观,需我们自己整理输出结果的格式,比如各对象对应的类别标签、聚类中心以数据框形式输出;聚类效果可视化、模型评估等输出内容,则需我们额外编写代码来实现,K-means并不自带这些功能。课程思政:k均值聚类通过“质心”不断吸引样本、调整位置,最终形成稳定结构——这就像一个组织的发展,需要有坚强的“核心”来凝聚力量,统一方向。我国坚持党的领导,正是发挥“政治质心”的作用,确保社会系统在复杂环境中保持稳定与高效。§8.4密度聚类〇、导言密度:是指给定半径ε,该样本点的ε邻域内所含样本点的数量。基于密度聚类的核心思想:只要样本点的密度大于某个阈值,则将该样本添加到最近的簇中。特点:可发现任意形状的聚类,且对噪声数据不敏感。本节介绍两个密度聚类法:基于密度的带噪声的应用空间聚类(DBSCAN)及其改进版层次DBSCAN(HDBSCAN),HDBSCAN旨在克服DBSCAN在处理不同密度簇和噪声数据时的局限性。点的密度示意图

一、DBSCAN2.上述概念的示意图孤立点即噪声3.DBSCAN算法导图之后这个噪声点可能还是会属于某个簇Python中实现t-SNE的工具是来自sklearn.cluster模块的DBSCAN类。model=DBSCAN(

eps=0.5,

min_samples=5,metric='euclidean’,algorithm='auto')主要输入项:(1)eps:邻域半径(2)min_samples:算法中的m(3)metric:样本点之间的距离(4)algorithm:聚类算法,取值有4个

{'brute','ball_tree','kd_tree','auto'}主要输出项:(1)core_sample_indices_:核心样本点的索引;(2)components_:核心样本点;(3)labels_:类别标签,噪声的标签是-1。4.DBSCAN算法实现对象ID类别标签簇标签RFMP3c3cba51-1簇00.05900.07610.02160.03844c4b072f-1簇10.90170.00000.00200.0084d1d7f0c9-1簇20.49170.01090.00350.00856e70373e-165cc95ff-1……应用DBSCAN聚类算法解决大型百货商场会员画像问题。

【实验过程】实验流程:数据模块→分析模块→提取结果

【实验结果】按上述流程编程,运行后按流程输出结果:会员类别标签密度峰值点5.DBSCAN案例分析模型评估结果从评估结果和聚类结果的可视化看,聚类效果优良评估指标指标得分备注方差比标准:CH得分178.8174越高表示聚类效果越好戴维森-堡丁指数:DB得分0.8681越低表示聚类效果越好轮廓系数:silhouette得分0.4058范围[-1,1],越接近1表示聚类效果越好1.安装通过anaconda

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论