我试着搜索“未来”,结果找到了这个。这看起来更像现在的样子!未来就是现在。图片来自 Daniam Chou 在 Unsplash 提供
这哥们在谈论这些数量级(单位量级)。
你可以在这里了解更多关于Leopold Aschenbrenner的信息:https://situational-awareness.ai/leopold-aschenbrenner/
程序员看到 OOM 就会想到内存溢出(哎呀……)
经济学家也会提到 OOS(样本外)。
如果你还记得我们的建模经历,我们构建并开始微调NVDA的10天滚动预测模型,使用到2024年8月30日的数据。现在已经是11月1日了,我们可以获取这段时间的数据,然后就可以看看这段时间模型的预测效果了。
这个测试的新数据文件是:
https://github.com/diffent/excel/blob/main/NDVA_VGT_Oct31_2024.csv (链接指向 NDVA_VGT_Oct31_2024.csv 文件)
用于此测试的修改版 Python 脚本,
https://github.com/diffent/excel/blob/main/run10dayFCAST.py 这是GitHub上的一个Python脚本链接,用于运行为期10天的预测。
以下是截至10月30日(本测试的最新数据点)8月30日之后对脚本所做的除了小字说明声明修改以外的相关更改。从8月30日至10月30日共有42个交易日(按照我们的计算……如果您有不同的计算方式请指正),因此将回测次数设为42次。我们认为,使用模型构建后的时间数据进行回测,相当于不调整先前模型的前瞻预测。
看这里,那些笨拙地保留的循环(每个循环只迭代一次)用于最终的点评估。复制粘贴,稍作修改。
为了好玩起见,我们将使用我们在10天预报调整中找到的最优模型的设置,这些设置位于下面表格中的第一行。
回归中的数据点数量 = 30
窗口大小 = 150
变量剔除的 alpha 值 = 0.0003
零容差 = 0.004
我们使用上面这一行的设置来进行向前预测,来自先前文章的截图。
我们的代码会自动执行z容差扫描以获得最佳效果,但我们只能基于之前调整的数据来进行预测。因此我们不能使用最佳结果。所以我们找到了当时根据所选ztol调整到8月30日数据时的脚本输出:
{'ztol': 0.004,
'percCorrectZtol': 0.625 ,
'binomdistZtol': 0.9449 079174082726,
'nPointsInRegression': "回归中的点数" 30,
'momentWindowSize': "动量窗口大小" 150,
'alpha': 0.0003,
'meanR2Adj': "调整后的平均R平方" 0.6913618858638638,
'lower05R2Adj': "调整后的R平方下限" 0.1362725078507135,
'mid50R2Adj': "调整后的R平方中位数" 0.07443437229015215},
乍一看,还可以。方向性准确性为62.5%,统计显著性达到94.5%,这意味着在此次回测期间,大约只有5%的几率可以随机获得62.5%的准确率。
我们现在来看一下原始数据。右边是实际情况,左边是预测情况。顶部10行的实际情况缺失(因为这些预测我们还没有对应的真实数据,直到11月为止)。因此,我们只有32天的数据可以进行预测并进行比较。由于我们只有较短的时间跨度来进行估算,因此,二项分布估测准确率为94%(统计显著性估计),而实际正确率为62%,表现并不算太好。正如我们之前讨论的,由于估算的总天数较少,更容易随机获得较高准确率。
比较ztol 0.004,这里的ztol是指比较两个值之间的差异,阈值为0.004。
1.0894722371572343 0
1.0790902106274647 0
1.0774164515141413 0
1.0982014899687689 0
1.1230524480558304 0
1.1567886188481031 0
1.1904587052638975 0
1.2122286757917649 0
1.2218517421359858 0
1.2237608834114766 0
1.225996832633917 1.0266357206012384
1.2246964907601108 1.0733282674772042
1.1235041861277835 1.0177446222930402
1.1216935335107776 1.05
1.1087802121367383 1.0415399451079295
1.0993084829204185 1.052091971353185
1.0708585093715826 1.0805177214237343
0.8291374597204153 1.125195740682744
0.497932955786464 1.104707012487993
0.27481130230942163 1.1146113146113148
0.3471529635922781 1.1419436264198572
0.4358270202218446 1.124786324786325
0.5665838811487125 1.1369400527009226
0.6334385456350246 1.1103789126853378
0.6266040824687907 1.0868268300548212
0.9561707200514172 1.074002105092705
0.9339922963406706 1.0994456854471748
0.950025467906364 1.098572165835197
1.035298239815587 1.076896551724138
1.0446212916099689 1.0422499363705777
1.1755459281428524 1.0483373026373817
1.1097934073837765 1.0121982870490525
1.1475600982150274 1.0399040931666381
1.0170036556735285 1.0193115029387074
1.0126498921238436 1.0411280846063455
0.9691650662032543 1.0564536823197332
1.1572575756479675 1.1181313598519893
1.0919119276368576 1.091950784258477
1.089853652233277 1.1280754643586506
1.0913832239523922 1.0994310232254458
1.1296729034067265 1.0674136145372377
1.165741151720064 1.0702777777777779
也要注意右边的“实际情况”列:这一时期所有这些10天滚动回报的实际值都高于1.0。因此,从机器学习的角度来看,这些实际的数据集在这一时期是不平衡的。这对验证模型的健壮性不利。
所以,尽管我们有大约3个月的数据,但由于有10天的数据延迟期,可预测的数量减少了,以及数据分布不均衡,这种情况下模型的外推预测并不十分可靠。为了得到一个好的测试结果,我们还需要更多的数据。目前为止,模型看起来还可以,通过随意猜测来得到这种结果的概率只有5%。
随着我们将来收到更多真实数据,敬请期待更多离线(OOS)测试!此处的“OOS”指离线测试。
在数据来源方面有一点问题,我们最近研究的数据是从 nasdaq.com 获取的,因为我们的先前数据服务已经停业。但是,由于这些股票正在活跃交易,数据应该非常接近,如果不是精确到分的话,那就非常接近了。而且我们的模型不太精确,所以不需要担心分币的问题。
想来想去,A.I.测试中的OOS(样本外)检查好像有点欠缺。
也许这就是苹果的研究人员想要传达的一个意思。
如果人工智能能够从查询(样本内)复制现有的训练资料,这就像是一个很好的新数据查询和检索工具。这确实是技术上的一个值得称赞的进步……但未必算是真正的智能。当然,或许这就是所谓的智能?不过我们在这里就不深入讨论这个问题了。
更多关于此模型的离群样本测试,请参阅此 Medium 链接!
共同学习,写下你的评论
评论加载中...
作者其他优质文章