Обучите две модели дерева решений: с максимальной глубиной 2 и числом объектов в одном листе 3. Вычислите метрику accuracy на тренировочной и тестовой выборках.
# импортируем библиотеки и объявляем константы
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
RANDOM_STATE = 42
TEST_SIZE = 0.2
# считываем данные из CSV-файла
df = pd.read_csv('progulka_extended.csv')
# делим данные на входные и целевые
X = df.drop('гулять?', axis=1)
y = df['гулять?']
# делим данные на тренировочные и тестовые
# используем константы с размером тестовой выборки и random_state
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=TEST_SIZE,
random_state=RANDOM_STATE
)
# инициализируйте модель дерева решений с максимальной глубиной 2
model1 = DecisionTreeClassifier(max_depth=2, random_state=RANDOM_STATE)
model1.fit(X_train, y_train)
# посчитайте метрику accuracy для первой модели
# на тренировочной и тестовой выборках
accuracy_train_model1 = model1.score(X_train, y_train)
accuracy_test_model1 = model1.score(X_test, y_test)
print('Максимальная глубина 2')
print('Train:', accuracy_train_model1)
print('Test:', accuracy_test_model1)
# инициализируйте модель дерева решений с минимальным числом объектов в листе 3
model2 = DecisionTreeClassifier(max_depth=2, min_samples_leaf=3, random_state=RANDOM_STATE)
model2.fit(X_train, y_train)
# посчитайте метрику accuracy для второй модели
# на тренировочной и тестовой выборках
accuracy_train_model2 = model2.score(X_train, y_train)
accuracy_test_model2 = model2.score(X_test, y_test)
print('Минимальное количество объектов в одном листе 3')
print('Train:', accuracy_train_model2)
print('Test:', accuracy_test_model2)
Результат
Максимальная глубина 2
Train: 0.9
Test: 1.0
Минимальное количество объектов в одном листе 3
Train: 0.9
Test: 1.0