数据分析K-Means聚类(原理+电商平台销售实例)

本文详细介绍了K-Means聚类算法,包括聚类的基本概念、类型(划分、层次、基于密度)及其在商业、金融等领域的应用。重点讲解了K-Means的原理、优缺点,并通过电商平台销售实例展示了数据预处理(如数据观察、缺失值处理、异常值处理、重置索引)和Python实现过程,包括特征编码、数据标准化、降维和肘部法则确定最优k值。最后,解释了K-Means聚类结果的含义。
摘要由CSDN通过智能技术生成

一、聚类

1.什么是聚类 

聚类(Clustering)是数据挖掘和机器学习中的一种无监督学习方法,是将对象集合中的对象分类到不同的类或者簇这样的一个过程,使得同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。簇内的相似性越大,簇间差别越大,聚类就越好。 

聚类结果的好坏取决于该聚类方法采用的相似性评估方法以及该方法的具体实现,聚类方法的好坏还取决于该方法是能发现某些还是所有的隐含模式。

2.聚类类型

(1)划分聚类

对于给定的数据集,划分聚类方法首先创建一个初始划分,然后采用一种迭代的重定位技术,尝试通过对象在划分间的移动来改进划分,直到使评价聚类性能的评价函数的值达到最优为止。划分聚类方法以距离作为数据集中不同数据间的相似性度量,将数据集划分成多个簇。划分聚类方法是最基本的聚类方法,属于这样的聚类方法有 k 均值((k-means)、k中心点(k-medoids)等。

划分聚类方法的主要思想: 给定一个包含 n个数据对象的数据集,划分聚类方法将数据对象的数据集进行k个划分,每个划分表示一个簇(类),并且k≤n,同时满足下面两个条件:每个簇至少包含一个对象,每个对象属于且仅属于一个簇。对于给定的要构建的划分的数目 k,划分方法首先给出一个初始的划分,然后采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进划分,使得每一次改进之后的划分方案都较前一次更好。好的划分是指同一簇中的对象之间尽可能“接近”,不同簇中的对象之间尽可能“远离”。

划分聚类方法的评价函数:评价划分聚类效果的评价函数着重考虑两方面,即每个簇中的对象应该是紧凑的,各个簇间的对象的距离应该尽可能远。实现这种考虑的一种直接方法就是观察聚类C 的类内差异w(C)和类间差异b(C)。类内差异衡量类内的对象之间的紧凑性,类间差异衡量不同类之间的距离。
类内差异可以用距离函数来表示,最简单的就是计算类内的每个对象点到它所属类的中心的距离的平方和,即

                        

类间差异定义为类中心之间距离的平方和,即

                           

两式中的 \overline {x}_{i}\overline {x}_{j} 分别是类类Cᵢ、Cⱼ的类中心。

聚类C的聚类质量可以用w(C)和b(C)的一个单调组合来表示,如w(C) / b(C)

(2)层次聚类

划分聚类获得的是单级聚类 ,而层次聚类是将数据集分解成多级进行聚类 ,层的分解可以用树状图来表示。根据层次的分解方法不同 ,层次聚类可以分为自底向上凝聚的聚集型(Agglomerative Clustering)和自顶向下分裂的分解型聚类(Divisive Clustering),凝聚型方法一开始就将每个对象作为单独的一簇,然后不断地合并相近的对象或簇。分裂型方法一开始把所有的对象置于一个簇中,在迭代的每一步中 ,一个簇被分裂为更小的簇 ,直到每个对象在一个单独的簇中,或者达到算法终止条件。 

(3)基于密度的聚类

绝大多数划分聚类基于对象之间的距离进行聚类 ,这样的方法只能发现球状的类,而在发现任意形状的类上遇到了困难。 基于密度的聚类的主要思想: 只要临近区域的密度(对象或数据点的数目)超过某个阈值就继续聚类。 这样的方法可以用来过滤噪声和孤立点数据,发现任意形状的类。 

3.聚类的应用领域

聚类分析的应用领域非常广泛,以下只是其中的一些应用场景。

(1)商业

聚类分析可以用来发现不同的客户群体,并通过用户行为模式刻画不同的客户群特征。聚类是细分市场的常用工具,同时也可以用于研究客户行为,寻找潜在市场。

(2)金融

通过利用客户的财务数据、交易记录等信息进行聚类,可以区分不同信用等级的客户群体;根据资产的风险收益特性将投资产品进行分类,可以优化投资策略

(3)供应链管理

聚类分析可以帮助识别供应链环节中的瓶颈或优化点,例如对运输路线、供应商表现等进行分类。

(4)电子商务

在电商网站中,通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,可以更好地电商运营者了解自己的客户,从而提供更合适的服务。

二、K-Means 聚类

1.K-Means 聚类的原理

KMeans聚类算法也被称为k平均聚类算法,是一种广泛使用的聚类算法。k均值用质心来表示一个簇,质心就是一组数据对象点的平均值。k均值算法以k为输入参数,将n个数据对象划分为k个簇,使得簇内数据对象具有较高的相似度。

k均值聚类算法的思想是从包含n个数据对象的数据集中随机地挑选k个对象,每个对象代表一个簇的平均值或质心或中心,其中k是用户指定的参数,即所期望要划分的簇的个数;对剩余的每个数据对象点根据其与各个簇中心的距离,将它指派到最近的簇;然后根据指派到簇的数据对象点,更新每个簇的中心;重复指派和更新的步骤直到簇或中心不发生变化,或度量聚类质量的目标函数收敛。k均值算法的目标函数E如下:

                                        

其中X是空间中的点表示给定的数据对象,\overline {x}_{i} 是簇 Cᵢ 的数据对象平均值,d(X,\overline {x}_{i})表示X与

  • 32
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1. 项目背景 基于项目提供的汽车相关数据,通过聚类分析的方法实现汽车产品聚类,以构建汽车产品画像、分析产品定位、完成汽车竞品分析等要求。 2. 项目数据 项目提供的汽车数据包括26个字段共205条数据,数据文件为“car_price.csv” 26个字段可以划分为类别型变量和数值型变量两种,包括汽车的长/宽/高、汽车净重、燃油系统、燃油类型、驱动类型、峰值转速、里程数、汽车价格等。 3. 项目要求 通过聚类的方法构建汽车产品画像、分析不同类别汽车的产品定位,寻找Volkswagen大众汽车的竞品品牌。 4. 项目思路 第一步:数据字段理解 根据项目所提供的数据,对数据中26个字段进行理解。结合汽车行业的相关知识,26个字段可以大致归为两类:第一类是车辆自身属性(如燃油系统、燃油类型、汽缸数、峰值转速、汽车长宽高等);第二类是车辆的市场属性(如车辆名称、车辆价格、风险评估等级)。 26个字段主要分为数值型变量和类别型变量两类。 第二步:原始数据描述性统计及变量分布可视化 对原始数据进行描述性统计并对数据中的字段分布进行可视化(详情见主文档)。通过对原始数据的观察,数据不存在缺失值、不存在重复值,“CarName”字段存在部分车辆品牌名称错误的情况。 第三步:确定聚类方法,明确聚类要求 通过对原始数据的变量观察,该数据变量主要为数值型变量和类别型变量两类,且类别型变量数量较多,常用的K-means聚类只能分析数值型变量,无法考虑类别型变量所包含的信息。二阶段聚类法适用于包含数值型和类别型变量的混合数据,因此考虑使用二阶段聚类法分析数据。 二阶段聚类法的要求是:类别型变量符合多项式分布(即变量的值分属几个类别);数值型变量间要相互独立,且数值型变量近似服从正态分布。项目所给出的数据中,类别型变量符合多项式分布,因此仅需进一步观察并处理数值型变量。 第四步:特征工程 数据清洗与新变量生成。原始数据指给出了车辆的名称,没有给出车辆所属品牌,结合最终聚类分析的需要,根据“CarName”字段提取出车辆所属品牌信息,命名为“brand”。同时对品牌名称中的错误拼写进行清洗。 变量相关性分析与可视化。由于二阶段聚类要求数值型变量间相互独立,所以需要对数值型变量间的相关性进行查看与处理。相关性分析结果表示14个数值型变量之间存在高相关性情况,需要结合汽车知识背景与变量特征进行进一步处理。 高相关变量的处理——“highwaympg”和“citympg”呈高度正相关。其实不管是高速mpg还是城市mpg,其本质都是mpg指标,而且通过观察数据,二者之间的差异较小(极值、均值),因此考虑将二者合并为一个指标'mpg',计算方式为取二者均值:mpg=(highwaympg+citympg)/2; 高相关性变量的处理——“price”变量与其余变量产生高相关性的频数最多,可能是因为车辆自身属性和配置的变动会直接影响着车辆的市场价格。此外,与其他变量相比,price属性属于车辆的市场销售属性(而非车辆自身属性),在聚类中更适合作为类别型变量,对车辆的价位进行划分,因此,考虑将price变量转换为类别型变量,按照其价格分布划分为Low price(20000)三类; 高相关性变量的处理——对于其余数值型变量,变量数目较多且多个变量之间存在相关性,因此考虑使用因子分析对数值型变量进行降维,以减少数值型变量的数目并使变量间相互独立。 第五步:数值型变量因子分析结果(基于SPSS实现) 利用SPSS对数值型变量进行因子分析,KMO值>0.8,巴特利球形检验p值=0,说明参与因子分析的变量间存在相关性,可以进行因子分析。最终得到两个因子。 第一个因子包括:车长、车宽、车净重、引擎尺寸、车轴距、mpg、马力、车内径比。简单将该因子归纳为车辆截面与马力因子; 第二个因子包括:车高、峰值转速、车压缩比。简单将该因子归纳为车辆垂面与转速因子; 第六步:两阶段聚类及结果(基于SPSS实现) 对处理后的数据进行两阶段聚类,最终将205辆车聚为两类。 根据SPSS聚类结果,第一类中包含120条车辆数据,占总数据的58.5%;第二类中包含85条车辆数据,占总数据的41.5%。两类簇数据规模近似,没有过大或过小的类簇。 根据SPSS聚类结果,聚类质量属于“良好”范围,仍有进一步改进和优化的空间。 根据SPSS聚类结果,显著区分两类类簇的变量(重要性>0.6)按重要性大小排序依次是驱动类型、燃油系统、车辆截面与马力因子、价格范围。 汽车产品画像与产品定位 根据区分类簇的四个重要标签来对数据中的汽车产品进行产品画像与产品定位。 第一类画像:驱动类型多为fwd(前轮驱动),燃油系统多
K-means聚类算法是一种无监督学习算法,用于解决聚类问题。它的原理简单、容易理解,因此得到了广泛的应用。该算法通过对数据进行聚类,将相似的数据点分为同一簇,从而实现对数据的分类和分组。 PCA算法(即主成分分析法)是一种常见的无监督学习算法,也是K-means聚类算法中的一种应用。PCA算法主要用于降维和数据压缩,能够将高维数据映射到低维空间中,保留最重要的特征。它的主要思想是通过线性变换找到数据中的主要方向,即主成分,从而实现数据的降维和可视化。在K-means聚类算法中,PCA可以用于对数据进行降维处理,从而减少计算复杂度并改善聚类效果。 综上所述,K-means聚类算法和PCA算法都是无监督学习算法,用于解决聚类问题。K-means聚类算法通过对数据进行聚类,将相似的数据点分为同一簇,而PCA算法则主要用于降维和数据压缩,能够将高维数据映射到低维空间中,并保留最重要的特征。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [简述 K-means聚类算法](https://blog.csdn.net/weixin_47906106/article/details/125388724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值