gpt4 book ai didi

python - 使用 one-hot 编码处理 sklearn 中的分类变量

转载 作者:行者123 更新时间:2023-11-30 09:16:16 27 4
gpt4 key购买 nike

有人可以帮助使用任何现有的用于 sklearn 的分类编码器的 Python 类来勾选以下复选框吗?

  1. 对 pandas 友好 - 返回数据框的选项
  2. 应该能够在 one-hot 编码中删除 1 列
  3. 处理测试数据中看不见的类别。
  4. 与 sklearn Pipeline 对象兼容。

最佳答案

我认为您正在寻找 pandas.get_dummies

请参阅以下示例。

df = pd.DataFrame({"col_a":['cat','dog','cat','mouse','mouse','cat'], 'col_b':[10,14,16,18,20,22], 'col_c':['a','a','a','b','b','a']})

# `drop_first` parameter will drop the one categorical column
df = pd.get_dummies(df, columns=['col_a','col_c'], drop_first=True)
print(df)

输出:

  col_b  col_a_dog  col_a_mouse  col_c_b                                                                                               
0 10 0 0 0
1 14 1 0 0
2 16 0 0 0
3 18 0 1 1
4 20 0 1 1
5 22 0 0 0

它涵盖了您提到的前两个条件。

对于第三个条件,您可以执行以下操作。

  • 根据训练数据创建虚拟对象
    dummy_train = pd.get_dummies(train)
  • 在新的(看不见的数据)中创建虚拟对象
    dummy_new = pd.get_dummies(new_data)
  • 将新数据重新索引到训练数据的列,用 0 填充缺失值
    dummy_new.reindex(columns = dummy_train.columns, fill_value=0)

实际上,任何分类的新特征都不会进入分类器,但我认为这不会引起问题,因为它不知道如何处理它们。

关于python - 使用 one-hot 编码处理 sklearn 中的分类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com