sklearn k означает ярлыки кластера против наземных ярлыков правды - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь научиться склеарн. Как я понимаю из шага 5 следующего примера , предсказанные кластеры могут быть помечены неправильно, и я должен был бы правильно их пометить. Это также сделано в примере на sci-kit . Метки должны быть переназначены так, чтобы результаты кластеризации и основополагающая правда соответствовали по цвету.

Как узнать, соответствуют ли метки прогнозируемых кластеров исходным меткам данных и как перенастроить индексы меток, чтобы они точно соответствовали двум наборам?

1 Ответ

1 голос
/ 30 марта 2020

С кластеризацией нет никакого осмысленного порядка или сравнения между кластерами, мы просто находим группы наблюдений, которые имеют что-то общее. Нет причин называть один кластер «синим кластером» против «красного кластера» (если у вас нет дополнительных знаний о домене). По этой причине sklearn будет произвольно назначать номера каждому кластеру.

print(clustering.labels_)
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 2 2 2 0 2 2 2 2 2 2 2 2 0 2 2 2 2 0 2 2 2
 2 0 0 0 2 2 2 2 2 2 2 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 0 0 0 0 2 0 0 0 0
 0 0 2 2 0 0 0 0 2 0 2 0 2 0 0 2 0 0 0 0 0 0 2 2 0 0 0 2 0 0 0 2 0 0 0 2 0
 0 2]

Ярлыки могли бы с такой же легкостью заменить все 1 на 0 и 0 на 1, и это все равно будет тот же набор кластеров .

В этом случае нумерация не соответствует нумерации, которая использовалась в основной истине, поэтому цвета не совпадают, когда мы смотрим на сгенерированные кластеры с основной истиной, поэтому мы переназначаем они используют np.choose, как показано в примере:

relabel = np.choose(clustering.labels_,[2,0,1]).astype(np.int64)

Это берет текущие метки и меняет 0 на 2 (потому что индекс 0 равен 2), 1 на 0 и 2 на 1. Это тот же набор кластеров, но мы изменили (произвольную) маркировку, чтобы соответствовать.

Чтобы ответить на ваш вопрос о том, как узнать, когда они совпадают или нет: кластеризация является формой обучения без учителя, что означает обычно у вас вообще не будет основополагающей правды, и вам не о чем беспокоиться о совпадении. В этом примере мы знали основную правду и могли видеть, что кластеры не совпадают друг с другом, поэтому мы можем выбрать соответствие цветов, если захотим. Мы также можем не делать этого, так как они в любом случае являются одними и теми же кластерами, но вам может показаться, что так проще визуализировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...