使用k-means及k-prototype对混合型数据集进行聚类分析

更新时间:2023-07-30 14:23:08 阅读: 评论:0

使⽤k-means及k-prototype对混合型数据集进⾏聚类分析1. 分析⽬标
本项⽬旨在使⽤聚类算法对110个城市进⾏分类与排序,以寻找客观真实的城市分层⽅法、⽀持业务运营与决策。
2. 数据集
数据集来源于某互联⽹公司,特征值标签已做脱敏处理。数据集尺⼨为111⾏×5列,第⼀⾏为标题⾏,其余110⾏为实例。
第⼀列:城市名,将作为index不参与模型计算;
第⼆列:特征值a,以数值表现的分类变量,1代表评价最好、4代表最差;
第三列:特征值b,数值型变量,数值越⾼对业务积极影响越⼤;
雨伞的英语怎么读第四列:特征值c,数值型变量,数值越⾼对业务消极影响越⼤;
第五列:特征值d,数值型变量,数值越⾼对业务积极影响越⼤。
3. ⽅法论
⾸先,由于数据集呈现分类变量与数值变量混合的特点,本次数据分析将采⽤以下两种算法并在分析结束后进⾏对⽐择优:
K-means算法:需要将分类变量a转换为哑变量,使其成为数值型变量,然后通过计算欧⼏⾥得距离得出聚类结果。算法运⾏结束后将使⽤轮廓系数评价聚类效果。
K-prototype算法:⽆需创建哑变量,将分别为分类变量计算汉明距离、为数值型变量计算欧⼏⾥得距离然后得出聚类结果。算法运⾏结束后将使⽤成本函数评价聚类效果。
三文鱼皮可以吃吗其次,数值型变量b、c、d的量纲明显不等,为避免量纲影响距离计算中不同变量的权重,需要对变量b、c、d进⾏处理。由于不知道是否符合正态分布,在这⾥使⽤归⼀化⽽⾮标准化。
越南人体
最后,由于机器⽆法理解业务场景,算法本⾝⽆法对不同聚类进⾏排序。在找到合理聚类⽅法后需要⼈⼯构建⼀个聚类评价指标以实现排序。
本项⽬基于python 3.7.3,使⽤的库包括pandas、numpy、sklearn、matplotlib、aborn、kmodes,具体代码详见附录。
4. 预处理
预处理步骤包括:
使⽤MinMaxScaler对变量b,c,d进⾏归⼀化
使⽤get_dummies为变量a创建哑变量
处理结束后的数据集如下所⽰(仅展⽰前五⾏为例):
市a_1a_2a_3a_4a b c d
亚001030.0162060.0091980.00757
海10001111
莞001030.3144850.1873450.299205
⼭000140.1092150.0608330.057343
沂000140.1060440.0356730.018547
沂000140.1060440.0356730.018547
5. 分析过程
5.1 K-means
参与运算的列:a_1,a_2,a_3,a_4,b,c,d
⼿肘法求解最优k值(聚类数量):k=3
渭水之暖
k=3时的轮廓系数评价:
聚类间距:
解读:虽然聚类间距良好,但是聚类2的轮廓系数过低,说明聚类2的聚合效果不好。在检视聚类2时发现其包含北京、上海、牡丹江、⼤庆等城市,有悖常规认知,说明该聚类不合理。
结论:k-means聚类结果不可⽤。
5.2 K-prototype
参与运算的列:a,b,c,d
⼿肘法求解最优k(使⽤成本函数制图):k=4
注1:python中计数从0开始计,所以横轴数值为聚类数量-1
注2:此⽅法结果具有随机性,有时会产⽣不⽌⼀个肘点,存在最优解和次优解。为确保k=3为最优解,此过程被运⾏了⼗次,最后验证最优解众数为3。
解读:分为四个聚类时,四个聚类所包含的城市符合⼀、⼆、三、四线城市的常规认知,说明聚类接近真实情况。
结论:K-prototype的聚类结果较为真实客观,可以采⽤。
6. 聚类排序
为实现聚类排序,⾸先调取了每个聚类的质点:
Centroids(Min-max Scaled)Centroids(原数据)
Cluster a b c d a b c d Count 040.050.020.0143853.196638.9856.4648
120.660.520.59238517.47178333.073119.336
220.310.170.15218678.7560002.46785.9624
330.100.040.0337053.5416004.42148.8732
此处需要基于业务理解构建⼀个作为聚类评价指标。四个特征值的业务重要程度⼀致,因此需要采⽤等权重计算每个特征值的,但是变量c对总的贡献为负。但是,考虑到量纲的影响,仍需使⽤归⼀化的b、c、d作为其。如果将a作为数值型变
量进⾏考量,也应当进⾏归⼀化处理,并且应注意数值越⼤实际上对的贡献越低。综上所述,的构建⽅法如下:
其中,
经计算,每个聚类的及排名如下:
Cluster Score Ranking
00.044
1  1.401
20.952
来月经头痛
30.423
经检视,聚类1、2、3、0⾮常接近常规认知中的⼀、⼆、三、四线城市,证明排序合理。
7. 结论
烧烤学习
经过使⽤k-prototype算法和构建聚类评价指标,成功将110个城市分为四个聚类及聚类排序。同时运⽤评价指标,结合归⼀化数据可对个体城市实现细粒度上的评价,从⽽得到每个聚类内部的城市排名情况或跨四个聚类的总体城市排名:
城市a b c d cluster cluster_tag in-cluster_score in-cluster_ranking
上海15787434246352861tier1  1.5101
北京24021018264734571tier1  1.1622
深圳33762016015932281tier1  1.1163
苏州23442411792518711tier10.8974
⼴州32924210535622881tier10.8755
杭州23173516144825861tier10.8346
城市a b c d cluster cluster_tag in-cluster_score in-cluster_ranking 东莞3189586485615832tier20.5871
南京2235728445912662tier20.5922愚公移山精神
南昌210282366166392tier20.2603
厦门1150597070810732tier20.3694
合肥218372758027242tier20.3775
年审车辆流程哈尔滨216126299363322tier20.3776
嘉兴210918358793702tier20.2287
⼤连213676319773582tier20.3118
天津2254286530910102tier20.6499
宁波221712643549282tier20.53810
常州212683297693552tier20.29011
成都330619956119182tier20.68112
⽆锡218622426076322tier20.46313
武汉2215669236013992tier20.54114
沈阳223688678897352tier20.54315
泉州215615634547612tier20.34616
温州122346*********tier20.52717
湖州26299177061562tier20.11818
福州1150678239810312tier20.32719
西安3236345753211182tier20.64520
重庆331119765626562tier20.70121
⾦华215317483945682tier20.34622
长沙219307771048222tier20.41623
青岛218305567695262tier20.39324
城市a b c d cluster cluster_tag in-cluster_score in-cluster_ranking 三亚320254000423tier30.0231
九江345828585563tier30.0802
南宁39909231573613tier30.2373

本文发布于:2023-07-30 14:23:08,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1123804.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:聚类   变量   数值   城市   评价
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图