0

我想找出最好的一般方法來預測scikit-learn中的分類特徵,並想要一些建議。特別是,我可以做一個決策樹,它將處理分類數據就好,但我想嘗試一些其他的多分類模型。我可以使用獨特的方法將分類特徵轉化爲大量的二元特徵。Scikit學習:預測分類特徵

實例訓練集:

Age| Color | City  | Freq 
35 |'Orange'|'Seattle' | '<30' 
55 |'Black' |'Portland'| '>30' 
75 |'Red' |'Seattle' | 'Never' 

可以很容易地更改爲:

Age| Color |City | Freq 
35 | 1 0 0 | 1 0 | 1 0 0 
55 | 0 1 0 | 0 1 | 0 1 0 
75 | 0 0 1 | 1 0 | 0 0 1 

我可以劃分爲數據目標對這樣的:

X= Age| Color |City 
    35 | 1 0 0 | 1 0 
    55 | 0 1 0 | 0 1 
    75 | 0 0 1 | 1 0 

y= Freq 
    1 0 0 
    0 1 0 
    0 0 1 

然後我能使用各種SK-Learn分類模型進行處理,但我不清楚這三個'Freq'特徵是否爲und理解爲相互排斥。因此,我的問題:

除了僅僅決策樹之外,是否有可能用廣義分類例程來預測分類特徵?

如何確保一組二進制功能保持互斥?

此外,是否可以將結果呈現爲以智能方式加入三個二進制特徵的度量?

感謝您的幫助!

+0

一個分類輸出變量相當於一個分類問題。你可以只是一個普通的分類器。這是你的情況嗎?或者我可能誤解 – Donbeo 2014-11-14 23:19:23

+0

所以你在說訓練數據不需要是分類數據,而訓練目標不需要?文檔中提到 - 4.2.4。對分類特徵進行編碼:「將分類特徵轉換爲可與scikit-learn估計器一起使用的特徵的一種可能性是使用OneHotEncoder中實現的一種K或一種熱門編碼,該估計器將每個分類特徵m個可能的值轉換爲m個二元特徵,只有一個有效。「,所以我認爲目標也必須轉換。 – user3654387 2014-11-14 23:37:33

+0

只要您明確使用分類算法而不是輸出變量就不成問題。可能你必須用數字替換字符串y =(a,a,b,c,a,c) - > y =(1,1,2,3,1,3)' – Donbeo 2014-11-15 00:00:52

回答

0

是的,這是可能的。只是不要「一熱」你的輸出向量。將其轉換爲數字。

如頻率:

'<30' = 0 
'>30' = 1 
'Never' = 2 

如果你這樣做的任何迴歸算法應該工作。然後,您可以爲每個輸出類設置閾值。

另一種選擇是擁有3個二元分類模型,每個分類模型爲每一個類訓練。

另請參閱Softmax迴歸。