Шрифт:
Закладка:
В табл. 3 приведен список электронных писем, в котором каждое описывается рядом атрибутов и тем, является оно спамом или нет. Атрибут «Вложение» имеет значение «Истина» для электронных писем, содержащих вложение, и значение «Ложь» в ином случае (в этой выборке ни одно из электронных писем не имело вложений). Атрибут «Подозрительные слова» имеет значение «Истина», если электронное письмо содержит одно или несколько слов в предварительно определенном списке подозрительных слов. Атрибут «Неизвестный отправитель» истинен, если отправитель электронного письма отсутствует в адресной книге получателя. Этот набор данных использовался для обучения дерева решений на рис. 16. В нем атрибуты «Вложение», «Подозрительные слова» и «Неизвестный отправитель» были входными атрибутами, а атрибут «Спам» — целью. Атрибут «Неизвестный отправитель» разбивает набор данных на более чистые группы, чем другие атрибуты (одна из них содержит большинство объектов, где Спам = Истина, а другая, где Спам = Ложь). Затем «Неизвестный отправитель» помещается в корневой узел, как на рис. 17. После этого начального разделения все объекты в правой ветви имеют одинаковое целевое значение, а объекты в левой — разное. Разделение объектов в левой ветви с использованием атрибута «Подозрительные слова» приводит к образованию двух чистых наборов, где также для одного Спам = Ложь, для другого Спам = Истина. Таким образом, «Подозрительные слова» выбраны в качестве тестового атрибута для нового узла в левой ветви, как на рис. 18. На этом этапе подмножества данных в конце каждой ветви являются чистыми, поэтому алгоритм завершает работу и возвращает дерево решений, показанное на рис. 16.
Одно из преимуществ деревьев решений заключается в том, что они понятны, притом с их помощью можно создавать очень точные модели. Например, модель «случайного леса» состоит из набора деревьев решений, где каждое дерево обучается случайной подвыборке обучающих данных, а прогноз, возвращаемый моделью для отдельного запроса, является прогнозом большинства деревьев в лесу. Хотя деревья решений хорошо работают с номинальными и порядковыми данными, они испытывают трудности с числовыми данными. В дереве решений существуют отдельные ветви, исходящие из каждого узла к каждому значению в области определения атрибута, проверяемого на узле. Числовые атрибуты, однако, могут иметь неограниченное число значений в своих областях определений, а это означает, что дереву потребуется бесконечное число ветвей. Одним из решений этой проблемы является преобразование числовых атрибутов в порядковые атрибуты, хотя для этого нужно определить соответствующие пороговые значения, что также может быть непросто.
Наконец, поскольку алгоритмы обучения дерева решений многократно разветвляют набор данных, то, когда дерево становится большим, повышается его чувствительность к шуму (например, к ошибочно помеченным объектам). Это происходит потому, что подмножества примеров в каждой ветви становятся все меньше и, следовательно, выборка данных, на которой основано правило классификации, тоже уменьшается. Чем меньше выборка данных, тем более чувствительным к шуму становится правило. Поэтому неглубокие деревья решений — это хорошая идея. Один метод заключается в том, чтобы остановить рост ветви, как только число объектов в ней станет меньше предварительно определенного порога (например, 20 объектов). Другие методы позволяют дереву расти, но потом обрезают его. В таких методах для определения ветвей в нижней части дерева, которые следует удалить, обычно используются статистические тесты или производительность модели на наборе данных, специально предназначенных для этой задачи.
Цель машинного обучения — создание моделей, которые кодируют соответствующие обобщения из наборов данных. Есть два основных фактора, которые делают генерируемое алгоритмом обобщение (или модель) более ценным. Первый — это набор данных, на котором работает алгоритм. Если он не является репрезентативным для совокупности, то модель, которую генерирует алгоритм, не будет точной. Например, ранее мы разработали регрессионную модель, которая предсказывала вероятность того, что у человека разовьется диабет 2-го типа, на основе его ИМТ. Эта модель была сгенерирована из набора данных белых американских мужчин. Следовательно, эта модель вряд ли будет точной, если она используется для прогнозирования вероятности развития диабета для женщин или мужчин, принадлежащих другим расам или этническим группам. Термин «смещение выборки» описывает то, как процесс, используемый для формирования набора данных, может внести искажения в последующую аналитику, будь то статистический анализ или создание прогностических моделей с использованием машинного обучения.
Вторым фактором, который влияет на модель, генерируемую из набора данных, является выбор алгоритма машинного обучения. Их существует множество, и каждый кодирует свой способ обобщения набора данных. Тип обобщения, который кодирует алгоритм, известен как смещение обучения (или смещение выбора) алгоритма. Например, алгоритм линейной регрессии кодирует линейное обобщение и в результате игнорирует другие нелинейные отношения, которые могут более точно соответствовать данным. Смещение обычно понимается как нечто нежелательное. Например, рассмотренное выше смещение выборки является примером смещения, которого специалист по данным постарается избежать. Тем не менее без смещения обучение невозможно, поскольку алгоритм сможет только запоминать данные.
Однако, поскольку алгоритмы машинного обучения смещены для поиска различных типов закономерностей, нет одного наилучшего алгоритма, потому что не может быть наилучшего смещения для всех ситуаций. Так называемая теорема об отсутствии бесплатных завтраков{5} утверждает, что не существует ни одного алгоритма МО, в среднем превосходящего все другие алгоритмы по всем возможным наборам данных. Поэтому этап моделирования процесса CRISP-DM обычно включает в себя построение нескольких моделей с использованием разных алгоритмов и их последующее сравнение, чтобы определить, какой из алгоритмов генерирует наилучшую модель. В сущности, эти эксперименты тестируют, какое смещение обучения в среднем дает лучшие модели для конкретных задач и набора данных.
После того как набор алгоритмов выбран, следующая основная задача — создать план тестирования для оценки моделей, сгенерированных этими алгоритмами. Цель плана тестирования — обеспечить, чтобы оценка производительности модели на новых данных была реалистичной. Модель прогнозирования, которая просто запоминает набор данных, вряд ли справится с оценкой значений для новых примеров. Во-первых, при простом запоминании данных большинство наборов будут содержать шум и модель прогнозирования также будет запоминать шум в данных. Во-вторых, простое запоминание сводит процесс прогнозирования к поиску в таблице и оставляет нерешенной проблему, как обобщить обучающие данные для работы с новыми примерами, которых нет в таблице.