gpt4 book ai didi

python - K 表示置换簇

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:57 25 4
gpt4 key购买 nike

使用本书中的以下代码,我对数字数据集进行了聚类。因为 K 均值算法可以找到聚类,但不知道哪个聚类是“0”或“9”,我们必须将每个学习到的聚类标签与在其中找到的真实标签匹配。

digits=load_digits()
X=digits.data
y=digits.target

#Instantiate the k_means estimator and set the hyerparameters
model=KMeans(n_clusters=10,random_state=0)
model.fit(X)
y_pred=model.predict(X)

#Match each learned cluster label with the true labels found in them
from scipy.stats import mode

labels=np.zeros_like(y_pred)
for i in range(10):
mask=(y_pred==i)
labels[mask]=mode(digits.target[mask])[0]

conf=confusion_matrix(y,labels)

我理解除以下部分之外的所有代码:

        labels[mask]=mode(digits.target[mask])[0] 

有人可以给我解释一下吗?

最佳答案

mode()在统计中是指在一个集合中出现次数最多的值。因此,与簇 mask 匹配的“真实”数字是属于簇 mask 的所有数字中出现频率最高的数字。
所以,

digits.target[mask] # the set of all true labels of cluster `mask`

mode :

mode(digits.target[mask])  # finds the most frequent digit in this cluster

将其分配给 labels[mask],从而匹配 k-means 簇和集合中的真实数字:

labels[mask]=mode(digits.target[mask])[0]

关于python - K 表示置换簇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45263063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com