如同「决定系数篇」所介绍,R^2的数字越趋近於1,模型能够解释的能力越强,那麽我们就是追寻更好的R^2数字。
除了尝试挖掘更多派得上用场的参数,总结我们这段时间摸索下来,认为值得一提的两个经验,分作两篇说明。
首先考虑资料的偏颇,如果只收集单一一天客户的资料,会不会这一天购物状况刚好比较有起伏,其实距离平均值有点落差?
那麽多拉几天的时间分别收集可能有帮助,甚至可以的话,收集资料的时间拉得越长,应该越贴近平均状况。
另一方面,如果资料笔数太少,会不会对结果有显着影响呢?Vertex要求资料集至少需要有1000笔资料,但我们无法确认这1000笔资料是否足够。
第一次准备的资料笔数刚好1000笔整整,R^2是0.22。
第二次拉长抓取资料时间的周期,2000笔,R^2是0.2。
第三次藉由rolling window的方式增加资料量,凑到10000笔,R^2是0.21。
以上的结论是否代表,1000笔资料就已经足够了呢?其实不一定,R^2是一个糟糕的数字,会不会是已经太糟糕了,所以笔数多寡在这个模型的训练已经不是影响的关键,也许在R^2不错的时候,有可能有显着的影响也不一定。
重点是为了增加笔数,我们学会rolling window
的方法,这个方法十分实用,某一种程度可以不需担心资料笔数的问题,不过无法增加变异性更多的资料就是了。
所谓rolling window
,简单来说就是部分重叠地使用旧资料,加上部分新的资料,凑成新的资料。举例而言,有个阵列如下:
[1,2,3,4,5,6,7,8,9,10]
如果我们是两两取一组,间隔地取,只能拿到5组
[1,2]
[3,4]
[5,6]
[7,8]
[9,10]
但如说是重叠地取,可以取得更多资料,如下就有9组的资料
[1,2]
[2,3]
[3,4]
[4,5]
[5,6]
[6,7]
[7,8]
[8,9]
[9,10]
而在每个数字都代表着离散的资料,而且不破坏其次序,这样的使用方式合理。
顺便一提,在股票市场用的移动平均线
,就是使用rolling window
。
<<: DAY 17 制作 Nav Bar - Header
os.walk 找子目录下特定类型档案,鬼打墙好几天。也写了一两篇po上来,就当是"叠床架...
配置 Gitlab 环境 昨天我们使用 Terraform 创建好一个给 Gitlab 使用的 EC...
在专案过程中,透过 GitLab CI 建立流水线,让研发过程中如编译、测试、打包、部署等工作都得以...
虽然我们的网站终於整个都布署到云端上,而且功能都正常了,但是,我们的页面外观仍然是丑到不忍直视,虽然...
Gradle 可以做的事情实在太多了,导致初学者很容易被其强大又神秘的架构吓到。因此笔者觉得有必要把...