2015-04-21 2 views
4

У меня есть набор данных немного похож, как это:Оценка K означает, кластеризацию с помощью питона

enter image description here

Я выполнил K означает кластерную используя этот код:

from scipy.cluster.vq import kmeans, vq 
data=np.matrix(dataAll.ix[:,:-1]) 
centers, _ = kmeans(data, 3, iter=100) 
cluster, _ = vq(data, centers) 

В здесь я хочу спросить, как оценивать k означает группирование. Я хочу получить такую ​​ценность, как точность, точность, f мер.

+1

Эти тесты работают только в том случае, если вы знаете, какими должны быть правильные метки кластера (т. Е. Вы знаете, к какому кластеру относится каждая точка данных). Как правило, это не то, как вы оцениваете кластеризацию, что обычно связано с неконтролируемым обучением. Поэтому вы можете рассмотреть вопрос о различиях внутри кластера и межкластерных расстояниях – inspectorG4dget

+0

@ inspectorG4dget Я прочитал [это] (http://stackoverflow.com/questions/14570610/k-means-in-python-determine-which- data-are-associated-with-each-centroid), средство k может вернуть метку, поэтому я думаю, что мы можем получить точность, точность и f-меру, потому что мы знаем метку для каждой информации. Я просто так, может быть, я ошибаюсь. –

+1

Да, k-mean возвращает метки классов. Тем не менее, вы не можете измерить точность/точность, не зная правильных меток, чтобы проверить, правильно ли это означает k-means. Это то, что я сказал в своем предыдущем комментарии – inspectorG4dget

ответ

0

Если у вас есть значения стандартных Gold/подспутниковые, вы можете использовать мой код [Link] для расчета парной точности, напомнит, FScore & NMI.

Примечания, что статья на индонезийском языке, но не беспокойтесь, вы можете пропустить все объяснения и перейти прямо к коду внизу статьи. [Я написал Matlab & реализация Python] Питон код форк this work, который доступен here.