Дамми-ловушка - наличие атрибутов с высокой степенью корреляции, которые предсказывают значение друг друга. Чтобы не попасть в такую ловушку, используется аргумент drop_first функции pd.get_dummies().
Задача 1
Преобразуйте колонку техникой OHE. Чтобы не попасть в дамми-ловушку, примените аргумент drop_first функции pd.get_dummies(). Напечатайте первые пять записей изменённой таблицы.
import pandas as pd
data = pd.read_csv('/datasets/travel_insurance.csv')
print(pd.get_dummies(data['Gender'], drop_first=True).head(5))
Задача 2
Примените прямое кодирование ко всему датафрейму. Вызовите функцию pd.get_dummies() c аргументом drop_first. Сохраните таблицу в переменной data_ohe.
Выведите на экран первые три строки преобразованной таблицы.
import pandas as pd
data = pd.read_csv('/datasets/travel_insurance.csv')
print(pd.get_dummies(data, drop_first=True).head(3))
Задача 3
Разбейте исходные данные на две выборки в соотношении 75:25 (%):
- обучающую (train);
- валидационную (valid).
Объявите четыре переменные и запишите в них:
- признаки: features_train, features_valid;
- целевой признак: target_train, target_valid.
Вам предстоит освоить альтернативный способ работы с функцией train_test_split(): когда на вход подаются две переменные (признаки и целевой признак). Поработайте с документацией.
Обучите логистическую регрессию. Напечатайте на экране текст "Обучено!" (уже в прекоде). Так вы убедитесь, что код выполнился без ошибок.
Вложите и в train_test_split(), и в LogisticRegression() параметр random_state, равный 12345.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
data = pd.read_csv('/datasets/travel_insurance.csv')
data_ohe = pd.get_dummies(data, drop_first=True)
target = data_ohe['Claim']
features = data_ohe.drop('Claim', axis=1)
features_train, features_valid, target_train, target_valid = train_test_split(features, target, test_size=0.25, random_state=12345)
model = LogisticRegression(random_state=12345, solver='liblinear')
model.fit(features_train, target_train)
print("Обучено!")