Новости

17.04.2020

Книга «Машинное обучение без лишних слов»

Начнем с простой истины: машины не учатся. Типичное машинное обучение заключается в поиске математической формулы, которая при применении к набору входных данных (называемых обучающими данными) даст желаемые результаты.

Андрей Бурков постарался дать все необходимое, чтобы каждый мог стать отличным современным аналитиком или специалистом по машинному обучению. То, что удалось вместить в пару сотен страниц, в других книгах растянуто на тысячи. Типичные книги по машинному обучению консервативны и академичны, здесь же упор сделан на алгоритмах и методах, которые пригодятся в повседневной работе.

Отрывок.9.2.3. Определение числа кластеров


Самый важный вопрос — сколько кластеров в наборе данных? Когда векторы признаков одно-, дву- или трехмерные, можно нарисовать распределение данных на графике и увидеть «облака» точек в пространстве признаков. Каждое облако — это потенциальный кластер. Однако для D-мерных данных, с D > 3, нарисовать такой график проблематично.

Один из способов определения разумного количества кластеров основан на идее прогнозирующей силы. Суть состоит в том, чтобы разделить данные на обучающий и тестовый наборы, как это делается в обучении с учителем. Выделив обучающий и тестовый наборы, Str с размером Ntr и Ste с размером Nte соответственно, вы фиксируете количество кластеров k, запускаете алгоритм кластеризации C на наборах Str и Ste и получаете результаты кластеризации C(Str, k) и C(Ste, k).

Пусть A — результат кластеризации C(Str, k), полученный для обучающего набора. Кластеры в A можно рассматривать как области. Если образец попадает в одну из этих областей, значит, он принадлежит некоторому конкретному кластеру. Например, если применить алгоритм k средних к некоторому набору данных, в результате получится разбиение пространства признаков на k многоугольных областей, как показано на рис. 9.2.

Определим матрицу Nte × Nte совместной принадлежности D[A, Ste], элементы которой D[A, Ste](i, i`)= 1 тогда и только тогда, когда данные xi и xi`  из тестового набора принадлежат тому же кластеру, согласно разбиению A. В противном случае D[A, Ste](i, i`)= 0.

А теперь прервемся и посмотрим, что у нас получилось. Мы создали разбиение A, использовав обучающий набор данных, на k кластеров. Затем построили матрицу совместной принадлежности, которая указывает, принадлежат ли два образца из тестового набора одному кластеру в A.

Очевидно, что если величина k является разумной, тогда два образца, принадлежащие одному кластеру в решении C(Ste, k), скорее всего, будут принадлежать одному кластеру в решении и C(Str, k). С другой стороны, если значение k не является разумным (слишком высокое или слишком низкое), тогда разбиения на основе обучающих и тестовых данных, вероятно, будут менее согласованными.

На рис. 9.3 показаны использованные данные, а рис. 9.4 иллюстрирует идею. Графики на рис. 9.4a и 9.4б показывают результаты C(Str, 4) и C(Ste, 4) с соответствующими областями кластеров. На рис. 9.4в показаны тестовые данные, нанесенные на области кластеров, полученных в ходе кластеризации обучающих данных. На рис. 9.4в можно видеть, что оранжевые тестовые данные больше не принадлежат одному кластеру в соответствии с областями, полученными на обучающих данных. В результате в матрице D[A, Ste] появляется множество нулей, что в свою очередь показывает, что k= 4, вероятно, не лучшее число кластеров.

 

С полным содержанием статьи можно ознакомиться на сайте "Хабрахабр": https://habr.com/ru/company/piter/blog/492866/ 


Комментарии: 0

Пока нет комментариев


Оставить комментарий






Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.