我试图手动网格搜索eps和min_样本,但我不断得到一个错误“ValueError:标签数为1。有效值为2到n_样本-1(包括)”。我不确定问题的价值和原因
这是我的密码:
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
处的模型相关问题 更多 >
编程相关推荐