ageron / ageron/handson-ml2

Gaussian Mixture models mismatch predicted classes

Offen
#221 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Jupyter Notebook
Sterne
30k
Forks
13.1k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.