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

这篇具有很好参考价值的文章主要介绍了【聚类】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];

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的更新方法文章来源地址https://www.toymoban.com/news/detail-769228.html


from kmodes.kprototypes import KPrototypes
 
KP = KPrototypes(n_clusters=self.k, init='Cao').fit_predict(X, categorical=self.dis_col)

到了这里,关于【聚类】K-modes和K-prototypes——适合离散数据的聚类方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Lumerical Mode 的电场分布数据导出到 Matlab 进行处理

    本文分为两部分: 首先是 Lumerical 中如何导出数据 然后是 Matlab 中如何对数据进行处理 calculate mode 如图 Lumerical 中选中某个模式后会显示电场图,但像素较低且只能导出 jpg 可以采用脚本,如上图我们选择保存 mode5,脚本如下,直接在 Lumerical 中运行即可。 可以保存某个电场

    2024年02月11日
    浏览(26)
  • 【机器学习算法】聚类算法-4 模糊聚类 密度聚类,如何判断超参数:数据群数

    目录 聚类算法 模糊聚类法 密度聚类法 DBSCAN的介绍 2个概念密度可达(Density-Reachable)和密度相连(Density-Connected) DBSCAN的优缺点 数据群数的判断 R-Squared(R2) semi-Partial R-Squared 轮廓系数 总结 我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主 目前进度:第四部分【机器

    2024年02月02日
    浏览(40)
  • Python | 实现 K-means 聚类——多维数据聚类散点图绘制

    客观吐槽:CSDN的富文本编辑器真是超级无敌难用 。首先要吐槽一下CSDN的富文本编辑器,好难用,好难用,好难用,好难用好难用,好难用,好难用,好难用!!!!!!!!!!!!!!!!!!前边的开头文字编辑了三四次,每次都是不小心按了ctrl+z,就完全消失了。

    2024年02月03日
    浏览(41)
  • 数据挖掘(6)聚类分析

    无指导的,数据集中类别未知 类的特征: 类不是事先给定的,而是根据数据的 相似性、距离 划分的 聚类的数目和结构都没有事先假定。 挖掘有价值的客户: 找到客户的黄金客户 ATM的安装位置 原则: 组内数据有较高相似度、不同组数据不相似 相似性的度量(统计学角度): Q型

    2024年02月07日
    浏览(51)
  • 大数据:聚类算法深度解析

    大数据聚类分析是数据科学领域中的关键技术之一,它能够帮助我们从庞大而复杂的数据集中提取有意义的信息和模式。在这篇博文中,我们将深入探讨大数据聚类分析的概念、方法、应用和挑战。 1.1 什么是聚类分析? 聚类分析是一种将数据分成具有相似特征的组的技术。

    2024年02月01日
    浏览(33)
  • 数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

    最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据 ( 查看文末了解数据免费获取方式 ) 间的相关分析和预测分析,主要内容包括其使用实例,具有一定的参考价值,需要的朋友可以参考一下 ( 点击文末“阅读原文

    2024年02月09日
    浏览(55)
  • python 生成随机聚类数据

    数据是满足高斯分布的随机数 生成一个m维属性,样本数量=2n+n+1.2n+0.8n=5n的数据集。 每一个for循环代表一个类,共生成四个类(0,1,2,3四类)。 返回生成的数据集和对应的标签。 sigma 控制方差,表示一个类的松散程度; mean 是一个类的平均值,控制数据取值以及类类之间

    2024年02月13日
    浏览(38)
  • 对时序数据进行分类与聚类

    我在最近的工作中遇到了一个问题,问题是我需要根据银行账户在一定时间内的使用信息对该账户在未来的一段时间是否会被销户进行预测。这是一个双元值的分类问题,只有两种可能,即会被销户和不会被销户。针对这个问题一般来说有两种解决策略。 提取时间序列的统计

    2024年02月09日
    浏览(35)
  • 数据划分方法简述:数据离散化和均值标准差分级法(含python代码)

    在数学建模中,我经常遇到这样一个问题: 在某一步中,需要把数据分成好几个类别或者是按照数据大小分级划分。 放到一维数据中形象一点解释就是我有这么一条线,x轴没有任何意义,y轴代表数据的大小,我需要把这些数据分为5类(在图中切4刀),应该怎么划分? 经典

    2024年02月01日
    浏览(38)
  • 关系数据库-9-[mysql8]中的语法校验规则sql_mode应用

    Mysql中sql_mode使用详解 sql_mode是一组mysql的语法校验规则,定义了mysql应该支持的sql语法、数据校验等。 1.3.1 ANSI模式 这是一种宽松模式,该模式下,会对所操作数据进行校验,如果不符合校验规则,数据会按照规则执行,并报warning警告。 1.3.2 STRICT_TRANS_TABLES模式 这是一种严格

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包