设计网站价格表,常用网站建设技术,用html怎么做网站尾部,电子信息工程移动互联网方向应用场景#xff1a;
假设一批数据#xff0c;每一个样本中#xff0c;有唯一标识#xff08;id#xff09;、品类#xff08;cate_id#xff09;、受众#xff08;users, 小孩、老人、中年等#xff09;等属性#xff0c;希望从其中找出一些样本#xff0c;使得这…应用场景
假设一批数据每一个样本中有唯一标识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_clustersi,initHuang).fit_predict(X)
K-prototypes
适用于混合数据有离散有连续
K-Prototype算法是结合K-Means与K-modes算法针对混合属性的解决2个核心问题如下
1.度量具有混合属性的方法是数值属性采用K-means方法得到P1分类属性采用K-modes方法P2那么DP1a*P2a是权重如果觉得分类属性重要则增加a否则减少aa0时即只有数值属性
2.更新一个簇的中心的方法方法是结合K-Means与K-modes的更新方法 from kmodes.kprototypes import KPrototypesKP KPrototypes(n_clustersself.k, initCao).fit_predict(X, categoricalself.dis_col)