鉴于您有多个虚拟列,如何预测值?

how to predict values given that you have multiple dummy columns?

目前有一个类似于以下内容的数据框:

   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

而不是使用 pd.get_dummies 我建议使用 sklearn's onehotencoder

查看此 link 以了解有关如何使用正确的数据编码方法替换 pd.get_dummies 的详细信息。

这允许您在训练数据上使用 .fit_transform 以获得一种用于训练的热编码表示。当尝试使用测试数据进行预测时,您可以简单地使用它的 .transform 方法来为这些数据获得一个热编码表示。

from sklearn.preprocessing import OneHotEncoder

enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male', 1], ['Female', 3], ['Female', 2]]
enc.fit(X)
enc.categories_
[array(['Female', 'Male'], dtype=object), array([1, 2, 3], dtype=object)]
enc.transform([['Female', 1], ['Male', 4]]).toarray()
array([[1., 0., 1., 0., 0.],
       [0., 1., 0., 0., 0.]])