我正在嘗試尋找 DBSCAN 的最佳 eps 值。我設置min_samples為 24,因為我有 2 * 12 個特征傳入x_set,但出現(xiàn)以下錯誤:ValueError: Number of labels is 1. Valid values are 2 to n_samples - 1 (inclusive)我知道需要silhouette_score超過 1 個集群標簽?;陬愃频腻e誤,這可能會導致此錯誤。我該如何解決這個問題?x_set包含以下數(shù)據(jù):x_set = [6.67933536e+00 1.65097236e+00 1.24573705e+00 1.01693195e+00 9.28128921e-01 7.82497904e-01 5.98319768e-01 1.13439548e-01 9.05382510e-04 5.42710767e-04 2.87522799e-04 1.90924073e-04]def best_eps(x_set): X = x_set range_eps = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] for i in range_eps: print("eps value is: "+str(i)) db = DBSCAN(eps=i, min_samples=24, metric='euclidean').fit(X) core_samples_mask = np.zeros_like(db.labels_, dtype=bool) core_samples_mask[db.core_sample_indices_] = True labels = db.labels_ print(set(labels)) silhouette_avg = silhouette_score(X, labels) print("For eps value ="+str(i), labels, "The average silhouette_score is :", silhouette_avg) return
添加回答
舉報
0/150
提交
取消