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

Using Scikit-Learn's SVR, how do you combine categorical and continuous features in predicting the target?

我想使用支持向量机来解决回归问题,以根据一些混合了分类特征和连续特征的特征来预测教师的收入。例如,我有 [白人、亚裔、西班牙裔、黑人],# 年的教学和多年的教育。

对于分类,我利用了 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)