Загрузите данные и поделите на тренировочную и тестовую выборки.

Выполните действия:

  1. Создайте и обучите базовую модель дерева решений.
  2. Посчитайте метрику качества accuracy на тренировочной и тестовой выборках.
  3. Визуализируйте схему дерева решений с наименованиями признаков и сделайте узлы цветными.

Данных в задаче стало больше, поэтому и дерево решений получится масштабнее. Увеличьте масштаб визуализации командой plt.figure(figsize=(10, 8)) — так дерево будет видно лучше.

# импортируем библиотеки и объявляем константы
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree

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
)

# инициализируйте модель дерева решений и обучите её на тренировочных данных
model = DecisionTreeClassifier(random_state=RANDOM_STATE)
model.fit(X_train, y_train)

# посчитайте метрику качества accuracy на тренировочной и тестовой выборках
accuracy_train = model.score(X_train, y_train)
accuracy_test = model.score(X_test, y_test)
print('Train:', accuracy_train)
print('Test:', accuracy_test)

# добавляем размер графика
plt.figure(figsize=(10, 8)) 

# визуализируйте модель дерева решений, отобразите названия признаков
# и раскрасьте узлы
plot_tree(model, feature_names=X.columns, filled=True);

Результат
Train: 1.0
Test: 0.8333333333333334

p1

На тренировочной выборке значение метрики идеально. На тестовой — оно меньше. Кажется, это переобучение. Стоит поменять гиперпараметры модели, чтобы метрика на тесте стала больше.