感谢您阅读我的帖子。
我已经阅读了之前关于为神经网络格式化/规范输入数据的一些帖子,但找不到专门解决我的查询的内容。我为帖子太长而道歉。
我正试图建立一个用于分析赛马数据的径向基函数网络。我意识到以前也这样做过,但我所掌握的数据是"特殊的",我对赛车/体育博彩/编程有着浓厚的兴趣,所以我想试一试!
虽然我认为我理解RBFN本身的原理,但我在理解输入数据的规范化/格式化/缩放以使其以"合理的方式"呈现给网络时遇到了一些困难,我不确定我应该如何制定输出目标值。
例如,在我的数据中,我看到了"等级变化",它将马现在参加的比赛等级与之前的比赛进行比较,其值可以在-5到+5之间。我预计我需要将这些值重新调整到-1和+1之间(对吧?!),但我注意到,与任何其他值相比,更多的跑步者的类更改为1、0或-1,所以我担心"过度表示"。不可能为更高/更低级别的更改收集更多数据,因为这只是"数据的来源"。缩放后最好按原样使用数据,还是应该修剪极值,或者其他什么?
同样,也有"连续"输入,比如"自上次跑步以来的天数"。它的值可以在1到1000之间,但在10-40范围内的值占主导地位。我本来打算将这些值缩放到0到1之间,但即使在缩放之前修剪最极端的值,我仍然会对某个范围有一个巨大的表示——这会给我带来问题吗?像这样的问题通常是如何处理的?
最后,我很难理解如何将培训的"目标"值呈现给网络。我现有的成绩数据有"输赢"(0或1?)和跑步者输赢的几率。如果我只使用"输赢",它会对所有的输赢一视同仁,而事实并非如此——我会很高兴有一个网络忽略了所有的小赢家,但从10-1投中获得了丰厚的利润。同样,网络在20比1的比赛中"输"是可以原谅的,但在2比5的比赛中输掉赌注将是一场严重的损失。我曾考虑过为赢家得出结果(+1*赔率),为输家得出结果(-1/赔率)来捕捉上述问题,但这意味着我的结果不是一个连续函数,因为空头赢家和空头输家之间会存在"不连续性"。
我应该有两个输出来覆盖这一点吗?一个用于下注/不下注,另一个用于"赌注"?
我对铺天盖地的问题和冗长的帖子感到抱歉,但这将真正帮助我走上正轨。
谢谢你给我的任何帮助!
问候,
Paul
RBFN附带的文档是回答其中一些问题的良好起点。修剪数据,也就是"箝位"或"winsorizing",是我用来处理类似数据的东西。例如,马的"自上次跑步以来的天数"可能从一天到几年不等,但往往集中在20到30天之间。一些专家使用63天的数字来表示"咒语",所以你可以有一个指标变量,比如">63=1 else 0"。一条线索是观察异常值,比如任何变量的上5%或下5%,并对其进行钳制。如果你在任何地方使用赔率/股息,请确保使用概率,即1/(赔率+1),一个有用的想法是将其归一化为100%。赔率或平价往往会淹没其他预测因素,因此一种技术是开发单独的模型,一种用于市场变量(市场模型),另一种用于非市场变量(通常称为"基本面"模型)。