主題的源數據是一個m×n的二進制矩陣(只允許0和1)。 m行代表觀測值,n列 - 特徵。有些觀察被標記爲需要與其餘部分分開的目標。二進制特徵的組合(向量)
雖然看起來像一個典型的神經網絡,支持向量機等問題,我不需要泛化。我需要的是一種有效的算法,可以儘可能多地找到將目標與其他觀測值完全分開的列(特徵)組合,即分類,即。
例如:
f1 f2 f3
o1 1 1 0
t1 1 0 1
o2 0 1 1
這裏{F1,F3}是從靜止(O1,O2)(順便說一句分離靶T1可接受的組合,{F2}不是如由任務定義的特徵必須出現在目標中)。換句話說,
t1(f1) & t1(f3) = 1 and o1(f1) & o1(f3) = 0, o2(f1) & o2(f3) = 0
where '&' represents logical conjunction (AND).
該m約爲100,000,n爲1,000。目前,數據被壓縮成沿着m的128位字,並且搜索使用sse4和什麼來優化。然而,獲得這些功能組合需要太長的時間。 經過20億次調用樹下降例程後,它已覆蓋約15%的根節點。並且發現了大約8,000個連擊,這對我的特殊應用來說是一個不錯的結果。
我使用一些經驗標準來切斷不太可能的下降路徑,但不是沒有有限的成功,但有沒有更好的辦法?我很確定那裏肯定有?..任何幫助,以任何形式,參考或建議,將不勝感激。
澄清請求:假設你有t1,t2,o1,o2。你會:a)搜索一次,從o1分離t1,t2,o2 b)搜索兩次,一次從o1分離t1,o2和另一個從o1分離t2,c)搜索兩次,從o1分離t1, o2,t2和另一個分別從o1,o2,t1分開t2? – 2012-02-01 14:25:45
阿里:目前搜索遞歸通過降序樹完成並消除已處理的組合,因此每個組合僅被視爲一次。 – jbarr 2012-02-01 14:29:39
我不明白。假設有三個特徵f1,f2,f3。我將用二進制編寫這些特徵,即101代表f1,而不是f2,f3。假設t1 = 110 t2 = 101 o1 = 010 o2 = 011。現在是{f1}的解決方案,因爲它將t1和t2與其餘的分開了嗎?或者我們需要兩個不同的解決方案,s1 = {f1,f2}來分離t1,s2 = {f1,f3}來分離t2? – 2012-02-01 14:39:39