2017-08-14 107 views
-2

我有一個經過訓練的分類器,它可以將看不見的數據分類到四個類中的任何一個。有沒有辦法限制這個分類器只能從任何兩個類中分類。製作一個經過訓練的分類器只能從其它訓練集中的一組訓練集中預測出來

實施例, 類的分類器可以分配到看不見數據:

0, 1, 2, 3 

我想分類的預測限制爲0類和1只。所以,每當我將未見的數據傳遞給分類器時,它應該將數據分類爲0類或1類。

+0

因此,你是否肯定即將到來的數據將始終屬於0級或1級?如果數據實際屬於2級或3級,並且您嘗試根據概率預測1級或0級,會怎麼樣?對於這兩個類都很小,對於第2或第3類來說要高一些(在大多數情況下預測良好) –

+0

嗯,這是另一個問題。這很可能會破壞預測。 –

+0

我無法理解您希望執行此操作的用例。 –

回答

-1

是的,這是可能的。分類時,在某些方法中,您可以獲得每個班級的概率。因此,如果您有四個班級,則輸出將爲[0.1,0.2,0.3,0.4],總和爲1。這被稱爲軟分類。您分配具有最大概率的班級。

還有其他方法做硬分類。在這些方法中,您不會得到概率,但會得到確定性的結果。在這種情況下,您的輸出將看起來像[0,0,0,1]

您的問題的答案取決於您正在使用哪種分類方法。如果你使用軟分類,你可以根據你得到的概率進行分類。忽略最後兩類的概率,只使用前兩個概率。

如果您使用的是硬分類器,除非您能夠提出類似於概率的度量標準,否則這是不可能的。

+0

我使用'SGDClassifier'和'loss ='hinge''。它不支持'predict_proba'方法。然而,我認爲我可以使用'decision_function'方法來獲得置信度分數,並只用它來考慮我感興趣的類的值。但是,您不認爲這個過程中的預測會出錯嗎? –

+0

我剛剛檢查過'SGDClassifier'的文檔頁面。它有一個'predict_proba'方法。 http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier.predict_proba –

+0

我試過了。當我運行代碼時,它拋出了一個錯誤,「AttributeError:概率估計不適用於loss ='hinge''。 –

0

不是。分類器並不是什麼「可以」分類,而是「分類」。如果分類器說3,就沒有辦法要求它用於不同的分類方案。如果您希望分類器具有二進制方案,則必須對其進行培訓。那是一個不同的分類器。

我唯一想到的情況是 - 一些多類分類器有多個二元分類器。但是你通常無法獲取這些信息。

如果您有額外的知識,您可以做的是否決分類器。如果你知道第2類和第3類不在你的測試集中,你可以使用你的可能性知識將它們轉換爲0或1.如果最可能的類是2,我明確勸阻你使用概率來選擇0級或1級或3.

+0

親愛的downvoter,我可以要求評論我的回答有什麼問題嗎? – stefan