В этой статье я хочу рассказать вам о деревьях решений, а затем я закончу эту статью несколькими упражнениями. Хорошо, давайте начнем.
В своей простейшей форме дерево решений представляет собой блок-схему, показывающую четкий путь к решению. С точки зрения анализа данных, это тип алгоритма, который включает условные операторы «управления» для классификации данных. Дерево решений начинается с одной точки (или «узла»), которое затем разветвляется (или «разделяется») в двух или более направлениях. Каждая ветвь предлагает разные возможные результаты, включая различные решения и случайные события, пока не будет достигнут окончательный результат. При визуальном отображении их внешний вид похож на дерево… отсюда и название!
Деревья решений чрезвычайно полезны для анализа данных и машинного обучения, поскольку они разбивают сложные данные на более управляемые части. Они часто используются в этих областях для прогнозного анализа, классификации данных и регрессии. Не волнуйтесь, если все это звучит немного абстрактно — ниже я привел пример, чтобы все прояснить. Однако сначала давайте рассмотрим различные аспекты, из которых состоит дерево решений.
По сути, дерево решений имеет 3 основных узла: корневой узел, первый, где начало — единственная точка входа, здесь — зарплата не менее 50 000 долларов, затем два условия «да» и «нет», которые называются узлы решения, которые приведут к узлам ветвления и конечному результату, который также является единственной выходной точкой, называемой листовым узлом,листом, потому что, как и у настоящего дерева, листья находятся на концах.
Бонус!!!
Набор деревьев решений называется случайными лесами.
Я напишу о Random Forests как-нибудь в другой раз.
Дерево решений имеет множество гиперпараметров, и их всегда полезно использовать. почему вы должны их использовать? потому что, если вы не собираетесь использовать гиперпараметры, дерево решений будет работать как непараметрическая модель, что означает, что оно будет очень близко к обучающим данным и бум! в результате получается переобученная модель.
давайте закодируем простой классификатор дерева решений
Вы знаете?
Классификатор дерева решений также можно использовать для регрессии?
Упражнения и прочее…
1. Если обучение дерева решений на обучающем наборе, содержащем 1 миллион экземпляров, занимает один час, сколько примерно времени потребуется для обучения другого дерева решений на обучающем наборе, содержащем 10 миллионов экземпляров?
Ответ: Сложность обучения дерева решений определяется формулой
k = O(n × m log(m)), где m — количество экземпляров
мы знаем, что k = 1 час для 1 миллиона, если мы приравняем с помощью простой математики, мы получим k = 11,4 (приблизительно) часов.
2. Если дерево решений не соответствует обучающей выборке, стоит ли попробовать масштабировать входные функции?
Ответ: Деревья решений не заботятся о том, масштабируются или центрируются обучающие данные; это одна из приятных вещей в них.
3. Обучите и настройте дерево решений для любого набора классификационных данных.
а. Разделите его на тренировочный набор и тестовый набор с помощью train_test_split().
б. Используйте поиск по сетке с перекрестной проверкой (с помощью функции GridSearchCV).
class), чтобы найти хорошие значения гиперпараметров для DecisionTreeClassifier.
Подсказка: попробуйте разные значения max_leaf_nodes.
в. Обучите его на полном тренировочном наборе, используя эти гиперпараметры, и измерьте
производительность вашей модели на тестовом наборе.
Надеюсь, вы лучше понимаете деревья решений.
Большое спасибо за прочтение!!!
Приятного чтения!
Кредиты:
- Практические занятия по машинному обучению с помощью Scikit-Learn, Keras и Tensor Flow.
- sklearn.tree.DecisionTreeClassifier — документация scikit-learn 1.0.1
- Что такое дерево решений и как его использовать? (careerfoundry.com)
- «Практическое машинное обучение Глава 6. Обучение и визуализация решения… | Сиси (Рэйчел) Чен | Середина"