Дерево решений
Урок 17 из 19 курса Введение в машинное обучение на Coddy.
Дерево решений (Decision Tree) — это нелинейная модель, используемая как для задач классификации, так и для регрессии. Оно имитирует процесс принятия решений человеком более точно, чем другие алгоритмы, что делает его интуитивно понятным и мощным инструментом для обработки сложных наборов данных. По своей сути дерево решений разбивает данные на подмножества, используя серию простых правил, что похоже на серию вопросов «да/нет» о признаках точек данных.

Источник: wikipedia
Представьте дерево решений в виде древовидного графа, где:
- Каждый внутренний узел представляет собой «тест» атрибута (например, выпадет ли при подбрасывании монеты орел или решка),
- Каждая ветвь представляет результат теста, и
- Каждый листовой узел представляет метку класса (решение, принятое после вычисления всех атрибутов).
Типы деревьев решений:
- Деревья классификации: используются, когда прогнозируемым результатом является класс, к которому относятся данные.
- Деревья регрессии: используются, когда прогнозируемый результат может считаться вещественным числом (например, цена дома).
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
СреднеСоздайте функцию с именем decide_outcome, которая принимает список правил в следующем формате:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}И она получает информацию о том, к какому правилу переходить, если условие выполнено или нет:
outcome = {
"rule1": {True: "rule2", False: "rule3"},
"rule2": {True: "rule3", False: "rule4"},
"rule3": {True: None, False: None}
"rule4": {True: None, False: None}
}data_point = {
"rule1": 8,
"rule2": 10,
}Результатом должно быть rule4
8 is bigger than 5 (True)→ переходим кrule2из этого правила"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ переходим кrule4из этого правила"rule2": {True: "rule3", False: "rule4"},- Других путей для продолжения нет, поэтому результат —
rule4
Всегда начинайте с <strong>rule1</strong>
Попробуйте сами
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# Напишите ваш код здесьВсе уроки раздела Введение в машинное обучение
6Другие модели
Логистическая регрессияЛинейная регрессияДерево решенийМетод опорных векторов (SVM)Тест по моделямПотренируйтесь самостоятельно: Онлайн-компилятор Python