如何解决如果您有多个虚拟列,如何预测值?
当前有一个类似于以下内容的数据框:
salary job title Raiting Company_Name Location Seniority
0 100 SE 5 apple sf vp
1 120 DS 4 Samsung la Jr
2 230 QA 5 google sd Sr
(我的df具有更多分类功能)
通常,从模型进行预测时,其结果类似于
in[1]: inModel_name.predict(catagory_1,catagory_2,..etc)
out[2]: predicted_var
在使用pd.get_dummies之后,根据创建的分类功能的数量,您将拥有大量的列,这使得我在尝试预测数据时前面提到的方法不切实际。您如何去引用多个列而不是手动输入0s
解决方法
我建议不要使用sklearn's onehotencoder
,而不要使用pd.get_dummies
请选中此link,以获取有关如何使用正确的数据编码方法替换pd.get_dummies的详细信息。
这使您可以在训练数据上使用.fit_transform
,以获得一种用于训练的热编码表示。而且,当尝试使用测试数据进行预测时,您只需使用其.transform
方法即可获得针对这些数据的一种热编码表示形式。
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male',1],['Female',3],2]]
enc.fit(X)
enc.categories_
[array(['Female','Male'],dtype=object),array([1,2,dtype=object)]
enc.transform([['Female',['Male',4]]).toarray()
array([[1.,0.,1.,0.],[0.,0.]])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。