鉴于您有多个虚拟列,如何预测值?
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.]])
目前有一个类似于以下内容的数据框:
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.]])