”循环
你好,
我想运行10次10倍交叉验证的重复。
循环和平均操作符将执行10次迭代,但XValidation操作符将执行10独立的分裂和分层程序?因为如果我的工作流程循环10次,使用相同的交叉验证子集,这是没有用的。
有或没有XValidation操作符的本地随机种子有什么不同?我想重现的结果,但我很好奇,因为我得到了相同的结果没有使用本地随机种子几次运行后的工作流程。
我想运行10次10倍交叉验证的重复。
循环和平均操作符将执行10次迭代,但XValidation操作符将执行10独立的分裂和分层程序?因为如果我的工作流程循环10次,使用相同的交叉验证子集,这是没有用的。
有或没有XValidation操作符的本地随机种子有什么不同?我想重现的结果,但我很好奇,因为我得到了相同的结果没有使用本地随机种子几次运行后的工作流程。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<过程version = " 5.1.006 " >
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
< /操作符>
< /操作符>
“参数”<列表键= >
<参数键= " SVM。γ“价值= " [2 e15汽油;2 e - 3; 10;线性)" / >
< / >列表评估决策树模型的交叉验证。
<列出关键= " class_weights " / >
< /操作符>
> < /过程
<列出关键= " application_parameters " / >
< /操作符>
> < /过程
< /操作符>
<列出关键= "日志" >
< / >列表
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
标记:
0
答案
你的过程一切都很好。实际上,只要不定义本地随机种子,在10次迭代中的每一次都将使用不同的拆分。在这种情况下,所有的迭代都是相同的,这可以很容易地看到,如果你在固定的局部随机种子的Loop&Average之后放置一个断点:方差为0。我附上了下面的演示过程。
但是,如果不使用本地随机种子进行交叉验证,则每次迭代都将根据需要产生不同的分割。重复执行相同的流程将产生完全相同的结果,这也是完全正确的。这样做的原因是有一个全局随机数生成器,它在所有不使用本地随机数生成器的情况下使用(通过指定本地种子)。这使得执行可重现。
如果你想每次运行得到不同的结果,你可以改变全局随机种子,这是进程本身的一个参数(当你在进程的顶层时,只需点击进程视图的白色区域,就会有一个参数“随机种子”。如果您希望为每次运行使用不同的种子,您甚至可以将此参数设置为-1。但是,我建议在这里坚持使用默认设置。
欢呼,
Ingo
以下是本地随机种子和断点的过程(零方差-因此不要将其用于您的实际评估…):