当前位置: 首页 > news >正文

【聚类】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 KModesKM = 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的更新方法


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

相关文章:

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

应用场景: 假设一批数据,每一个样本中,有唯一标识(id)、品类(cate_id)、受众(users, 小孩、老人、中年等)等属性,希望从其中找出一些样本,使得这…...

Python-炸弹人【附完整源码】

炸弹人 炸弹人是童年的一款经典电子游戏,玩家控制一个类似"炸弹人"的角色,这个角色可以放置炸弹,并在指定的时间内引爆它们消灭敌人以达到目标,此游戏共设有两节关卡,代码如下: 运行效果&#x…...

[英语学习][5][Word Power Made Easy]的精读与翻译优化

[序言] 今日完成第18页的阅读, 发现大量的翻译错误以及不准确. 需要分两篇文章进行讲解. [英文学习的目标] 提升自身的英语水平, 对日后编程技能的提升有很大帮助. 希望大家这次能学到东西, 同时加入我的社区讨论与交流英语相关的内容. [原著英文与翻译版对照][第18页] Wh…...

Apache Doris 详细教程(一)

1、Doris简介 1.1、doris概述 Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后, 更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台…...

【Vue3从入门到项目实现】RuoYi-Vue3若依框架前端学习——登录页面

若依官方的前后端分离版中,前端用的Vue2,这个有人改了Vue3的前端出来。刚好用来学习: https://gitee.com/weifengze/RuoYi-Vue3 运行前后端项目 首先运行项目 启动前端,npm install、npm run dev 启动后端,按教程配置…...

win11 关闭快速启动,解决重启后部分应用没有关闭的问题

鼠标右击win11开始菜单选择windows终端(管理员)打开输入:powercfg /h off按下回车即可...

python爬虫-某公开数据网站实例小记

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 第一步:分析页面和请求方式 此网站没有技巧的加密,仅是需要携带cookie和请求…...

还记得当初自己为什么选择计算机?

还记得当初自己为什么选择计算机? 当初你问我为什么选择计算机,我笑着回答:“因为我梦想成为神奇的码农!我想像编织魔法一样编写程序,创造出炫酷的虚拟世界!”谁知道,我刚入门的那天&#xff0…...

“数”说新语向未来 | GBASE南大通用2023媒体交流会成功举办

在当前国家信创战略加速实施,及国民经济数字化转型,叠加驱动信息化行业加速发展的大形势下,以“数说新语-GBASE南大通用开放创新再领航”为主题的2023 GBASE南大通用媒体交流日活动在GBASE天津总部举行。来自IT168、ITPUB、韩锋频道、自主可控…...

每天一点python——day88

#每天一点Python——88 #编程两大思想【面向过程与面向对象】 #如图: 面向过程的线性思维: 类似于做菜一步步的来,先怎么样怎么样,再怎么样 如果不一步步的来,例如先炒菜再点火,这样是做不好的 面向对象&a…...

xShell快捷键

Xshell 是一个强大的终端仿真器,它支持多种Linux发行版的远程连接。Xshell提供了一系列的快捷键,以提高用户的操作效率。以下是一些Xshell中常用的快捷键: 新建会话窗口: Ctrl N 或 Ctrl Shift N 在现有会话中打开新标签&…...

OkGo导入失败解决办法

jcenter()maven { url "https://jitpack.io" }再同步就可以了...

02、pytest环境准备

工具准备 下载Python——python官网下载:https://www.python.org/下载PyCharm——pycharm官网下载:https://www.jetbrains.com.cn/en-us/pycharm/参考文档——pytest官方文档:https://docs.pytest.org/en/7.4.x/一个方便好用的office库——p…...

海上液化天然气 LNG 终端 ,数字孪生监控系统

液化天然气 (Liquefied Natural Gas,简称 LNG) 在能源转型过程中被广泛认可为相对较清洁的能源选择。 相对于传统的煤炭和石油燃料,LNG 的燃烧过程产生的二氧化碳 (CO2) 排放较低。LNG 的燃烧释放的二氧化碳排放较少,因此对应对气候变化和减…...

C语言面试之旅:掌握基础,探索深度(面试实战之ARM架构二)

读别人的代码,就像撕洋葱,每读一层,哭一遍。 引言 ARM 处理器是冯诺依曼存储结构,程序空间、RAM 空间及IO 映射空间统一编址,除对对RAM 操作以外,对外围IO、程序数据的访问均要通过加载/存储指令进…...

Axios详解及运用案例

前言 Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。它允许开发者使用异步的方式发送 HTTP 请求,同时提供了一个简单、方便的 API 来处理这些请求和响应。 主要特性 Axios 的主要特性包括: 支持 Promise API:Axios 的所有函数都返回一个 Promise 对象…...

期刊影响因子和期刊分区(国内-中科院/国外-JCR分区)

总结: SCI就是一个WOS中的一个科学类引文数据库,是理科方向的;SSCI是当中的社会科学类引文数据库,也就是文科方向的;SCIE:Science Citation Index-Expanded(SCI-E,科学引文索引&…...

R语言gWQS包在加权分位数和回归模型的应用

在流行病学研究中,相较于单一因素的暴露,多因素同时暴露的情况更为常见。传统模型在评价多因素联合暴露时存在数据维度高、多重共线性等问题. WQS 回归模型的基本原理是通过分位数间距及加权的方法,将多种研究因素的效应综合成为一个指数&…...

【Makelist】release无法生成pdb

记录makelist使用中遇到的问题 一、release版无法生成pdb 【解决方法】:需要在最大级的Makelist下的设置编译器选项添加如下标记 #release 链接库生成pdbSET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")#lib的 release链接库生成pdbSET…...

【Linux】信号的保存和捕捉

文章目录 一、信号的保存——信号的三个表——block表,pending表,handler表sigset_t信号集操作函数——用户层sigprocmask和sigpending——内核层 二、信号的捕捉重谈进程地址空间(第三次)用户态和内核态sigaction可重入函数volat…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...