如果我添加现有特征的线性,非线性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