Чтобы преобразовать категориальные данные в числовые, вы можете попробовать следующие подходы в sklearn:
- Кодировка меток
- Метка бинаризатор
- Кодировка OneHot
Теперь для решения вашей проблемы вы можете использовать LabelEncoder.Но тут есть подвох.В других моделях sklearn вы можете объявить его один раз, а затем использовать его для подгонки, а затем преобразовать в несколько столбцов.
В LabelEncoding необходимо fit_transform
модель для одного столбца в данных поезда, а затемtransform
тот же столбец в тестовых данных.Затем тот же процесс для следующего категориального столбца.
Вы можете перебрать список категориальных столбцов, чтобы упростить его.Рассмотрите фрагмент ниже:
cat_cols = ['Item_Identifier', 'Item_Fat_Content', 'Item_Type', 'Outlet_Identifier',
'Outlet_Size', 'Outlet_Location_Type', 'Outlet_Type', 'Item_Type_Combined']
enc = LabelEncoder()
for col in cat_cols:
train[col] = train[col].astype('str')
test[col] = test[col].astype('str')
train[col] = enc.fit_transform(train[col])
test[col] = enc.transform(test[col])