我有569个向量,我想用K-均值聚类。但首先,我需要找到最优的K-簇。我使用YellowBrick软件包中的KelbowVizizer函数尝试了肘部方法,但它无法显示K簇的确切数目。所以现在我正在寻找一个替代方案
你知道如何找到最优的k-簇吗
这是我在KElbowVisualizer中使用的代码:
from sklearn.cluster import MiniBatchKMeans
from sklearn.feature_extraction.text import TfidfVectorizer
from yellowbrick.cluster import KElbowVisualizer
vec = TfidfVectorizer(
stop_words = 'english',
use_idf=True
)
vectors_= vec.fit_transform(df1)
model = MiniBatchKMeans()
titleKElbow = "The Optimal K-Cluster with Elbow Method"
visualizer = KElbowVisualizer(model, k=(2,30), metric='silhouette', timings=False, title = titleKElbow, size=(1080, 720))
visualizer.fit(vectors_)
visualizer.show(outpath="G:/My Drive/0. Thesis/Results/kelbow_minibatchkmeans.png")
让我解释一下我的一种方法,我知道这很费时,但如果你需要一些简单而愚蠢的东西,就在这里:
当我试图找到最佳数量的簇时,我只是在2到n之间做一个for循环,在每次迭代中使用不同数量的质心,拟合模型并打印轮廓分数
我选择得分最高的模型,或者如果某个功能中有特定数量的集群与组匹配,则选择得分最高的模型
示例代码:
它可以输出如下内容:
所以我会选择6个集群
相关问题 更多 >
编程相关推荐