Python 用一个热编码处理sklearn中的分类变量
是否有人可以帮助您使用任何现有的Python类,用于勾选以下复选框的Python 用一个热编码处理sklearn中的分类变量,python,pandas,dataframe,machine-learning,scikit-learn,Python,Pandas,Dataframe,Machine Learning,Scikit Learn,是否有人可以帮助您使用任何现有的Python类,用于勾选以下复选框的sklearn 熊猫友好-返回数据帧的选项 应该能够在一个热编码中删除1列 处理测试数据中不可见的类别 与sklearn管道对象兼容 我想你在找我 请参见下面的示例 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']}
sklearn
我想你在找我 请参见下面的示例
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\u train=pd.get\u dummie(train)
- 在新的(看不见的数据)中创建假人
dummy\u new=pd.get\u dummie(新数据)
- 将新数据重新索引到训练数据的列中,用0填充缺少的值
dummy\u new.reindex(列=dummy\u train.columns,填充值=0)
实际上,任何分类的新特性都不会进入分类器,但我认为这不会导致问题,因为它不知道如何处理它们 我想你在找 请参见下面的示例
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\u train=pd.get\u dummie(train)
- 在新的(看不见的数据)中创建假人
dummy\u new=pd.get\u dummie(新数据)
- 将新数据重新索引到训练数据的列中,用0填充缺少的值
dummy\u new.reindex(列=dummy\u train.columns,填充值=0)
实际上,任何分类的新特性都不会进入分类器,但我认为这不会导致问题,因为它不知道如何处理它们 对不起。我知道这一点。在sklearn标准中寻找适合管道的东西。@AkshayNevrekar我相信OP的意思是
sklearn.pipeline.pipeline
对象。@solver149您应该在问题中添加这些信息。对不起。我知道这一点。在sklearn标准中寻找适合管道的东西。@AkshayNevrekar我相信OP是指sklearn.pipeline.pipeline
对象。@solver149您应该在问题中添加这些信息。pandas
或sklearn
中不存在这种东西。不过,只需少量编码,您就可以包装OneHotEncoder
来完成您想要的操作。是的。我在这些行中找不到任何东西..这样的东西在pandas
或sklearn
中本就不存在。不过,只需少量编码,您就可以包装OneHotEncoder
来完成您想要的操作。是的。我在这些线上找不到什么东西。。