簡體   English   中英

ValueError: Number of labels is 1. 有效值為 2 to n_samples - 1 (inclusive)

[英]ValueError: Number of labels is 1. Valid values are 2 to n_samples - 1 (inclusive)

我正在嘗試手動網格搜索 eps 和 min_samples,但我不斷收到錯誤“ValueError: Number of labels is 1. Valid values are 2 to n_samples - 1 (inclusive)”。 我不確定什么價值有問題以及為什么。

這是我的代碼:

result = []

epses = [ 0.1, 0.2, 0.3, 0.4]

min_samples = [10, 20, 30]

for v in epses:
    for n in min_samples:
        model = DBSCAN(eps = v, min_samples = n)  
        y_pred_temp = model.fit_predict(X)
        n_clusters = np.unique(model.labels_).size
        score = metrics.silhouette_score(X, y_pred_temp,metric = 'euclidean')
        result.append((v, n, score, n_clusters))
        

回溯(最近一次調用最后一次):

File "<ipython-input-68-598d3e8f0626>", line 7, in <module>
score = metrics.silhouette_score(X, y_pred_temp,metric = 'euclidean')

File "C:\Users\Sofia\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 73, in inner_f
return f(**kwargs)

File "C:\Users\Sofia\anaconda3\lib\site-packages\sklearn\metrics\cluster\_unsupervised.py", line 117, in silhouette_score
return np.mean(silhouette_samples(X, labels, metric=metric, **kwds))

File "C:\Users\Sofia\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 73, in inner_f
return f(**kwargs)

File "C:\Users\Sofia\anaconda3\lib\site-packages\sklearn\metrics\cluster\_unsupervised.py", line 229, in silhouette_samples
check_number_of_labels(len(le.classes_), n_samples)

File "C:\Users\Sofia\anaconda3\lib\site-packages\sklearn\metrics\cluster\_unsupervised.py", line 34, in check_number_of_labels
raise ValueError("Number of labels is %d. Valid values are 2 "

ValueError: Number of labels is 1. Valid values are 2 to n_samples - 1 (inclusive)

當所有點都在同一個集群中時,輪廓分數沒有定義。 要么使用不同的指標進行模型選擇,要么過濾掉n_clusters == 1的模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM