分类数据聚类的k模式和k原型聚类算法的python实现。
kmodes的Python项目详细描述
kmodes
说明
k模式和k原型集群的python实现 算法。很多重担都是依靠纽比来完成的。
k-模式用于分类变量的聚类。它定义了集群 基于数据点之间的匹配类别数。(这是 与更著名的k-means算法相比,它将 基于欧氏距离的数值数据。)k-原型算法 结合k-模和k-均值,能够对混合数值进行聚类/ 分类数据。
实施的是:
代码是根据scikit-learn
中的聚类算法建模的。
有着同样熟悉的界面。
我很希望有更多的人玩这个给我 对我的执行情况的反馈。如果你在跑步或 安装kmodes, please submit a bug report。
享受吧!
安装
可以使用pip安装kmodes:
pip install kmodes
要升级到最新版本(推荐),请按如下方式运行:
pip install --upgrade kmodes
或者,您可以从源代码构建最新的开发版本:
git clone https://github.com/nicodv/kmodes.git
cd kmodes
python setup.py install
使用量
importnumpyasnpfromkmodes.kmodesimportKModes# random categorical datadata=np.random.choice(20,(100,10))km=KModes(n_clusters=4,init='Huang',n_init=5,verbose=1)clusters=km.fit_predict(data)# Print the cluster centroidsprint(km.cluster_centroids_)
示例目录显示了两种k模式的简单用例 ('soybean.py')和k-prototype('stocks.py')。
丢失/未显示的数据
k-modes算法接受np.NaN
值作为
矩阵X
。不过,强烈建议用户考虑
以有意义的方式填写丢失的数据
问题就在眼前。这在许多人失踪的情况下尤为重要
价值观。
k-modes算法目前处理丢失的数据如下。什么时候?
根据模型,np.NaN
值被编码成它们自己的值
类别(我们称之为“未知值”)。当预测时,模型
处理X
中以前在
作为“未知值”的成员,缺少培训或(2)
类别。简单地说,算法将任何丢失/未看到的数据视为
相互匹配,但与未丢失/看到的数据不匹配
在确定点之间的相似性时。
k原型还接受np.NaN
值作为
分类变量,但not是否接受
数值。这取决于用户想出一种方法
处理这些丢失的适合当前问题的数据。
并行执行
k-modes和k-prototype实现都为
通过
joblib library,
类似于scikit learn的k-means实现,使用
n_jobs
参数。一般来说,增加工作岗位是没有意义的
在你的系统上还有处理器内核可用。
这可能会通过多次初始化尝试加快任何执行,
n_init > 1
,这可能有助于缩短
更大的问题。请注意,这取决于您的问题:是否进行多处理
实际上是有帮助的,所以一定要先试试。你可以看看
一些基准的例子。
常见问题
问:我看到了一些错误,比如TypeError: '<' not supported between instances of 'str' and 'float'
使用kprototypes
算法时。
A:一个或多个数字特征列中有字符串值。确保所有 列具有一致的数据类型。
参考文献
[HUANG97] | (1, 2) Huang, Z.: Clustering large data sets with mixed numeric and categorical values, Proceedings of the First Pacific Asia Knowledge Discovery and Data Mining Conference, Singapore, pp. 21-34, 1997. |
[HUANG98] | Huang, Z.: Extensions to the k-modes algorithm for clustering large data sets with categorical values, Data Mining and Knowledge Discovery 2(3), pp. 283-304, 1998. |
[CAO09] | Cao, F., Liang, J, Bai, L.: A new initialization method for categorical data clustering, Expert Systems with Applications 36(7), pp. 10223-10228., 2009. |