2012-07-05 18 views
2

我有一個2級數據集,我應該在其上應用二進制分類算法。該數據集看起來如下:元組數據集上的二進制分類

A1,A2,A3,...... +1
......
B1,B2,B3,.......- 1
.......

其中每個特徵/屬性值是2元組。例如,a1是(a1_1,a1_2)。 a1_1和a1_2之間存在依賴關係(儘管此時我不確定相關性如何),並且它們的順序並不重要。類似的情況也適用於負面的類實例。

我正在尋找一些分類這些實例的方法。請讓我知道這樣的算法是否存在。首先,我嘗試拆分元組 - a1_1和a1_2爲一個實例形成了兩個單獨的列,導致每個實例的特徵值數量增加了兩倍 - 並使用LIBSVM(C/C++)庫,但結果是不好。我認爲分割元組並沒有意義,因此尋找合適的方法。

回答

0

所有的事情都是平等的,我會想象如果你的數據實際上包含了一些事物,那麼將這個事實傳達給學習算法會很有用。 將整體對分割爲不同的特徵可以讓您的分類算法有機會了解兩個特徵之間可能存在的任何有用關係。

然而,這只是一個普遍的經驗法則。有幾個原因可能導致您的分類結果不好:

  1. 有可能兩個特徵之間沒有有用的關係。如果是這樣的話,那麼分裂成兩個特徵使你的問題變得更加困難:現在分類算法有an additional dimension to explore
  2. 也許你還沒有找到正確的學習算法。不同的算法具有不同的優勢,如果使用適當的分類算法,使用多個特徵可能是一個好主意。我建議嘗試一個像Weka這樣的監督式學習包,它提供了一個非常簡單的方法來比較一組學習算法對單個問題。只需將數據轉換爲.arff格式,即可立即使用SVN,決策樹,神經網絡等進行分類。
  3. 您可能未提供足夠的功能。當您將a1, a2, ...分割爲單獨的功能[a1_1, a1_2], [a2_1, a2_2], ...時,也可以包含反轉的數據,例如, [a1_1, a1_2], [a1_2, a1_1], [a2_1, a2_2], [a2_2, a2_1], ...對於這個問題,你也可以使用三個特徵,包括每個數據的非分割版本,例如, [a1, a1_1, a1_2], [a2, a2_1, a2_2], ...這是一種「讓我們拋出所有我們能想到的問題」的方法。
  4. 這可能是因爲你只是有一個非常困難的分類問題。您是否有任何證據證明您的輸入中確實存在一些分類器可用於將數據分成兩組的分類信號?
+0

我可以給我一些更多的問題。每個元組的第二個組件(對於所有功能)實際上屬於一個實體/實例。也就是說,我不是屬於一個類的常規單個實例,而是具有屬於+/- 類的相同特徵集的兩個實例。將實例分成兩個單獨的+/- 類實例是沒有意義的。我必須將實體放在一起並將它們稱爲單個實例來解決我的問題。關於你的觀點:4)你的問題得到了回答? 1)同意,不僅使問題變得更加困難,算法也不斷地學習特徵之間的關係。 – Jey