2015-04-23 51 views
3

我想用支持向量機來解決一個迴歸問題,根據一些混合了分類和連續的特徵來預測教師的收入。例如,我有[白色,亞洲,西班牙裔,黑色],#年教學和多年教育。使用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) 

回答

2

可以使用scikit學習的OneHotEncoder。如果你的數據在numpy的數組 「racearray」 和列

[contionus_feature1,contious_feature2,分類, 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) 
+0

謝謝你。你認爲你可以詳細說明我將如何混合這兩種類型的功能?從我正在閱讀的內容中,我應該有一個所有輸入的向量,即[contionus_feature1,contious_feature2,categorical,continous_feature3]。 然後,我會編碼該特徵,指定我的分類在第3列,並使用該編碼矩陣作爲SVR的「混合」最終輸入向量? –

+0

@Zooey Lee我在回覆信箱中發佈了回覆 – lanenok

+0

非常感謝! –

相關問題