我正在寻找分类树的替代方法,它可能会产生更好的预测能力。
我正在处理的数据对于解释变量和解释变量都有影响。
我记得在这种情况下遇到过随机森林和神经网络,尽管以前从未尝试过,但是是否有另一个很好的候选人来进行这种建模任务(显然是在R中)?
我正在寻找分类树的替代方法,它可能会产生更好的预测能力。
我正在处理的数据对于解释变量和解释变量都有影响。
我记得在这种情况下遇到过随机森林和神经网络,尽管以前从未尝试过,但是是否有另一个很好的候选人来进行这种建模任务(显然是在R中)?
Answers:
我认为值得尝试一下Random Forests(randomForest); 针对相关问题提供了一些参考资料:在机器学习中执行交叉验证时“最终”模型的特征选择;可以使CART模型健壮吗?。增强/装袋使它们比单个CART更稳定,而CART对小扰动非常敏感。一些作者认为它的性能不如SVM或Gradient Boosting Machines(参见Cutler等,2009)。我认为它们肯定胜过NN。
Boulesteix和Strobl很好地概述了最佳分类器选择中的几个分类器以及错误率估计中的负偏差:有关高维预测的实证研究(BMC MRM 2009 9:85)。我在IV EAM会议上听说过另一项很好的研究,该研究应在《医学统计学》中进行审查,
JoãoMaroco,Dina Silva,Manuela Guerreiro,Alexandre deMendonça。随机森林是否优于神经网络,支持向量机和判别分析分类器?老年认知功能障碍患者向痴呆发展的案例研究
我也喜欢插入符号包:它有充分的文档证明,可以在同一数据集上比较不同分类器的预测准确性。它通过一些用户友好的功能来管理培训/测试样本,计算准确性等。
来自Friedman和coll。的glmnet软件包实现了惩罚性的GLM(请参阅Journal of Statistics Software中的评论),因此您仍将使用著名的建模框架。
否则,您也可以寻找基于关联规则的分类器(有关其中一些的简要介绍,请参见CRAN Task View on Machine Learning或数据挖掘中的前10个算法)。
我想提一下我计划在R(实际上是Matlab代码)中重新实现的另一种有趣的方法,即HervéAbdi的判别对应分析。尽管最初是为应对具有许多解释变量的小样本研究而开发的(最终归类为连贯的块),但它似乎可以有效地将经典DA与数据约简技术结合起来。
参考文献
重要的是要记住,没有一种算法总是比其他算法更好。正如Wolpert和Macready所说,“在所有可能出现的问题上取平均性能时,任何两种算法都是等效的。” (有关详细信息,请参阅Wikipedia。)
对于给定的应用程序,“最佳”应用程序通常是根据其做出的假设,可以处理的数据类型,可以代表的假设等方面最接近您的应用程序的应用程序。
因此,根据以下标准来表征数据是一个好主意:
通过回答这些问题,您可以消除一些算法并将其他算法识别为潜在的相关算法,然后最终得到一小撮您已经明智地选择有用的候选方法。
抱歉,给您一个简单的答案,不过,希望如此对您有所帮助!
对于多类分类,支持向量机也是一个不错的选择。我通常为此使用R kernlab软件包。
请参阅以下JSS论文以进行良好的讨论:http : //www.jstatsoft.org/v15/i09/
如前所述,随机森林是一种自然的“升级”,如今,SVM通常是推荐使用的技术。
我想补充一点,就是不切换到SVM会产生非常令人失望的结果。事实是,虽然使用随机树之类的技术几乎微不足道,但SVM却有些棘手。
当我第一次使用SVM(支持向量经典化实用指南)时,我发现本文具有无价的价值。
在R中,您可以将e1071软件包用于SVM,它与事实上的标准(至少在免费软件中!)libSVM库链接。