在比较 R 中不同模型获得的结果时,我应该寻找什么来选择最好的?
例如,如果我使用以下 4 个模型应用于从物种数据集中提取的相同存在/不存在样本,具有相同的变量:
广义线性模型
广义加法模型分类
回归树
人工神经网络
我应该通过 AIC、Kappa 还是交叉验证来比较所有方法?
我能确定选择最好的模型吗?
如果我将这 4 个模型的预测与贝叶斯因子进行比较会发生什么?我可以比较它们吗?
在比较 R 中不同模型获得的结果时,我应该寻找什么来选择最好的?
例如,如果我使用以下 4 个模型应用于从物种数据集中提取的相同存在/不存在样本,具有相同的变量:
广义线性模型
广义加法模型分类
回归树
人工神经网络
我应该通过 AIC、Kappa 还是交叉验证来比较所有方法?
我能确定选择最好的模型吗?
如果我将这 4 个模型的预测与贝叶斯因子进行比较会发生什么?我可以比较它们吗?
您正在使用各种不同类型的模型,这使情况变得有趣。通常,当人们说他们从事模型选择时,他们的意思是他们有一种模型,具有不同的预测变量集(例如,具有变量 A、B、C 和 D 的多元回归模型与 A、B 和A*B 等)。请注意,为了确定最佳模型,我们需要指定“最佳”的含义;因为您专注于数据挖掘方法,所以我假设您希望最大限度地提高预测准确性。让我说几件事:
在我看来,交叉验证是一个非常可靠的黄金标准,用于进行侧重于模型预测新数据的能力的比较。也就是说,至少对于 GLM 案例,AIC 已被证明(Stone,1977)渐近等效于交叉验证,所以如果你对渐近假设没问题,你可以通过使用 AIC 来节省一些计算时间,而不是而不是计算完整的交叉验证。
假设您正在使用分类错误或与您的性能度量类似的东西,那么您为什么不尝试对所有模型进行交叉验证呢?
将您的数据分成 10 个块,然后使用其中一个块作为测试集,另外 9 个块作为训练进行 10 轮构建和测试(即第 1 轮:训练 2-10,测试 1。第 2 轮:训练 1+3-10,测试 2。第 3 轮:训练 1-2+4-10,测试 3)。
这种方法可以帮助您找到执行最佳的算法(以及这些模型的哪些参数)。
起初我遇到的一件事是,构建的实际模型并不重要,重要的是您调用的函数和提供给它的参数。