Вернёмся к пассажирам поездов. Создайте модель дерева решений и обучите её на тренировочной выборке. Оцените метрику ROC-AUC.

# импортируем библиотеки и объявляем константы
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import OneHotEncoder
from sklearn.tree import DecisionTreeClassifier

RANDOM_STATE = 42
TEST_SIZE = 0.25

# считываем данные из CSV-файла в датафрейм и задаём id в качестве индексов
df = pd.read_csv('train_satisfaction.csv')
df = df.set_index('id')

# делим данные на входные и целевые
X = df.drop(['Удовлетворён предоставленной услугой'], axis=1)
y = df['Удовлетворён предоставленной услугой']

# делим данные на тренировочные и тестовые
# выполняем стратификацию по целевому признаку
X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    test_size=TEST_SIZE,
    random_state=RANDOM_STATE,
    stratify=y)

# создаём список со строковыми категориями для кодирования
cols_ohe = X_train.select_dtypes(include='object').columns.tolist()

# создаём экземпляр класса OneHotEncoder для кодирования
oh_encoder = OneHotEncoder(drop='first', sparse=False)

# обучаем OneHotEncoder на категориальных признаках из тренировочной выборки
oh_encoder.fit(X_train[cols_ohe])

# сохраняем в переменной encoder_col_names список названий новых столбцов 
encoder_col_names = oh_encoder.get_feature_names()

# преобразовываем категориальные признаки в тренировочной и тестовой выборках
X_train[encoder_col_names] = oh_encoder.transform(X_train[cols_ohe])
X_test[encoder_col_names] = oh_encoder.transform(X_test[cols_ohe])

# удаляем преобразованные признаки
X_train = X_train.drop(cols_ohe, axis=1)
X_test = X_test.drop(cols_ohe, axis=1)

# инициализируйте модель дерева решений
model = DecisionTreeClassifier(random_state=RANDOM_STATE)

# посчитайте метрику ROC_AUC при кросс-валидации и сразу усредните результат
roc_auc_cv = cross_val_score(model, X_train, y_train, scoring='roc_auc').mean()

# выводим метрику ROC_AUC с двумя знаками после запятой
print(round(roc_auc_cv, 2))

Результат
0.68