【问题标题】:How to use One hot Encoder in my code, without using categorical_features?如何在我的代码中使用 One hot Encoder,而不使用 categorical_features?
【发布时间】:2021-01-31 06:18:06
【问题描述】:
Car Model Mileage Sell Price($) Age(yrs)
0 BMW X5 69000 18000 6
1 BMW X5 35000 34000 3
2 BMW X5 57000 26100 5
3 BMW X5 22500 40000 2
4 BMW X5 46000 31500 4
5 Audi A5 59000 29400 5
6 Audi A5 52000 32000 5
7 Audi A5 72000 19300 6
8 Audi A5 91000 12000 8
9 Mercedez Benz C class 67000 22000 6
10 Mercedez Benz C class 83000 20000 7
11 Mercedez Benz C class 79000 21000 7
12 Mercedez Benz C class 59000 33000 5

上面是我的数据框,我想使用一个热编码器对“汽车模型”进行编码。

【问题讨论】:

  • 这能回答你的问题吗? How can I one hot encode in Python?
  • @yudhiesh 我尝试锁定几个这样的示例,但无法在可能的代码中使用相同的示例。我是初学者,因此有很多困惑。
  • 再看你的问题,不使用categorial_features是什么意思?
  • @yudhiesh categorical_features 是一个属性,用于声明要为一个热编码器编码哪一列,在观看教程时我发现很多人都在使用它,但现在它会引发错误,因为它目前已从最新的python。
  • 我在没有使用scikit-learn的情况下添加了答案。

标签: python machine-learning scikit-learn one-hot-encoding


【解决方案1】:

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

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)

【讨论】:

  • 非常感谢您添加此答案,但我已经学会使用虚拟变量并且也能够合并,但由于我是初学者,我想了解 OneHotEncoder 并合并它。
  • @DikshaNasa 使用LabelBinarizer()尝试更新的答案
  • @DikshaNasa 请接受并支持我的回答。
【解决方案2】:

我用下面的代码解决了:

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

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 1970-01-01
    • 2020-09-18
    • 2019-04-06
    • 2018-03-30
    • 2019-06-28
    • 1970-01-01
    • 2021-10-09
    • 2018-05-09
    相关资源
    最近更新 更多