如何在我的代码中使用One hot Encoder,而不使用categorical_features


售价(美元)>年龄(年) <18000>>td>657000<22500>29400>5
汽车 车型 里程
0 宝马X5 69000
1 宝马X5 35000 34000 3
2 宝马X5261005
3 宝马X5400002
宝马X5
5 奥迪A5 590005
奥迪A5
7 奥迪A5 72000 19300 6
奥迪A5
9 Mercedez奔驰C级 67000 22000 6
10 Mercedez奔驰C级
11 Mercedez奔驰C级79000210007
12 Mercedez奔驰C级 59000 33000

您可以像这样对分类变量进行热编码。

one_hot_data = pd.get_dummies(df.Model, prefix='Model')
df = pd.concat([df, one_hot_data], axis=1)

编辑:

import pandas as pd
from sklearn.preprocessing import LabelBinarizer
jobs_encoder = LabelBinarizer()
jobs_encoder.fit(df['Model'])
transformed = jobs_encoder.transform(df['Model'])
ohe_df = pd.DataFrame(transformed)
df = pd.concat([df, ohe_df], axis=1).drop(['Model'], axis=1)

我使用以下代码解决了这个问题:

from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
dfle['Car Model']=le.fit_transform(dfle['Car Model'])
ohe=OneHotEncoder()
dfle['Car Model']=pd.DataFrame(ohe.fit_transform(df[['Car Model']]).toarray())
dfle.head()
X=dfle[['Car Model','Mileage','Age(yrs)']].values

最新更新