ageron / ageron/handson-ml2

Gaussian Mixture models mismatch predicted classes

未关闭
#221 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Jupyter Notebook
星标
30k
派生
13.1k
PR 合并指标
30 天内没有已合并 PR

描述

https://colab.research.google.com/github/ageron/handson-ml2/blob/master/09_unsupervised_learning.ipynb#scrollTo=iBdY4mAzvkHa

The code mismatches label predicted using unsupervised learning resulting in zero accuracy when I run the code in Colab.

y_pred = GaussianMixture(n_components=3, random_state=42).fit(X).predict(X)
mapping = np.array([2, 0, 1])
y_pred = np.array([mapping[cluster_id] for cluster_id in y_pred])

I suggest matching clustered labels to the most common y labels prior to the calculation of accuracy:

from copy import deepcopy
y_pred = GaussianMixture(n_components=3, random_state=42).fit(X).predict(X)
# replace prediction with the most common value
dic_val = {}
index = {}
for i in range(3):
newval = np.bincount(y[np.where(y_pred == i)[0]]).argmax()
index[i] = deepcopy(np.where(y_pred == i)[0])
dic_val[i] = deepcopy(newval)

for i in range(3):
y_pred[index[i]] = dic_val_copy[I]

My name is Ilya Rahkovsky, I am teaching a class using your textbook. Thank you for sharing your code.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。