使用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