X-Validation日志值在同一训练中在优化循环之外变化很大
你好,
我试图通过交叉验证和参数优化找到支持向量机回归的最佳参数。我使用了日志操作符来记录优化过程和值。在日志窗口中,我根据相关系数标准搜索最佳参数,例如它的日志值为84.5。问题是,记录的性能并没有保持固定,并且每次我在新的x验证中应用相同的参数和数据时(更改为78),甚至当我更改步骤并将其从30更改为60时,例如,我在日志窗口中获得相同的结果,但在新的x验证中测试这些参数时结果不同。
非常感谢。
我试图通过交叉验证和参数优化找到支持向量机回归的最佳参数。我使用了日志操作符来记录优化过程和值。在日志窗口中,我根据相关系数标准搜索最佳参数,例如它的日志值为84.5。问题是,记录的性能并没有保持固定,并且每次我在新的x验证中应用相同的参数和数据时(更改为78),甚至当我更改步骤并将其从30更改为60时,例如,我在日志窗口中获得相同的结果,但在新的x验证中测试这些参数时结果不同。
非常感谢。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<过程version = " 5.2.008 " >
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<列出关键= "注释" / >
<列出关键= " data_set_meta_data_information " / >
< /操作符>
< /操作符>
< /操作符>
“参数”<列表键= >
<参数键= " SVM。γ“价值= "(0.1,0.15,4;线性)" / >
< / >列表
<列出关键= " class_weights " / >
< /操作符>
> < /过程
<列出关键= " application_parameters " / >
< /操作符>
< /操作符>
> < /过程
< /操作符>
<列出关键= "日志" >
< / >列表
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
0
答案
一如既往,详细描述您的数据是个好主意。在这种情况下,知道你使用的例子的数量会很有趣。
此外,性能向量不仅显示感兴趣的值,还显示其标准差。如果该值很高,那么当你将学习器应用于新数据时,性能很可能会有所不同。这意味着你的数据很难分析,或者你正在使用的模型/参数/预处理不符合数据的属性和要求。
在这种情况下,X-Validation的性能也在很大程度上依赖于分割——如果在测试端有“简单”的示例,那么您将获得更高的性能估计。因此,即使您对具有相同模型和参数的相同数据应用两次交叉验证,结果也可能不同。为了克服这个问题,可以将两个x - validation的本地随机种子固定为相同的值。这将导致它总是创建相同的分割。只是要注意不要优化随机种子而不是模型参数
最好的,马吕斯
谢谢你的回复。我有1100个训练样本和400个样本。交叉验证的决定偏差系数约为0.08。我尝试使用具有最低交叉验证偏差的参数。
我现在正在做我的训练集。现在通过固定随机种子,交叉验证比以前稳定得多,但是当我在同一数据集上应用交叉验证两次或更多次时,性能标准仍然会发生变化。我真的有麻烦了。
问候
0.08的标准偏差意味着,在67%的概率下,性能将在0.84 +- 0.08之间。带有新随机种子的x验证可以解释为新数据,因此下降到74%是完全有效和预期的。
请发布您在相同数据上应用x验证两次并获得不同结果的过程,以便我可以看看它(请尝试将过程减少到最小的相关部分)。
最好的
马吕斯
我试图从以前的代码的日志窗口找到参数(请注意,我使用640的随机种子后你的答复,但这不是在以前的帖子实现)。
我将这些参数复制到下面代码的SVM设置框中(这里我也使用640的随机种子)。结果不同很多。即使重新启动程序后,我得到不同的结果从下面的代码与完全相同的参数和数据。
非常感谢您的耐心和回复。