import numpy as np
from sklearn.datasets import make_classification
from sklearn.cluster import KMeans
X, y = make_classification(n_samples=1000,
n_features=4,
n_informative=3,
n_redundant=0,
n_repeated=0,
n_classes=2,
random_state=0,
shuffle=False)
km = KMeans(n_clusters=3).fit(X)
result = permutation_importance(km, X, y, scoring='homogeneity_score', n_repeats=10, random_state=0, n_jobs=-1)
result
在真正的问题中,我没有y(真标签),我试图做y=None
以使其作为无监督学习。但这行不通。我得到:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-72-81045ae9cb66> in <module>()
----> 1 result = permutation_importance(km, X, y=None, scoring='homogeneity_score', n_repeats=10, random_state=0, n_jobs=-1)
5 frames
/usr/local/lib/python3.6/dist-packages/sklearn/metrics/cluster/_supervised.py in check_clusterings(labels_true, labels_pred)
53 if labels_true.ndim != 1:
54 raise ValueError(
---> 55 "labels_true must be 1D: shape is %r" % (labels_true.shape,))
56 if labels_pred.ndim != 1:
57 raise ValueError(
ValueError: labels_true must be 1D: shape is ()
有人知道如何在没有真实标签的情况下实施吗?