其他分享
首页 > 其他分享> > 使用Scikit-Learn的SVR,如何在预测目标时结合分类和连续特征?

使用Scikit-Learn的SVR,如何在预测目标时结合分类和连续特征?

作者:互联网

我想使用支持向量机来解决回归问题,以基于一些特征的预测,该特征是分类的和连续的.例如,我有[白人,亚洲人,西班牙裔,黑人],#年的教学经验和多年的教育经验.

对于分类,我利用了sci-kit的预处理模块,并对这4个种族进行了热编码.在这种情况下,一位白人教师看起来像[1,0,0,0],因此我有一个{[1,0,0,0],[0,1,0,0]的数组,… [0,0,1,0],[1,0,0,0]}代表为SVR编码的每个老师的种族.我可以通过种族与收入进行回归,即:

clf= SVR(C=1.0)
clf.fit(racearray, income) 

我也可以使用定量特征进行回归.但是,我不知道如何将这些功能组合在一起,即

continousarray(zip(yearsteaching,yearseduction))
clf.fit((racearray, continousarray), income)

解决方法:

您可以使用scikit-learn的OneHotEncoder.如果您的数据位于numpy数组“ racearray”中,并且列为

[ contionus_feature1, contious_feature2, categorical,
continous_feature3]

您的代码应如下所示(请记住,numpy枚举以0开头)

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(categorical_features=[2])
race_encoded = enc.fit_transform(racearay)

然后,您可以照常查看一下race_encode数组,并在SVR中将其用作

clf= SVR(C=1.0)
clf.fit(race_encoded, income) 

标签:scikit-learn,python
来源: https://codeday.me/bug/20191120/2043927.html