我正在处理具有多个功能的分类数据,并且我一直不知道适用于我的数据集的最佳群集数。
是否有任何方法可以找到用于分类数据聚类的最佳K。
我在需要指定簇数的情况下使用了K模式,但这不能解决问题。
感谢您的帮助
嗯,集群实际上不是为序数数据设计的。我建议您看看OHE。签出此代码示例。
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male', 1], ['Female', 3], ['Female', 2]]
enc.fit(X)
enc.categories_
enc.transform([['Female', 1], ['Male', 4]]).toarray()
enc.inverse_transform([[0, 1, 1, 0, 0], [0, 0, 0, 1, 0]])
enc.get_feature_names(['gender', 'group'])
drop_enc = OneHotEncoder(drop='first').fit(X)
drop_enc.categories_
drop_enc.transform([['Female', 1], ['Male', 2]]).toarray()
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
或者,您可以使用OE。这是更多示例代码。
from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder()
X = [['Male', 1], ['Female', 3], ['Female', 2]]
enc.fit(X)
enc.categories_
enc.transform([['Female', 3], ['Male', 1]])
最后,您可以考虑使用相似性传播,分层聚类或DBSCAN;下面的链接。
https://scikit-learn.org/stable/auto_examples/cluster/plot_affinity_propagation.html
https://scikit-learn.org/stable/auto_examples/cluster/plot_agglomerative_dendrogram.html
https://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html
我认为结果对聚类分类数据集没有意义或没有意义。红色,蓝色和绿色之间的“距离”是多少?有道理吗?