Агентство недвижимости добавило два новых категориальных признака в датасет:
building_type— тип строительного материала;parking_place— наличие парковочного места.
Кодируйте категориальные признаки в тренировочных данных с помощью OneHotEncoder(). Дамми-ловушку устранять не нужно. Выведите на экран подготовленные данные.
import pandas as pd
from sklearn.model_selection import train_test_split
# импортируйте класс для прямого кодирования
from sklearn.preprocessing import OneHotEncoder
# создание константы RANDOM_STATE
RANDOM_STATE = 42
# добавляем данные из CSV-файла в датафрейм pandas, делим датасет на выборки
df = pd.read_csv('real_estate_clean_cat.csv')
X = df.drop('price', axis=1)
y = df['price']
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
random_state=RANDOM_STATE
)
# выберите класс OneHotEncoder() для кодирования
# задайте параметру sparse значение False
encoder = OneHotEncoder(sparse=False)
# список всех категориальных признаков из тренировочной выборки
cat_col_names = ['building_type', 'parking_place']
# обучите и преобразуйте категориальные признаки из тренировочной выборки
# сделайте это одной командой
X_train_ohe = encoder.fit_transform(X_train[cat_col_names])
# сохраните в переменной encoder_col_names названия новых столбцов
encoder_col_names = encoder.get_feature_names()
# создайте датафрейм из закодированных данных
# передайте названия столбцов из переменной encoder_col_names
df_ohe = pd.DataFrame(X_train_ohe, columns=encoder_col_names)
# выведите пять первых строк из датафрейма на экран
print(df_ohe.head())