问题描述
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
通常,从模型进行预测时,其结果类似于
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.]])