Агентство «Стонкс» решило попробовать оценить платёжеспособность заёмщиков более тонко — по трём классам:
- надёжный (класс 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)