Посчитайте метрику FPR с помощью функции make_scorer(). Затем рассчитайте значение метрики при кросс-валидации.
# импортируем библиотеки и объявляем константы
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score
from sklearn.preprocessing import OneHotEncoder
from sklearn.metrics import make_scorer, confusion_matrix
from sklearn.tree import DecisionTreeClassifier
RANDOM_STATE = 42
# подготавливаем данные заранее созданной функцией
X_train, X_test, y_train, y_test = prepare_data('train_satisfaction.csv')
# инициализируем модель дерева решений
model = DecisionTreeClassifier(random_state=RANDOM_STATE)
model.fit(X_train, y_train)
# создаём функцию для подсчёта метрики FPR
def get_false_positive_rate(y_true, y_pred):
conf_matrix = confusion_matrix(y_true, y_pred)
return conf_matrix[0][1] / (conf_matrix[0][1] + conf_matrix[0][0])
# посчитайте метрику FPR вместе с make_scorer()
fpr_score = make_scorer(
get_false_positive_rate,
greater_is_better=False
)
# посчитайте метрику FPR при кросс-валидации на 5 блоков
fpr_cv = cross_val_score(model, X_train, y_train, cv=5, scoring=fpr_score).mean()
# выводим метрику
print(fpr_cv)
Результат
-0.5482573454913882