Агентство «Стонкс» решило попробовать оценить платёжеспособность заёмщиков более тонко — по трём классам:

  • надёжный (класс 2),
  • рискованный (класс 1),
  • ненадёжный (класс 0).

Агентство планирует заключать договоры с надёжными заёмщиками напрямую, с рискованными — с участием страхового агентства, а с ненадёжными — не работать вовсе.

Кредитные менеджеры сформировали обучающую выборку из старых заёмщиков за последние 10 лет и распределили их по трём классам. Код класса хранится в столбце level, он будет выступать целевым признаком.

Создайте модель мультиклассовой классификации с помощью OneVsRestClassifier. Обучите её и получите прогнозные значения. Оцените качество модели по метрике accuracy.

import pandas as pd

from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# создание константы RANDOM_STATE
RANDOM_STATE = 42

# загружаем данные
df = pd.read_csv('car_loan_levels.csv')

# разделяем признаки на входные и целевой
X = df.drop(columns='level')
y = df['level'] # ваш код

# делим данные на выборки
X_train, X_test, y_train, y_test = train_test_split(
    X, 
    y, 
    random_state=RANDOM_STATE
)

# создаём модель, обучаем её и получаем прогнозные значения
clf = OneVsRestClassifier(LogisticRegression())
clf = clf.fit(X_train, y_train) # ваш код
y_pred = clf.predict(X_test)

# оцениваем accuracy
acc = accuracy_score(y_test, y_pred)
print(acc)