看起来你是新来的。登录或注册开始。
我一直在尝试自动预测模型,我对它的概念和结果都很满意。
在Auto Model过程中,采样设置为80/20。这是否足以控制潜在的过拟合?我得到的性能范围从朴素贝叶斯的60%准确率到GBT的87%准确率。每个数据集只有不到1000行数据和20个属性。GBT正在种植大约20棵树。(我可能会使用100个数据集和每个数据集的专用模型进行操作)
你好@dgarrard-我认为它总是谨慎的警惕过拟合,无论它是使用自动模型或使用“正常”的RapidMiner方法。我们都知道,有些模型(如神经网络)容易过度拟合,应该谨慎使用,尤其是在小数据集上。
我个人的观点是,80/20分割被广泛使用,一般来说,这是一个合理的分割比例,如果与交叉验证等方法一起使用,应该足以避免过度拟合(这是Auto Model的默认值)。
最后,不管使用什么工具,我总是对结果持怀疑态度,直到我真正检查它们,看看我的“适合”如何看待未见过的数据。
希望这对你有所帮助。
斯科特
谢谢你的快速回复,斯科特。我会试着在接下来的几周内完成一些测试,而我的Auto-Model试验仍然可用!
大卫
你好,
我只有几分钟的时间,所以我想就这个话题谈谈:smileyhappy:事实上,这对我来说真的很重要。所以我们开始…
我个人认为有必要指出,这实际上是两个有些不相关的问题:
好,关于问题1,我的模型是否存在过拟合?简单的回答是:“是的,一直都是。”
过度拟合总是独立于训练/测试分割而发生。所有的模型和数据集都会发生这种情况——有时多,有时少。我有时觉得我们太关注“过度拟合”这个词了,而你真的想知道的是该模型未来的表现如何.是的,会有一些过拟合(这就是为什么训练数据的性能总是比测试数据的性能低)。但是,培训性能(以及作为结果的过拟合程度的测量)是不相关的。至少,正如我上面所说的,如果您想要正确评估模型的预期未来性能。我想这就是整个验证的首要目的。
这里有一个例子可以更清楚地说明这一点。如果您的测试数据显示准确率为80%,那么将来也将达到80%左右。训练精度是81%(即几乎没有过拟合发生)还是90%(即发生了很多过拟合)并不重要。与过拟合的数量和训练误差无关,该模型的准确率大致为80%。在我看来,这才是真正重要的。
那么为什么训练/测试比例如此重要呢?这实际上与上面讨论的过拟合问题有些关联。如果你提供更多的训练数据,大多数模型将更好地泛化(更好的测试精度,更少的过拟合,或两者兼而有之)。即使忽略测量过拟合程度,您仍然希望获得更好的测试精度……
那么我们是否应该使用尽可能多的训练数据呢?好吧,这里有个问题。这种分离确实对第二个问题有影响:“您的测试数据是否足以给您一个真正相关的,即测试性能的良好估计?”
如果您的测试集中没有足够的数据,您可能会遇到这样的问题:测试数据样本特别容易(或困难),并且您对未来性能的估计可能与现实相去甚远。为了减少这种风险,我实际上总是至少在将模型投入生产之前使用交叉验证。因为交叉验证减少了测试集的选择偏差。
以下是我认为的最佳实践:
如果你想了解更多关于整个验证主题的信息,我不久前写了一篇26页的白皮书:-)这里是链接:
//m.turtlecreekpls.com/resource/correct-model-validation/
很抱歉写了这么长的邮件。你很可能已经知道了所有这些,在这种情况下,请忽略它。我只是想借此机会写下一些想法,并将其公之于众;-)
最好的和快乐的建模,
Ingo
你好,这很有帮助,谢谢你。但我确实有一个后续问题…在结果视图中,自动模型显示的是测试集准确性还是训练集准确性?因为我在汽车模型中对4500行具有15个特征的数据运行GBT,获得了90%的“准确率”和84%的f-measure,但是当我将该模型应用于新的未见过的数据(实际上我故意从训练和交叉验证过程中保留)时,准确率下降到50%以下。所以我不确定我是否错误地运行了验证过程,或者可能没有理解CV的结果告诉我什么——因为我期望汽车模型产生一个反映模型未来表现的准确率。谢谢。
抱歉耽搁了,我错过了这个。它当然显示了测试误差。如果你读了上面链接的我的正确验证作品,你会发现我们从一开始就不会关心训练错误;-)
这种下降可能是由训练集和验证集之间数据分布的(显著)变化引起的。或者,我个人认为更有可能的情况是,由于数量很大,您可能没有在验证集上应用完全相同的数据准备。更多关于这在另一个线程在这里:
https://community.m.turtlecreekpls.com/t5/RapidMiner-Auto-Model-Turbo-Prep/Is-auto-model-showing-test-or-train-error/m-p/50902/highlight/false#M117
希望这能帮到你,
答案
你好@dgarrard-我认为它总是谨慎的警惕过拟合,无论它是使用自动模型或使用“正常”的RapidMiner方法。我们都知道,有些模型(如神经网络)容易过度拟合,应该谨慎使用,尤其是在小数据集上。
我个人的观点是,80/20分割被广泛使用,一般来说,这是一个合理的分割比例,如果与交叉验证等方法一起使用,应该足以避免过度拟合(这是Auto Model的默认值)。
最后,不管使用什么工具,我总是对结果持怀疑态度,直到我真正检查它们,看看我的“适合”如何看待未见过的数据。
希望这对你有所帮助。
斯科特
谢谢你的快速回复,斯科特。我会试着在接下来的几周内完成一些测试,而我的Auto-Model试验仍然可用!
大卫
你好,
我只有几分钟的时间,所以我想就这个话题谈谈:smileyhappy:事实上,这对我来说真的很重要。所以我们开始…
我个人认为有必要指出,这实际上是两个有些不相关的问题:
好,关于问题1,我的模型是否存在过拟合?简单的回答是:“是的,一直都是。”
过度拟合总是独立于训练/测试分割而发生。所有的模型和数据集都会发生这种情况——有时多,有时少。我有时觉得我们太关注“过度拟合”这个词了,而你真的想知道的是该模型未来的表现如何.是的,会有一些过拟合(这就是为什么训练数据的性能总是比测试数据的性能低)。但是,培训性能(以及作为结果的过拟合程度的测量)是不相关的。至少,正如我上面所说的,如果您想要正确评估模型的预期未来性能。我想这就是整个验证的首要目的。
这里有一个例子可以更清楚地说明这一点。如果您的测试数据显示准确率为80%,那么将来也将达到80%左右。训练精度是81%(即几乎没有过拟合发生)还是90%(即发生了很多过拟合)并不重要。与过拟合的数量和训练误差无关,该模型的准确率大致为80%。在我看来,这才是真正重要的。
那么为什么训练/测试比例如此重要呢?这实际上与上面讨论的过拟合问题有些关联。如果你提供更多的训练数据,大多数模型将更好地泛化(更好的测试精度,更少的过拟合,或两者兼而有之)。即使忽略测量过拟合程度,您仍然希望获得更好的测试精度……
那么我们是否应该使用尽可能多的训练数据呢?好吧,这里有个问题。这种分离确实对第二个问题有影响:“您的测试数据是否足以给您一个真正相关的,即测试性能的良好估计?”
如果您的测试集中没有足够的数据,您可能会遇到这样的问题:测试数据样本特别容易(或困难),并且您对未来性能的估计可能与现实相去甚远。为了减少这种风险,我实际上总是至少在将模型投入生产之前使用交叉验证。因为交叉验证减少了测试集的选择偏差。
以下是我认为的最佳实践:
如果你想了解更多关于整个验证主题的信息,我不久前写了一篇26页的白皮书:-)这里是链接:
//m.turtlecreekpls.com/resource/correct-model-validation/
很抱歉写了这么长的邮件。你很可能已经知道了所有这些,在这种情况下,请忽略它。我只是想借此机会写下一些想法,并将其公之于众;-)
最好的和快乐的建模,
Ingo
你好,这很有帮助,谢谢你。但我确实有一个后续问题…在结果视图中,自动模型显示的是测试集准确性还是训练集准确性?因为我在汽车模型中对4500行具有15个特征的数据运行GBT,获得了90%的“准确率”和84%的f-measure,但是当我将该模型应用于新的未见过的数据(实际上我故意从训练和交叉验证过程中保留)时,准确率下降到50%以下。所以我不确定我是否错误地运行了验证过程,或者可能没有理解CV的结果告诉我什么——因为我期望汽车模型产生一个反映模型未来表现的准确率。谢谢。
你好,
抱歉耽搁了,我错过了这个。它当然显示了测试误差。如果你读了上面链接的我的正确验证作品,你会发现我们从一开始就不会关心训练错误;-)
这种下降可能是由训练集和验证集之间数据分布的(显著)变化引起的。或者,我个人认为更有可能的情况是,由于数量很大,您可能没有在验证集上应用完全相同的数据准备。更多关于这在另一个线程在这里:
https://community.m.turtlecreekpls.com/t5/RapidMiner-Auto-Model-Turbo-Prep/Is-auto-model-showing-test-or-train-error/m-p/50902/highlight/false#M117
希望这能帮到你,
Ingo