858.97K
Category: mathematicsmathematics

Обучение модели. Метрики качества. Лабораторная работа 3

1.

Лабораторная работа 3: «Обучение модели. Метрики
качества»

2.

Логистическая регрессия — это алгоритм классификации в машинном обучении для
прогнозирования вероятности категориально зависимой переменной. В логистической регрессии
зависимые переменные — это двоичные (бинарные) переменные, содержащие 1 (да, успех, и так
далее) или 0 — нет, неудача, и так далее. Другими словами, логистическая регрессия прогнозирует
P(Y=1) как функцию от X.

3.

4.

5.

6.

7.

8.

9.

10.

Accuracy, precision и recall
Перед переходом к самим метрикам необходимо ввести важную концепцию для описания этих метрик в
терминах ошибок классификации — confusion matrix (матрица ошибок).
Допустим, что у нас есть два класса и алгоритм, предсказывающий принадлежность каждого объекта одному
из классов, тогда матрица ошибок классификации будет выглядеть следующим образом:

11.

12.

13.

Задание
1. Проделайте всю предобработку как в ЛР 1 и ЛР 2. Делать OHE не нужно. В комментарии к какой-либо строке
объясните почему. Удалите пропуски data = data.dropna(). Также удалите следующие столбцы data =
data.drop(['Survey_id', 'Ville_id'], axis=1). При разбиении на сплит столбец depressed выберите как ключевой.
2. Объявите логистическую регрессию как класс предварительно добавив импорт библиотеки. Затем проведите
fit
для
отскелиренной
таблицы
X_train
и
обычного
y_train.
(https://scikitlearn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)
3. Создайте переменную predict_log_reg и сделайте predict для отскелиренной таблицы X_test.
4. Затем импортируйте метрику accuracy_score и через print выведите accuracy_score для y_test и predict_log_reg
(https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html)
5. Проведите балансироку классов, где log_reg – то как вы объявили логистическую регрессию как класс.
sample_weights = compute_sample_weight("balanced", y_train)
log_reg.fit(x_train_scaled, y_train, sample_weight=sample_weights)
6. После балансировки создадим новую переменную и сделаем для нее предикт
pred = log_reg.predict(x_train отскелеренный)
Затем импортируйте precission_score, recall_score, f1_score и confusion_matrix. Затем создайте для каждой
метрики переменную и посчитайте, например
precision = precision_score(y_train, pred), затем, через print выведите их значения
Проделайте такие же операции для теста и сравните полученные результаты
English     Русский Rules