ID3
ID3 — это алгоритм машинного обучения, используемый для построения деревьев решений. Относится к классу методов индуктивного обучения, применяемых для задач классификации и регрессии. Алгоритм был разработан австралийским учёным Джоном Россом Куинланом в 1986 году и является одним из первых и наиболее известных алгоритмов построения деревьев решений.
История
Алгоритм ID3 (Iterative Dichotomiser 3, «итеративный дихотомизатор, версия 3») был предложен Дж. Р. Куинланом в статье «Induction of Decision Trees» (1986). Работа основывалась на более ранних исследованиях Куинлана по системам обучения на примерах, в частности на системе ID2. Основной целью разработки было создание эффективного метода для автоматического построения деревьев решений на основе обучающих данных, который мог бы работать с дискретными признаками.
До появления ID3 деревья решений строились вручную или с помощью менее формализованных методов. Алгоритм Куинлана предложил строгий математический критерий для выбора атрибутов на каждом шаге — энтропию и прирост информации (information gain), что сделало процесс построения детерминированным и воспроизводимым.
В 1993 году Куинлан представил усовершенствованную версию алгоритма — C4.5, которая устранила ряд недостатков ID3, включая проблемы с непрерывными признаками, переобучением и пропущенными значениями. Тем не менее, ID3 остаётся фундаментальным алгоритмом, изучаемым в курсах машинного обучения и искусственного интеллекта.
Основные понятия
Дерево решений
Дерево решений — это иерархическая структура, состоящая из узлов и рёбер. Каждый внутренний узел соответствует проверке значения некоторого признака (атрибута), каждое ребро — одному из возможных значений этого признака, а каждый листовой узел — классу (решению). Путь от корня к листу представляет собой набор условий, которые необходимо выполнить, чтобы отнести объект к определённому классу.
Энтропия
Энтропия — мера неопределённости (неупорядоченности) данных. В контексте ID3 энтропия набора данных S вычисляется по формуле:
\[ H(S) = -\sum_{i=1}^{n} p_i \log_2 p_i \]
где \( p_i \) — доля объектов, принадлежащих классу \( i \), в наборе S. Чем выше энтропия, тем более разнородны данные по классам.
Прирост информации
Прирост информации (information gain) — это уменьшение энтропии при разбиении набора данных по некоторому признаку A. Вычисляется как:
\[ Gain(S, A) = H(S) - \sum_{v \in Values(A)} \frac{|S_v|}{|S|} H(S_v) \]
где \( S_v \) — подмножество объектов, у которых признак A принимает значение \( v \). Алгоритм ID3 на каждом шаге выбирает признак, дающий максимальный прирост информации.
Алгоритм работы
Входные данные
- Обучающая выборка — множество объектов, каждый из которых описан набором дискретных признаков и принадлежит одному из заранее заданных классов.
- Список признаков (атрибутов).
Пошаговое описание
- Создание корневого узла, содержащего все обучающие примеры.
- Проверка условия остановки:
- Если все примеры в узле принадлежат одному классу — узел становится листом, ему присваивается этот класс.
- Если список признаков пуст — узел становится листом, ему присваивается класс, наиболее часто встречающийся среди примеров в узле.
- Если узел не содержит примеров — создаётся лист с классом, наиболее частым в родительском узле.
- Выбор признака:
- Для каждого признака вычисляется прирост информации.
- Выбирается признак с максимальным приростом.
- Разбиение:
- Узел разбивается на дочерние узлы по значениям выбранного признака.
- Для каждого дочернего узла рекурсивно повторяются шаги 2–4.
Пример
Рассмотрим задачу классификации погоды для игры в теннис. Признаки: Outlook (Sunny, Overcast, Rain), Temperature (Hot, Mild, Cool), Humidity (High, Normal), Wind (Weak, Strong). Целевая переменная — Play (Yes/No). Алгоритм ID3 вычислит прирост информации для каждого признака и выберет тот, который лучше всего разделяет данные (например, Outlook). Затем процесс повторяется для каждого подмножества.
Достоинства и недостатки
Достоинства
- Простота понимания и интерпретации: результирующее дерево легко визуализируется и объясняется.
- Не требует предварительной нормализации или масштабирования данных.
- Автоматически отбирает наиболее информативные признаки.
- Работает с категориальными данными.
Недостатки
- Чувствительность к шуму: выбросы и ошибочные метки могут существенно исказить дерево.
- Переобучение: склонность строить слишком сложные деревья, идеально соответствующие обучающей выборке, но плохо обобщающие новые данные.
- Неспособность работать с непрерывными признаками: все атрибуты должны быть дискретными; непрерывные значения необходимо предварительно дискретизировать.
- Смещение в пользу признаков с большим числом значений: критерий прироста информации отдаёт предпочтение признакам, имеющим много различных значений (например, идентификатор объекта), что может приводить к неоптимальным разбиениям.
- Неустойчивость: небольшие изменения в обучающих данных могут привести к существенно отличающемуся дереву.
Модификации и развитие
C4.5
Алгоритм C4.5, разработанный тем же Куинланом, является расширением ID3. Основные улучшения:
- Поддержка непрерывных признаков (автоматическое нахождение порогов разбиения).
- Обработка пропущенных значений.
- Обрезка деревьев (pruning) для борьбы с переобучением.
- Использование нормализованного прироста информации (gain ratio) для устранения смещения в пользу многозначных признаков.
CART
Алгоритм CART (Classification and Regression Trees), предложенный Л. Брейманом и др. в 1984 году, также строит деревья решений, но использует иной критерий разбиения — индекс Джини (Gini impurity) для классификации и среднеквадратичную ошибку для регрессии. CART строит только бинарные деревья (каждый узел разбивается на два дочерних), в отличие от ID3, допускающего произвольное число ветвей.
ID3 в современных системах
Хотя ID3 редко применяется в промышленных задачах в чистом виде, он лёг в основу многих более совершенных алгоритмов и остаётся важной дидактической единицей. Реализации ID3 существуют в библиотеках scikit-learn (Python), Weka (Java) и других средах машинного обучения.
Применение
ID3 и его производные используются в различных областях:
- Медицинская диагностика: построение правил для классификации заболеваний на основе симптомов.
- Финансовый анализ: оценка кредитоспособности клиентов, выявление мошеннических транзакций.
- Техническая диагностика: определение неисправностей оборудования по показателям датчиков.
- Обработка естественного языка: классификация текстов, определение тональности.
- Игровой интеллект: моделирование принятия решений в стратегических играх.
Критика
Основная критика ID3 связана с его ограничениями по сравнению с более современными методами. Алгоритм неэффективен на больших и зашумлённых данных, требует дискретизации непрерывных признаков и подвержен переобучению. Кроме того, деревья решений в целом могут быть неустойчивыми — небольшие изменения в данных приводят к существенно иным деревьям, что снижает доверие к результатам.
Тем не менее, простота и интерпретируемость ID3 делают его полезным инструментом для начального анализа данных и обучения основам машинного обучения.
Источники
- Quinlan, J. R. (1986). Induction of Decision Trees. Machine Learning, 1(1), 81–106.
- Quinlan, J. R. (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann.
- Breiman, L., Friedman, J., Olshen, R., & Stone, C. (1984). Classification and Regression Trees. Wadsworth.
- Mitchell, T. M. (1997). Machine Learning. McGraw-Hill.
- Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th ed.). Pearson.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →