【聚类】K-modes和K-prototypes——适合离散数据的聚类方法

应用场景:

假设一批数据,每一个样本中,有唯一标识(id)、品类(cate_id)、受众(users, 小孩、老人、中年等)等属性,希望从其中找出一些样本,使得这些样本覆盖的品类、受众等最广。

分析:

思路是使用聚类的方式,每个簇选一个样本。观察数据,都为类别特征,常用的kmeans聚类方法,会使用欧式距离,计算两个样本之间的距离,来判断该样本是否数据该簇。对于类别特征来说,就算表示为0 ,1, 2,这些数字没有大小的意义,只代表某一个属性。所以我们不可以使用判断距离的方式,划分簇。

经过调研,认识到了两个新的聚类方法:K-modes和K-prototypes。下面分别介绍下两个方法。

K-modes

适用于离散数据,采用汉明距离

K-modes算法是按照k-means算法的核心内容进行修改,主要有以下两点:

1.度量方式。样本之间的距离D,属性相同为0,不同为1,并将所有属性结有相加。因此D越大,即他的不相关程度越强(与欧式距离代表的意义是一样的);

汉明距离:Hamming Distance也能用来计算两个向量的相似度,通过比较向量每一位是否相同,若不同则汉明距离加1,这样得到汉明距离。向量相似度越高,对应的汉明距离越小。如10001001和10110001有3位不同。

2.更新modes,使用一个簇的每个属性出现频率最大的那个属性值作为代表簇的属性值(如{a,b a,c c,b b,c})代表模式为a,b或者a,c;

python 复制代码
from kmodes.kmodes import KModes
 
KM = KModes(n_clusters=i,init='Huang').fit_predict(X)

K-prototypes

适用于混合数据(有离散有连续)

K-Prototype算法是结合K-Means与K-modes算法,针对混合属性的,解决2个核心问题如下:

1.度量具有混合属性的方法是,数值属性采用K-means方法得到P1,分类属性采用K-modes方法P2,那么D=P1+a*P2,a是权重,如果觉得分类属性重要,则增加a,否则减少a,a=0时即只有数值属性

2.更新一个簇的中心的方法,方法是结合K-Means与K-modes的更新方法

python 复制代码
from kmodes.kprototypes import KPrototypes
 
KP = KPrototypes(n_clusters=self.k, init='Cao').fit_predict(X, categorical=self.dis_col)
相关推荐
Dylan的码园20 小时前
告别AI空交互!ToDesk AI实测:能自主操控电脑的落地式AI生产力助手
人工智能·电脑
呆呆敲代码的小Y20 小时前
【最新Codex教程】 | 安装、入门和快速使用,适合新手
人工智能·gpt·ai·llm·openai·agent·codex
sunneo20 小时前
每周AI工具模型更新速递
人工智能
腾视科技AI20 小时前
私有云时代来临:AI NAS如何重塑你的数字生活?
人工智能·科技·nas·ai算力模组·ai模组·ai边缘算力模组·ainas
AI猫站长20 小时前
快讯|地瓜机器人旭日S600 560TOPS算力平台适配自变量具身基础模型,蚂蚁灵波与简智联合研发专属数采设备,龙旗工厂智元机器人8小时作业成功率99.5%
大数据·人工智能·机器学习·机器人·具身智能
踏着七彩祥云的小丑20 小时前
AI学习——Gradio快速界面
人工智能·学习·ai
腾视科技AI20 小时前
部署“人工智能+” 推动一二三产业向智能化跃迁
人工智能·科技·百度·ai算力模组·ai模组·ai边缘算力模组
星纬智联技术20 小时前
AI搜索引擎引用逻辑正在重构:企业内容策略的信任信号构建与监控方法论
人工智能·aigc·geo
leoZ23120 小时前
Prompt工程实战复盘:从反复改稿到搭建【提示词编写标准化智能体工作流】
人工智能
星辰AI20 小时前
拒绝重复造轮子:用 LLM 重构开源 Issue 摘要自动化流水线
人工智能·ai·语言模型