Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python kmodes与一个热编码&x2B;分类数据的kmeans?_Python_Cluster Analysis_K Means - Fatal编程技术网

Python kmodes与一个热编码&x2B;分类数据的kmeans?

Python kmodes与一个热编码&x2B;分类数据的kmeans?,python,cluster-analysis,k-means,Python,Cluster Analysis,K Means,我正在探索用python对一些分类数据进行集群的可能性。我目前有8个功能,每个功能大约有3-10个级别 正如我所理解的,kmeans是一种热编码,并且可以在这个框架中使用,由于维度问题的诅咒,kmeans对于功能/级别的巨大组合可能并不理想 这是正确的吗 目前,我将遵循kmeans路线,因为这将使我能够灵活地加入一些数字特征,计算轮廓统计和评估最佳集群数量似乎要容易得多 这有意义吗?对于哪种情况下,一种方法比另一种更可取,您有什么建议吗 感谢还有一些变体在分类属性上使用k模式方法,在连续属性上使

我正在探索用python对一些分类数据进行集群的可能性。我目前有8个功能,每个功能大约有3-10个级别

正如我所理解的,kmeans是一种热编码,并且可以在这个框架中使用,由于维度问题的诅咒,kmeans对于功能/级别的巨大组合可能并不理想

这是正确的吗

目前,我将遵循kmeans路线,因为这将使我能够灵活地加入一些数字特征,计算轮廓统计和评估最佳集群数量似乎要容易得多

这有意义吗?对于哪种情况下,一种方法比另一种更可取,您有什么建议吗


感谢

还有一些变体在分类属性上使用k模式方法,在连续属性上使用平均值


与热+K-方法相比,K-模式有一个很大的优势:它是可解释的。每个集群对于原型都有一个明确的分类值。对于k-均值,由于SSQ目标,如果一个热变量在两个值之间,则误差最小。这是不可取的。

参考黄(Kmodes作者)的这篇论文

  • 他提到,如果我们使用Kmeans+one热编码,那么如果分类属性有大量的类别,那么数据集的大小将大大增加。这将使Kmeans的计算成本增加。所以,是的,你关于维度诅咒的想法是正确的

  • 此外,由于0和1不是数据的真实值,因此集群方法也没有意义。另一方面,Kmodes产生簇模式,簇模式是真实数据,因此使簇具有可解释性

  • 对于数字和分类属性的需求,请查看k-Prototype方法,该方法将kmeans和kmodes与平衡权重因子相结合。(论文中再次解释)