2014-12-06 3 views
0

я сделал следующий кластер через dbscan skelearnкак сохранить кластеры

enter image description here

Мои данные представляют собой NumPy массив:

array([[-0.22725194, -0.68548221], 
     [ 0.01525107, -0.98825191], 
     [-0.29117618, -0.69614647], 
     ..., 
     [ 0.62125361, -0.79422623], 
     [ 0.59627969, -0.82673572], 
     [ 0.58919524, -1.04003462]]) 

Я хотел бы добавить две новые группы в качестве переменных в мои данные. Код, который я использовал, был:

from sklearn.cluster import DBSCAN 

data3 = np.array(data3) 

dbscan = DBSCAN(random_state=111, eps=0.3) 


dbscan.fit(data3) 

# visualization 

from sklearn.decomposition import PCA 
pca = PCA(n_components=2).fit(data3) 
pca_2d = pca.transform(data3) 
for i in range(0, pca_2d.shape[0]): 
    if dbscan.labels_[i] == 0: 
     c1 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='r', 
    marker='+') 


    elif dbscan.labels_[i] == 1: 
     c2 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='g', 
    marker='o') 

    elif dbscan.labels_[i] == -1: 
     c3 = plt.scatter(pca_2d[i,0],pca_2d[i,1],c='b', 
    marker='*') 

    plt.legend([c1, c2, c3], ['Cluster 1', 'Cluster 2', 
     'Noise']) 
plt.title('DBSCAN finds 2 clusters and noise') 
plt.show() 

Как я могу сохранить их как переменную? Существует ли функция для оценки качества этих кластеров, таких как коэффициент Silhoutte Coefficient?

ответ

0

Вы уже имеете их в переменной: dbscan.labels_, не так ли?

Не то, чтобы вы могли сделать что-то вроде pca_2d[dbscan.labels_==1,:], чтобы избежать необходимости рисовать их по одной точке за раз.

Оценка кластеров, основанных на плотности, непростая. Я знаю только одну меру, которую даже утверждает, что может оценить кластеризацию на основе плотности (я ее еще не использовал, поэтому я не могу ручаться за нее).

Силуэт и т. Д. не применимо. Они предполагают выпуклые кластеры и терпят неудачу в классической игрушке Джена.

Moulavi, Д., Jaskowiak, П. А., Кампейо, Р. Дж Г. Б., Zimek, А., & Sander, J. (2014).
Валидация кластеризации на основе плотности.
В трудах 14-й Международной конференции SIAM по интеллектуальному анализу данных (SDM), Филадельфия, PA.

Смежные вопросы