Пока что вы видели, как заставить машину научиться находить решение для нашей цели. В регрессии мы обучаем машину предсказывать будущее значение. При классификации мы обучаем машину классифицировать неизвестный объект в одной из определенных нами категорий. Короче говоря, мы обучали машины так, чтобы они могли прогнозировать Y для наших данных X. Учитывая огромный набор данных и не оценивая категории, нам было бы трудно обучить машину, используя контролируемое обучение. Что если машина может искать и анализировать большие данные, занимающие несколько гигабайт и терабайт, и сообщать нам, что эти данные содержат так много разных категорий?
В качестве примера рассмотрим данные избирателя. Рассматривая некоторые входные данные от каждого избирателя (это называется особенностями в терминологии ИИ), позвольте машине предсказать, что есть так много избирателей, которые проголосовали бы за X политическую партию, и так много проголосовало бы за Y, и так далее. Таким образом, в общем, мы запрашиваем у машины огромный набор точек данных X: «Что вы можете рассказать мне о X?». Или это может быть вопрос типа «Какие пять лучших групп мы можем сделать из X?». Или это может быть даже похоже на «Какие три функции чаще всего встречаются вместе в X?».
Это как раз и есть самообучаемое обучение.
Алгоритмы для обучения без учителя
Давайте теперь обсудим один из широко используемых алгоритмов классификации в неконтролируемом машинном обучении.
К-среднее кластеризация
Президентские выборы 2000 и 2004 годов в Соединенных Штатах были близкими — очень близкими. Самый большой процент голосов избирателей, полученных любым кандидатом, составлял 50,7%, а самый низкий — 47,9%. Если бы процент избирателей перешел на другую сторону, исход выборов был бы другим. Есть небольшие группы избирателей, которые при правильном обращении перейдут на другую сторону. Эти группы могут быть не очень большими, но с такими близкими расами они могут быть достаточно большими, чтобы изменить исход выборов. Как вы находите эти группы людей? Как вы обращаетесь к ним с ограниченным бюджетом? Ответ кластеризация.
Давайте разберемся, как это делается.
-
Во-первых, вы собираете информацию о людях как с их согласия, так и без него: любую информацию, которая может дать некоторое представление о том, что для них важно и что повлияет на их голосование.
-
Затем вы помещаете эту информацию в какой-то алгоритм кластеризации.
-
Далее, для каждого кластера (было бы разумно сначала выбрать самый большой), вы создаете сообщение, которое понравится этим избирателям.
-
Наконец, вы проводите кампанию и измеряете, работает ли она.
Во-первых, вы собираете информацию о людях как с их согласия, так и без него: любую информацию, которая может дать некоторое представление о том, что для них важно и что повлияет на их голосование.
Затем вы помещаете эту информацию в какой-то алгоритм кластеризации.
Далее, для каждого кластера (было бы разумно сначала выбрать самый большой), вы создаете сообщение, которое понравится этим избирателям.
Наконец, вы проводите кампанию и измеряете, работает ли она.
Кластеризация — это разновидность обучения без присмотра, которое автоматически формирует кластеры похожих вещей. Это как автоматическая классификация. Вы можете кластеризовать практически все, и чем больше элементов в кластере схожи, тем лучше кластеры. В этой главе мы собираемся изучить один тип алгоритма кластеризации, который называется k-means. Он называется k-means, поскольку он находит «k» уникальных кластеров, а центр каждого кластера является средним значением в этом кластере.
Идентификация кластера
Идентификация кластера говорит алгоритму: «Вот некоторые данные. Теперь сгруппируйте похожие вещи и расскажите мне об этих группах ». Ключевое отличие от классификации в том, что в классификации вы знаете, что ищете. Пока дело не в кластеризации.
Кластеризацию иногда называют неконтролируемой классификацией, потому что она дает тот же результат, что и классификация, но без наличия предопределенных классов.
Теперь мы довольны как контролируемым, так и неконтролируемым обучением. Чтобы понять остальные категории машинного обучения, мы должны сначала понять Искусственные нейронные сети (ANN), которые мы изучим в следующей главе.