2017-04-03 15 views
-1

我想通過使用Jaccard索引(從sklearn.metrics導入jaccard_similarity_score)計算通過使用KMeans生成的集羣之間的相似性。這些可能是一個包含特定值的矩陣:在[i,j]應該是羣集i和j之間的相似度。我現在代碼:jaccard_similarity_score引發ValueError:不支持連續多輸出

from sklearn import datasets 
from sklearn.cluster import KMeans 
from sklearn.metrics import jaccard_similarity_score 
iris = datasets.load_iris() 
X = iris.data 
kmeans = KMeans(n_clusters=3).fit(X) 
labels = kmeans.labels_ 

for i in range(3): 
     for j in range(3): 
      print(jaccard_similarity_score(X[np.where(labels==i)], X[np.where(labels==j)])) 

但我得到了以下錯誤:

Traceback (most recent call last): 

    File "<ipython-input-15-e7b8e4471987>", line 3, in <module> 
    print(jaccard_similarity_score(X[np.where(labels==i)], X[np.where(labels==j)])) 

    File "C:\Anaconda3\envs\p3\lib\site-packages\sklearn\metrics\classification.py", line 383, in jaccard_similarity_score 
    y_type, y_true, y_pred = _check_targets(y_true, y_pred) 

    File "C:\Anaconda3\envs\p3\lib\site-packages\sklearn\metrics\classification.py", line 89, in _check_targets 
    raise ValueError("{0} is not supported".format(y_type)) 

ValueError: continuous-multioutput is not supported 
+0

這兩個爲我和j循環做什麼?爲什麼在循環中調用jaccard_similarity得分? –

+0

因爲我想爲每對集羣計算jaccard索引。這些記錄應該實際輸入矩陣[i] [j] – user6808217

回答

0

捷卡上定義。

K-裝置產生連續質心(因爲它是使用意味着,逐字地)。

因此,您不能在羣集中心上使用Jaccard。