如果我添加現有特徵的線性,非線性combinatinos,它有助於更好地進行分類嗎?例如,它是否有助於將平均值,方差作爲從現有功能計算出的新功能添加?我相信它肯定取決於分類算法,就像在PCA的情況下一樣,算法本身會生成相互正交的新特徵,並且是輸入特徵的線性組合。但是在基於決策樹的分類器或其他分類器的情況下它是如何起作用的呢?現有功能的組合是否具有新功能?
2
A
回答
10
是的,現有功能組合可以提供新功能和幫助分類。此外,特徵與其自身的組合(例如,來自特徵的多項式)可以用作分類期間要使用的這個附加數據。
作爲一個例子,考慮對數迴歸分類器與這種線性公式作爲其核心:
g(x, y) = 1*x + 2*y
試想,您有2個觀察值:
- X = 6; y = 1
- x = 3; y = 2.5
在這兩種情況下,g()
將等於8.如果觀察屬於不同類別,則無法區分它們。但是,讓我們增加一個變量(功能)z
,這是前2個功能組合 - z = x * y
:
g(x, y, z) = 1*x + 2*y + 0.5*z
現在對於相同的看法,我們有:
- X = 6; y = 1; z = 6 * 1 = 6 ==> g()= 11
- x = 3; y = 2.5; z = 3 * 2.5 = 7.5 ==> g()= 11.75
所以現在我們得到2個不同的點並且可以區分2個觀測值。
多項式特徵(X^2,X^3,Y^2等)不給附加分,但功能代替變化的曲線圖。例如,g(x) = a0 + a1*x
是一條線,而g(x) = a0 + a1*x + a2*x^2
是拋物線,因此可以更密切地適合數據。
1
一般來說,擁有更多功能總是更好。除非你有很強的預測功能(也就是說它們可以完全分離預測的類),否則我總是會建議添加更多的功能。實際上,許多分類算法(特別是決策樹誘導因子)無論如何都爲其目的選擇最佳特徵。
相關問題
- 1. 具有類似功能的組功能
- 2. PHP是否具有聚合數組中時間值的功能?
- 3. Ruby Sequel是否具有與SQL「合併」功能等效的功能?
- 4. Procmail是否具有小寫功能或類似功能?
- 5. Netezza是否具有ODBC DESCRIBE功能?
- 6. NumPy是否具有均勻性功能?
- 7. vim是否具有Notepad ++功能?
- 8. VBA是否具有ATan2功能?
- 9. ValueInjecter是否具有這些automapper功能?
- 10. Nifi是否具有循環功能?
- 11. 是否打印功能具有在python
- 12. blueprintjs是否具有步進功能?
- 13. LESS是否具有「擴展」功能?
- 14. Doxygen是否具有續行功能?
- 15. CRC是否具有以下功能
- 16. java是否具有鉗位功能?
- 17. DataSet是否具有Contain或In功能?
- 18. JSF1.2是否具有CSRF保護功能?
- 19. Eclipse是否具有「Syntax Aware Selection」功能?
- 20. Acumatica Report Designer是否具有此功能?
- 21. TextMate是否具有untabify功能?
- 22. 是否有AutoMapper合併功能?
- 23. 是否有可能具有命名的角度配置功能?
- 24. 是否有可能具有jQuery功能的OR語句?
- 25. 按功能是否有任何numpy組?
- 26. CSS是否有「重新開始」功能?
- 27. 是否有建設功能?
- 28. 是否有MAKELONGLONG功能?
- 29. OCaml是否有popcnt功能?
- 30. Redis是否有decr功能
我不同意「有更多功能總是更好」 - 如何選擇特徵和維度的過程? – lmsasu 2012-02-09 10:12:38
這個想法是,新功能(或現有功能的組合)可以讓你做出更好的預測。如果他們不這樣做,他們將不會被選中。正如您所指出的那樣,您還可以運行功能選擇以減少功能的數量。我沒有看到維度的詛咒來自哪裏 - 例如,支持向量機有意增加特徵空間的維度以提高性能。 – 2012-02-09 18:56:39