Задание 1. Расчёт индекса Джини
В узле дерева решений находятся 10 объектов:
- 7
объектов класса 0;
- 3
объекта класса 1.
Необходимо:
- Вычислить
долю каждого класса.
- Рассчитать
индекс Джини по формуле G = 1 − Σpₖ².
- Реализовать
расчёт на Python.
- Сравнить
результат с индексом Джини для узла, содержащего 5 объектов каждого
класса.
- Определить,
какой узел более однородный.
Начальные данные:
import numpy as np
y1 = np.array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1])
y2 = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
Задание 2. Построение дерева решений
Дан набор данных:
import numpy as np
X = np.array([
[2], [3], [4],
[5],
[6], [7], [8], [9]
])
y = np.array([0, 0, 0, 0, 1, 1, 1, 1])
Необходимо:
- Создать
модель DecisionTreeClassifier с критерием gini.
- Установить
max_depth=2.
- Обучить
модель.
- Определить
класс объектов со значениями признака 3.5 и 7.5.
- Вывести
текстовые правила дерева.
- Объяснить,
как дерево использует условия разбиения.
Задание 3. Ограничение сложности дерева
Используя набор данных make_classification, необходимо:
- Сгенерировать
200 наблюдений с 5 признаками.
- Разделить
данные на обучающую и тестовую выборки.
- Обучить
деревья с max_depth=2, max_depth=5 и без ограничения глубины.
- Для
каждой модели вычислить точность на обучающей и тестовой выборках.
- Повторить
эксперимент с min_samples_leaf=5.
- Объяснить,
как ограничения глубины и минимального количества объектов в листе
помогают избежать подгонки к шуму.