R^2 决定系数 | ML#Day22

到目前为止,我们靠着不断尝试和Vertex的帮助之下,顺利地走完一个周期。

了解概论 -> 命题 -> 准备资料 -> 训练模型 -> 部署 -> 应用(预测)

那麽接下来,回到一个大家都很注重的问题:如何让模型变得更好。

在这之前必须要先了模型训练完之後,拿到的评估函数意义。

而这其中,最直观的就是R^2,也就是决定系数

这个系数的数值介於0~1之间,在说明模型是否有效,以及其模型解释能力的大小。

基本上这个值需要0.6以上才派得上用场,不过0.6只是个大概的范围,事实上跟过我们做的模型应用於哪一种科学比较有关系,例如社会科学、农业科学、医学科学等等,不同领域的应用希望最低的R^2会有所不同,可能需要0.7或0.8以上也不一定。

然而我们尚属於实验性质的阶段,其实心里大概抓有个0.6就谢天谢地。

数值越接近1表示越好,因为模型越能解释资料,相反越趋近於0,表示越差,因为能够解释的东不多。

可以粗糙的这麽想,0.5表示模型可以解释50%的资料,假设我们模型是

y=aX1+bX2+cX3

但是实际上有某些参数,我们可能是未知并没有挑进来处理到,因此实际上应该要长这样子。

y=aX1+bX2+cX3 + 未知

如果刚好遇到未知 所占比较不显着的时候,y的数值基本上可以由aX1+bX2+cX3决定出来,这个机会大致占了50%。

请注意,这不是很精准的描述,只是个希望能让更多人理解的概念。

所谓的未知 可能也不只有一种参数而已,其实可能是这样: 未知参数1 + 未知参数2 + 未知参数3 + ...... + 随机误差

换句话说,能够找到更多的未知(关键)参数,模型的解释能力就越强。

既然关键是怎麽找出更多有效的参数,也反应了为什麽 资料的好坏 占了如此的重要性。


到此我们整理一下模型的优化有哪些关键:

1. 主要函式:

选用组成模型的主要函式是否洽当,例如是用「线性回归」还是「复回归」组成模型的基底结果是不一样的,回归可套用的方程序其实有好几种,幸运的是Vertex自己会去找出一个适当的函式来训练模型,我们不用烦恼,当然我们也不知道Vertex最後挑选的结果。

2. 合适的系数:

每个参数前面的系数到底是多少比较洽当,靠着不断的训练(数学运算)而得出,结果并不一定是最精准或正确的数值,但一定是相对适合的数字。

3. 未知的参数:

如果挑进错误的参数,训练的过程中自然会筛选掉(显着程度),所以多挑参数进来训练,对於有自动化的套件或框架,或像Vertex这种自动处理的服务,是小事一件,多花费一点效能而已,参数的数量是多多益善,多挑到一个关键的参数都是赚,因为未知 之所以未知 ,就是因为我们无法掌控那部份的情况,如果能够多减少一部分的未知 ,是不是相对的已知部分会变多,那麽模型的解释能力就会更好。

4. 其他:

由於自己并非资料科学的专业人士,无法把所有可以考虑的面向总结地全部列出来,但知道还有其他方式可以作为优化的参考,例如了解资料的分布,做一些数值上的转换等等(transformation),这个部分就请有兴趣的人自行钻研了。


最後值得一提的是,R^2虽然越接近1越好,但实际上若R^2=1或大於0.95以上不见得一定是好事,可能不小心把某些几乎是答案的参数纳入进来,这等於没有意义,因此要回头过来重新检视资料的组成。


<<:  Day21输出(JavaScript)

>>:  [Day 19] 2D 批次渲染 (一)

DAY28-EXCEL统计分析:回归分析介绍

回归分析 回归分析的主要目的是为了探讨一个或多个自变数和一个因变数间的关系,利用方程序来解释资料或预...

【在厨房想30天的演算法】Day 06 资料结构:连结串列 Linked List

Aloha!又是我少女人妻 Uerica ,今天中秋节大家吃肉了吗!传说中后羿的狗狗偷吃了嫦娥吃剩的...

【Day 29】Custom post type,让你海量的文章也能分类起来

当你制作了海量文章,你应该会发现一个问题,就是这些文章很难简单地找出来,极为不方便於你,进行打理。你...

实习是进入职场前的探索

现在不管是学校课程规划或是同学主动想要了解职场,对於实习其实是一个可以看清自己的能力跟业界之间的差距...

追求JS小姊姊系列 Day4 -- 我知道很怪,但你不好奇字串姐变身会怎样吗(下)

前情提要 倒在路边的我,醒来发现人早已不见,只好回家过节。 (时间来到了,回到家中的午餐後) **我...