Achieving low average tested error isn't good enough for a project.
昨天谈到大部分机器学习专案在产品化前都必须达成三个里程碑,而即使在测试集取得了很好的表现,要达成商业指标这最後一个里程碑时可能还会遇到一些困难,今天就来看看这些程咬金是什麽吧。
现实情况中,不是每个样本都一样重要,如果 ML 系统在少数重要程度高到不成比例的样本表现很差,即使它的平均测试误差很低,作为产品也是没有价值的。
以我们每天都在使用的搜寻引擎为例:
其中:
对於前两类查询只回传最相关的搜寻结果是可以忍受的,而对於导航性查询,因为使用者的意图非常明确,所以没有回传正确的结果就会造成使用者对产品失去信心。
可以想像如果我搜寻 Navigational queries 的三个网站时,回传的第一个连结都不是那些网站,我应该就不会再使用这个搜寻引擎了。
仅仅三次错误就让使用者放弃使用,这就是它们不成比例的重要性!
有些特徵并不能作为判定的标准,否则会使 ML 系统带有歧视性,这类特徵就称为 Protected attributes,而带有这些特徵的样本就是 关键子集。
例如在文章 医学院用AI面试,竟刷掉数百位优秀女性与少数族裔⋯⋯科技为什麽也会偏心? 提到伦敦的圣乔治医学院(St. George’s Hospital Medical School)使用电脑程序初步筛选申请者时,偏颇地拒绝了数百名学业成绩足以进入面试阶段的女性和少数族群,此时"性别"这个特徵就属於 Pretected attributes,而带有"女性"这个特徵的样本就属於关键子集。
或以贷款审核为例,就算平均测试准确度很高,若系统会以种族来判定是否通过贷款,作为产品,是绝对不可以被接受的!!
总的来说,为了保障系统的公正性,必须确保它在某些关键子集表现良好。
在分布高度不均匀的资料中,直接忽略罕见类别或对它们的准确度较低也是不能接受的,特别是在缺陷检测或医疗的应用上更是如此。
另外要注意,当资料集的分布极度不均匀时 (Skewed datasets) 准确度无法反映模型的真实表现,常见的解法如下:
改为检视混淆矩阵,计算 Precision & Recall:
基本的想法是看看 class A 被分成了 class B 的总次数,矩阵的每一行代表 actual class,每一列则是 predicted class,最完美的矩阵就是只有对角线有值,false positive 跟 false negative 皆为 0。
计算 F1 score:
计算 Precision 跟 Recall 的调和平均数 (Harmonic mean),不像一般平均值把每个值都视为一样重要,harmonic mean 会给小的值更高的权重,也就是说 F1 score 要高的话代表 Precision 和 Recall 同时都要很高。
所有指标的定义请见下图:
*图片来源:YC Chen — 如何辨别机器学习模型的好坏?秒懂Confusion Matrix
这两个方法不仅限於二元分类,也适用於有多个类别的情况,例如瑕疵检测时,全部的瑕疵加起来可能资料量还是很少。
以上就是今天的内容,知道一个良好的机器学习产品该达到甚麽标准之後,明天就让我们来谈谈启动 ML 产品专案的小诀窍以及最重要的第一步该怎麽踏出去吧。
楔子 收到 iT 邦铁人赛资讯时,正好是 Rson 新公司案子最忙、频繁加班的时候。还记三十几天前,...
延续昨天的进度,lidar装完以後就可以为SLAM做准备了。ROS用来做SLAM的package其实...
(想直接看题目的话可以移到最後一个标题!) 在准备回答问题前,先复习几个观念: Constructo...
如果想要控制网格项目的放置位置,就要知道怎麽定义项目放置的"行"与"列...
鬼故事 - 我是不是来过这里 Credit: 蜘蛛人 灵感来源:UCCU Hacker 故事开始 小...