2014-10-30 59 views
4

以下是培訓我的VW車型的日誌的一部分。解釋Vowpal Wabbit結果:爲什麼附加「h」一些行?

爲什麼這些行中的一些後跟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 
... 

由於

回答

5

h

(!all.holdout_set_off && all.current_pass >= 1) 

爲真印刷(見輸出從grep -nH -e '\<h\\n' vowpalwabbit/*.cc並查看代碼)。

搜索--holdout_offCommand line arguments

多個通學習--holdout_off禁用抵抗驗證。默認情況下,每當 - >> 1時,VW支持一個 示例(可控制的默認值= 1/10)子集,並在打印時報告測試損失。這用於防止多遍學習中的過度擬合。 額外的h印在行尾以指定報告的 損失是堅持驗證損失,而不是逐步驗證 損失。

6

VW使用文件中的樣本訓練模型,並打印平均列車損失值(不含'h'後綴)。如果需要多次通過文件(用--passes n指定)來訓練模型,它會保留每個第k個示例(可以用--holdout_period k更改)以進行測試,並且不要將它們用於訓練。在第二次及以後,它會估計這些測試示例的損失,而不是訓練示例,並用'h'打印損失值。如果你在沒有'h'的情況下得到非常小的值並且在'h'後面得到更大的值,這可能意味着你的模型過度配置。如果已經確保您的模型不會過度使用,並且想要在整個數據集上使用多次訓練,則應指定--holdout_off。否則,您將丟失10%的數據(默認爲--holdout_period)。

+1

此答案提供了有關大衆以及如何建立良好模型的更多信息。這應該是被接受的答案。 – 2015-09-04 16:07:55