2017-02-28 92 views
0

什麼算法可以說我有在數據集中的兩個陣列:到選擇二進制圖像分類

1)第一種是陣列分類爲(0,1) - [0,1,0,1,1, 1,0 .....]

2)第二個灰度圖像向量的陣列成本函數,每個元素中有2500個元素(數字從0到300)。這些數字是來自50 * 50像素圖像的像素。 - [[13 160 239 192 219 199 4 60 ..] [....] [....] [....] [....]]

該數據集的大小相當重要的(約12000個元素)。 我想建立bery基本的二元分類器,它會給出合適的結果。比方說,我想選擇非深度學習,但一些監督方法。 這種情況適合嗎?我已經嘗試過使用各種參數的sklearn的SVM。但結果是不恰當的,並主要由1組成:[1,1,1,1,1,0,1,1,1,...]

什麼是正確的方法?數據集的大小不足以通過監督算法得到好的結果嗎?

回答

2

您或許應該在cross-validated上發帖: 但是作爲一個直接的答案,您應該看看順序來排列學習者,因爲您已經很清楚SVM不是理想的解決方案。

如果您不想走deep learning路線,您應該查看Markov models以進行順序學習,然而,Neural Networks在圖像分類問題方面有非常好的記錄。

理想情況下,對於順序學習,您應該嘗試查看Long Short Term Memory Recurrent Neural Networks,並查看您當前的數據集是否在現有數據語料庫上進行預訓練(說CIFAR-10)可能有所幫助。

所以我的推薦是給Tensorflow一個高級庫,如Keras/SKFlow
神經網絡只是您的機器學習曲目的另一個工具,您可能也會給它們一個真正的機會。

的編輯,以解決您的評論:
您的問題還沒有一個缺乏SVM數據,
的SVM將工作做好,對於一個小的數據集,因爲它會更容易爲它過度擬合/適應在這個數據集上分離超平面。
隨着您增加數據維度,請記住使用分離超平面來分離它變得越來越困難[查看維度的詛咒]。
但是,如果您以這種方式設置,請嘗試一些降維 ,如PCA。

雖然這裏你一定會找到另一個圍欄斷帶神經網絡, 由於Kohonen自組織映射做這個任務的美麗,你可以嘗試 項目中的數據在一個較低的層面,因此允許SVM分離它具有更高的準確性。
我仍然必須堅持說你可能會使用不正確的方法。

+0

在我的情況下,SVM適用於數據集減少的情況。可以說多達3000個元素(12000箇中)最終得分是〜0.7。但如果我想提高準確度,我需要更多的數據來訓練。在這種情況下SVM變得太慢 –

+0

我在這個領域仍然是新的,有時導致「用正則表達式解析HTML」。這就是我發佈這個問題的原因。如果SVM(即使是PCA)不好,那麼我將把它作爲默認設置,並且將更好地專注於構建NN –

+0

如果你仍然想嘗試SVM,看看isomap(sklearn有一個實現),這可能就足夠了。祝你好運探索 – SerialDev