帮助解决tools . handle平均数
你好,
似乎IteratingPerformanceAverage不能正确处理嵌套平均值,如以下过程所示(这是一个2x2交叉验证的玩具示例):
(tt)
运行折叠错误
10 0.249
1 1 0.278
2 0 0.359
2 1 0.278
[/ tt]
第一次运行(前两次折叠)的平均值为0.264,第二次运行(后两次折叠)的平均值为0.319,总体平均值为0.291。然而,如果你看看IteratingPerformanceAverage返回的性能向量,它显示的值是0.282。
这是因为在工具中。handleAverage(外部调用,来自IteratingPerformanceAverage.apply)第一个平均向量是第一次运行的平均值,值为0.264,平均计数= 2。然而,当第二个平均向量(来自第二次运行,值为0.319)被折叠时,在调用Averagable中。buildAverage,它被视为只有1的平均计数,而它实际上应该具有与第一个平均向量相同的权重。(因此,(2*0.264 + 1*0.319)/3的加权平均值给出的错误报告值为0.282。)
有人能建议如何解决这个问题吗?
我在工具里想。当插入第一个平均向量时,其平均计数应设置为1。
任何帮助都是极大地感激。
似乎IteratingPerformanceAverage不能正确处理嵌套平均值,如以下过程所示(这是一个2x2交叉验证的玩具示例):
运行实验后,过程日志显示:
< /操作符>
< /操作符>
< /操作符>
< /操作符>
<列出关键= "日志" >
< / >列表
< /操作符>
< /操作符>
< /操作符>
< /操作符>
< /操作符>
(tt)
运行折叠错误
10 0.249
1 1 0.278
2 0 0.359
2 1 0.278
[/ tt]
第一次运行(前两次折叠)的平均值为0.264,第二次运行(后两次折叠)的平均值为0.319,总体平均值为0.291。然而,如果你看看IteratingPerformanceAverage返回的性能向量,它显示的值是0.282。
这是因为在工具中。handleAverage(外部调用,来自IteratingPerformanceAverage.apply)第一个平均向量是第一次运行的平均值,值为0.264,平均计数= 2。然而,当第二个平均向量(来自第二次运行,值为0.319)被折叠时,在调用Averagable中。buildAverage,它被视为只有1的平均计数,而它实际上应该具有与第一个平均向量相同的权重。(因此,(2*0.264 + 1*0.319)/3的加权平均值给出的错误报告值为0.282。)
有人能建议如何解决这个问题吗?
我在工具里想。当插入第一个平均向量时,其平均计数应设置为1。
任何帮助都是极大地感激。
0
答案
这是之前一篇文章的后续:http://rapid-i.com/rapidforum/index.php/topic,554.0.html.
欢呼,
一个
谢谢你的提示。由于你的详细描述,我能够相对较快地找到bug。如果您从cvs中签出一个版本,它已经修复了。
问候,
塞巴斯蒂安。