以下是培训我的大众汽车模型的日志的一部分.
为什么这些行中的一些后跟h?您会注意到最后的摘要中的"平均损失"行是正确的.我不确定这意味着什么,或者我是否应该关心.
...
average since example example current current current
loss last counter weight label predict features
1.000000 1.000000 1 1.0 -1.0000 0.0000 15
0.500000 0.000000 2 2.0 1.0000 1.0000 15
1.250000 2.000000 4 4.0 -1.0000 1.0000 9
1.167489 1.084979 8 8.0 -1.0000 1.0000 29
1.291439 1.415389 16 16.0 1.0000 1.0000 45
1.096302 0.901166 32 32.0 -1.0000 -1.0000 21
1.299807 1.503312 64 64.0 -1.0000 1.0000 7
1.413753 1.527699 128 128.0 -1.0000 1.0000 11
1.459430 1.505107 256 256.0 -1.0000 1.0000 47
1.322658 1.185886 512 512.0 -1.0000 -1.0000 59
1.193357 1.064056 1024 1024.0 -1.0000 1.0000 69
1.145822 1.098288 2048 2048.0 -1.0000 -1.0000 5
1.187072 1.228322 4096 4096.0 -1.0000 -1.0000 9
1.093551 1.000031 8192 8192.0 -1.0000 -1.0000 67
1.041445 0.989338 16384 16384.0 -1.0000 -0.6838 29
1.107593 1.173741 32768 32768.0 1.0000 -1.0000 5
1.147313 1.187034 65536 65536.0 -1.0000 1.0000 7
1.078471 1.009628 131072 131072.0 -1.0000 -1.0000 73
1.004700 1.004700 262144 262144.0 -1.0000 1.0000 41 h
0.918594 0.832488 524288 524288.0 -1.0000 -1.0000 7 h
0.868978 0.819363 1048576 1048576.0 -1.0000 -1.0000 21 h
finished run
number of examples per pass = 152064
passes used = 10
weighted example sum = 1.52064e+06
weighted label sum = -854360
average loss = 0.809741 h
...
Run Code Online (Sandbox Code Playgroud)
谢谢
大众使用文件中的样本训练模型并打印出平均列车损失值(没有'h'后缀).如果--passes n需要对文件进行多次传递(指定)以训练模型,则保留每个第k个示例(可以更改--holdout_period k)以进行测试,不要将它们用于训练.在第二次和更多次通过时,它估计这些测试示例的损失而不是训练示例并用'h'打印出损失值.如果你得到非常小的值而没有'h'而且更大的值与'h'之后可能意味着你的模型被过度拟合.如果已经确保您的模型不会过度拟合并希望在整个数据集上使用多次传递进行训练,则应指定--holdout_off.否则你将丢失10%的数据(--holdout_period默认为10).
这h是打印时
(!all.holdout_set_off && all.current_pass >= 1)
Run Code Online (Sandbox Code Playgroud)
为true(请参阅输出grep -nH -e '\<h\\n' vowpalwabbit/*.cc并查看代码).
--holdout_off在命令行参数中搜索:
--holdout_off禁用多次通过学习的保持验证.默认情况下,只要 - 通过> 1,VW就会保留一个(可控的默认值= 1/10)子集,并在打印输出时报告测试丢失.这用于防止多次通过学习中的过度拟合.在生产线末尾打印一个额外的h,以指定报告的损失是保持验证损失,而不是累进验证损失.
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |