Я действительно борюсь с кодированием категориальных типов. Учитывая два кадра данных X_train
и X_test
, я пытаюсь закодировать все почтовые индексы. Самым большим препятствием для меня является возможность кодировать значения из обоих фреймов данных (поскольку они варьируются до некоторой степени) одним и тем же способом, поэтому я подумал о создании списка всех возможных значений почтового индекса, а затем использовать это кодировать обе серии (как части DataFrames). К сожалению, это не работает, так как появляется ошибка AttributeError: 'numpy.ndarray' object has no attribute 'transform'
. У меня заканчиваются идеи.
X_train = X[['ticket_id','judgment_amount','zip_code']]
X_test = y[['ticket_id','judgment_amount','zip_code']]
Xtrain_zipcode = X_train['zip_code'].dropna().unique().tolist()
Xtest_zipcode = X_test['zip_code'].dropna().unique().tolist()
zip_list = Xtrain_zip
for elem in Xtest_zipcode:
if elem not in Xtrain_zipcode:
zip_list.append(elem)
enc_zipc = LabelEncoder().fit(zip_list)
encoded = enc_zipc.transform(zip_list)
encoded.transform(X_train['zip_code'])
Я также прочитал , что LabelEncoder
не рекомендуется при работе с категориальными функциями, которые являются входными данными. Что ты предлагаешь? Горячее кодирование?