Дерево решений — это структура, которая включает в себя корневой узел, ветви и конечные узлы. Каждый внутренний узел обозначает тест для атрибута, каждая ветвь обозначает результат теста, а каждый конечный узел содержит метку класса. Самым верхним узлом в дереве является корневой узел.
Следующее дерево решений относится к понятию buy_computer, которое указывает, может ли клиент в компании купить компьютер или нет. Каждый внутренний узел представляет собой тест для атрибута. Каждый листовой узел представляет класс.
Преимущества наличия дерева решений следующие:
- Не требует никаких знаний в предметной области.
- Это легко понять.
- Этапы обучения и классификации дерева решений просты и быстры.
Алгоритм индукции дерева решений
Исследователь машин по имени Дж. Росс Куинлан в 1980 году разработал алгоритм дерева решений, известный как ID3 (Итеративный дихотомайзер). Позже он представил C4.5, который был преемником ID3. ID3 и C4.5 используют жадный подход. В этом алгоритме нет возврата; деревья построены рекурсивным способом «разделяй и властвуй» сверху вниз.
Generating a decision tree form training tuples of data partition D Algorithm : Generate_decision_tree Input: Data partition, D, which is a set of training tuples and their associated class labels. attribute_list, the set of candidate attributes. Attribute selection method, a procedure to determine the splitting criterion that best partitions that the data tuples into individual classes. This criterion includes a splitting_attribute and either a splitting point or splitting subset. Output: A Decision Tree Method create a node N; if tuples in D are all of the same class, C then return N as leaf node labeled with class C; if attribute_list is empty then return N as leaf node with labeled with majority class in D;|| majority voting apply attribute_selection_method(D, attribute_list) to find the best splitting_criterion; label node N with splitting_criterion; if splitting_attribute is discrete-valued and multiway splits allowed then // no restricted to binary trees attribute_list = splitting attribute; // remove splitting attribute for each outcome j of splitting criterion // partition the tuples and grow subtrees for each partition let Dj be the set of data tuples in D satisfying outcome j; // a partition if Dj is empty then attach a leaf labeled with the majority class in D to node N; else attach the node returned by Generate decision tree(Dj, attribute list) to node N; end for return N;
Обрезка деревьев
Обрезка деревьев выполняется для устранения аномалий в данных тренировки из-за шума или выбросов. Обрезанные деревья меньше и менее сложны.
Подходы для обрезки деревьев
Есть два подхода, чтобы обрезать дерево —
-
Предварительная обрезка — дерево обрезается за счет преждевременного прекращения строительства.
-
Постобрезка — этот подход удаляет поддерево из полностью выросшего дерева.
Предварительная обрезка — дерево обрезается за счет преждевременного прекращения строительства.
Постобрезка — этот подход удаляет поддерево из полностью выросшего дерева.
Стоимость Сложность
Сложность стоимости измеряется следующими двумя параметрами: