编程语言
首页 > 编程语言> > k-prototypes聚类算法

k-prototypes聚类算法

作者:互联网

1 k-prototypes聚类

https://github.com/nicodv/kmodes.git

1 k-prototypes算法

K-prototype是K-means与K-modes的一种集合形式,适用于数值类型字符类型集合的混合型数据。

k-prototypes算法在聚类的过程中,是将数据的数值型变量和类别型变量拆开,分开计算样本间变量的距离,再将两者相加,视为样本间的距离。

k-prototypes聚类的准则就是使用一个合适的损失函数去度量数值型和分类变量对原型的距离;

2 k-prototypes算法步骤

1.随机选取k个初始原型(中心点);

2.针对数据集中的每个样本点,计算样本点与k个原型的距离(数值型变量计算欧氏距离,类别型变量计算汉明距离),将样本点划分到离它最近的中心点所对应的类别中;

3.类别划分完成后,重新确定类别的原型,数值型变量样本取值的均值作为新的原型的特征取值,类别型变量样本取值的众数作为新的原型的特征取值;

4.重复步骤2 3,直到没有样本改变类别,返回最后的聚类结果。

3 聚类算法api

3.1 api介绍

from kmodes.kprototypes import KPrototypes

3.2 步骤分析

4 聚类算法如何选出最佳k值

手肘法(elbow method)
手肘法的核心指标是SSE(sum of the squared errors,误差平方和),

简单说,加入k值=1, 那么误差会极大,加入k值趋向于样本量,那么每一个样本点就是一个簇,那肯定没有误差,但是脱离聚类算法本意。我们想找的,就是随着k值不断增加,误差越来越小,到底达到那个k值的时候,误差平方SSE会开始不再“明显大幅度降低”,而趋于平缓。这个图做出来就像一个手肘一样,因此叫手肘法。

5 模型的保存和加载

5.1 模型的保存和加载API

sklearn.externals.joblib函数是用在0.21及以前的版本中,在最新的版本中,该函数应被弃用

安装:pip install joblib

import joblib
# 4.3 模型保存
joblib.dump(estimator, './test.pkl')  # estimator: 指的是训练好的模型实例(评估器)
# 4.4 模型加载
estimator = joblib.load("./test.pkl")

标签:样本,prototypes,算法,estimator,聚类,joblib
来源: https://www.cnblogs.com/itelephant/p/15878926.html