Привет, Хаброжители! Все, что вам действительно нужно знать о машинном обучении, может уместиться на паре сотен страниц.
Начнем с простой истины: машины не учатся. Типичное машинное обучение заключается в поиске математической формулы, которая при применении к набору входных данных (называемых обучающими данными) даст желаемые результаты.
Андрей Бурков постарался дать все необходимое, чтобы каждый мог стать отличным современным аналитиком или специалистом по машинному обучению. То, что удалось вместить в пару сотен страниц, в других книгах растянуто на тысячи. Типичные книги по машинному обучению консервативны и академичны, здесь же упор сделан на алгоритмах и методах, которые пригодятся в повседневной работе.
Самый важный вопрос — сколько кластеров в наборе данных? Когда векторы признаков одно-, дву- или трехмерные, можно нарисовать распределение данных на графике и увидеть «облака» точек в пространстве признаков. Каждое облако — это потенциальный кластер. Однако для 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, вероятно, не лучшее число кластеров.
Более формально прогнозирующая сила числа кластеров k определяется как
где j-й кластер из разбиения C(Ste, k) и | Aj | — число данных в кластере Aj.
С учетом разбиения C(Str, k) для каждого тестового кластера вычисляется доля пар в нем, которые также попали в один и тот же кластер, определяемый центроидом для обучающего набора. Прогнозирующая сила определяется как минимум этой величины для k тестовых кластеров.
Как показывают эксперименты, разумное количество кластеров является наибольшим k при ps(k) выше 0.8. На рис 9.5 показаны примеры определения прогнозирующей силы разных значений k для данных, делящихся на два, три и четыре кластера.
Для недетерминированных алгоритмов кластеризации, таких как k средних, которые могут генерировать разные варианты разбиения, в зависимости от начальных положений центроидов, рекомендуется выполнить несколько прогонов алгоритма кластеризации для одного и того же k и вычислить среднюю прогнозирующую силу
Другой эффективный метод оценки количества кластеров называется статистикой разрывов (gap statistic). К другим, менее автоматизированным методам, которые все еще используются некоторыми аналитиками, относятся метод «локтя» (elbow method) и метод среднего силуэта (average silhouette).
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Машинное обучение
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Начнем с простой истины: машины не учатся. Типичное машинное обучение заключается в поиске математической формулы, которая при применении к набору входных данных (называемых обучающими данными) даст желаемые результаты.
Андрей Бурков постарался дать все необходимое, чтобы каждый мог стать отличным современным аналитиком или специалистом по машинному обучению. То, что удалось вместить в пару сотен страниц, в других книгах растянуто на тысячи. Типичные книги по машинному обучению консервативны и академичны, здесь же упор сделан на алгоритмах и методах, которые пригодятся в повседневной работе.
Отрывок.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, вероятно, не лучшее число кластеров.
Более формально прогнозирующая сила числа кластеров k определяется как
где j-й кластер из разбиения C(Ste, k) и | Aj | — число данных в кластере Aj.
С учетом разбиения C(Str, k) для каждого тестового кластера вычисляется доля пар в нем, которые также попали в один и тот же кластер, определяемый центроидом для обучающего набора. Прогнозирующая сила определяется как минимум этой величины для k тестовых кластеров.
Как показывают эксперименты, разумное количество кластеров является наибольшим k при ps(k) выше 0.8. На рис 9.5 показаны примеры определения прогнозирующей силы разных значений k для данных, делящихся на два, три и четыре кластера.
Для недетерминированных алгоритмов кластеризации, таких как k средних, которые могут генерировать разные варианты разбиения, в зависимости от начальных положений центроидов, рекомендуется выполнить несколько прогонов алгоритма кластеризации для одного и того же k и вычислить среднюю прогнозирующую силу
Другой эффективный метод оценки количества кластеров называется статистикой разрывов (gap statistic). К другим, менее автоматизированным методам, которые все еще используются некоторыми аналитиками, относятся метод «локтя» (elbow method) и метод среднего силуэта (average silhouette).
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Машинное обучение
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
robomakerr
Браво) наконец, кто-то набрался мужества сказать это прямым текстом, в эпоху хайпа вокруг AI и ML)
JayS
Многие точно могут сказать, что люди не учатся на уроках истории и на своих ошибках.