定义:
废话不说,先上图
Paste_Image.png如果有一群数据集,中间为比较合适的拟合曲线。左端为欠拟合,右端为过拟合。
机器学习,学习人类的认知去区分各个事物。输入的经验用数据维度作为特征值。
如果需要解释什么是过拟合或者欠拟合,我想到的是白马非马的故事。
故事是这样说的
《公孙龙》一则
“白马非马”,可乎?曰:“可。”曰“何哉?”曰:“马者,所以命形也;白者,所以命色也。命色者非命形也。故曰:‘白马非马’。”曰:“有白马不可谓无马也。不可谓无马者,非马也?有白马为有马,白之,非马何也?”曰:“求马,黄、黑马皆可致;求白马,黄、黑马不可致。使白马乃马也,是所求一也。所求一者,白者不异马也。所求不异,如黄、黑马有可有不可,何也?可与不可,其相非明。故黄、黑马一也,而可以应有马,而不可以应有白马,是白马之非马,审矣!”
这是一段有名的诡辩,问公孙龙“白马不是马,可以这么说么?” ,公孙龙说:“可以啊,马只是讲的一个外形,白,又是一个颜色。颜色和外形怎么能相提并论,所以白马不是马。” 继续问“有白马不能说是没有马,不能因为他的颜色是白的,就说你没有马。” 答:“若想要匹马,黄马,黑马都可以算;但是想要匹白马,黄马黑马却不能算数,如果白马算马,那么你就等于说黄马和黑马不是马,前后不一,所以,白马非马。”
白马,黄马,黑马 都含有马的特征,但由于颜色特征不同,所以又可以相互区别。
利用数学中的集合论可以轻松地解决个问题,并清楚地看到这个辩论的要点在哪里。
马做为一个集合,定义为A。白马属于马这个集合中的一部分,是元素B。
这里用到集合论中的两种符号,一种符号是”∈“,表示元素属于某个集合的一部分。另外一个是最出名的“=≠”,表示两集合相等或不等。所以有以下的结论:
1、B∈A
2、B ≠A
翻译成语言就是:
1、B属于A(成立) => B是A(成立) => “白马是马”(当然成立)。
2、B不等于A(成立) => B非A(成立) => “白马非马”(当然成立)。
过拟合就如同将白马作为马的训练集,同时将颜色白色,作为重要的数据特征提取出来,作为判断马的依据。当模型完全按照白马的特征学习训练完毕后,同时又错误的将其作为马的特征模型进行判断,黄马,黑马在这个模型下,就出现的了重大偏离,极有可能判断不是马。
欠拟合,就是另外一个角度,假如我要判断白马的分类,我将马的模型对各种马进行判断,虽然满足一些特征,但是重要特征的判断没有抓住,所以结果欠拟合。
性能度量:
欠拟合比较容易克服,例如在决策树学习中扩展分支,在神经网络学习中增加训练轮数等,而过拟合很麻烦,过拟合是机器学习面临的关键障碍,各类学习算法必然带有一些针对过拟合的措施;然而必须意识到,过拟合是无法彻底避免的,我们所能做的只是“缓解”,或者减小其风险。
要评估学习期f的性能,就要把学习器预测结果f(x)与真实标记y进行比较。
回归任务最常用的性能度量就是“均方误差”,
Paste_Image.png错误率,分类错误的样本数占样本总数的比例。而精度则定义为1-错误率。
假定以下场景
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生. 现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.
前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类。accuracy需要得到的是此君分正确的人占总人数的比例。很容易,我们可以得到:他把其中70(20女+50男)人判定正确了,而总人数是100人,所以它的accuracy就是70 %(70 / 100).
错误率和精度虽常用,但并不能满足所有任务的需求,以西瓜问题为例,假定瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜做判别,显然,错误率衡量了有多少比例的西瓜被错误判定,但真正关心的是“挑出的西瓜有多少比例是好瓜?” 或者“所有好瓜有多少比例被挑了出来”, 那么错误率显然就不够用了。
再如男生女生的场景,
按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为"正类",而男生为"负类".
相关(Relevant),正类 | 无关(NonRelevant),负类 |
---|---|
被检索到(Retrieved)true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生") | false positives(FP 负类判定为正类,"存伪",例子中就是分明是男生却判断为女生) |
未被检索到(Not Retrieved)false negatives(FN 正类判定为负类,"去真",例子中就是,分明是女生,却判断为男生) | true negatives(TN 负类判定为负类,也就是一个男生被判断为男生) |
通过这张表,我们可以很容易得到这几个值: TP=20 FP=30 FN=0 TN=50
因此,
查准率= TP/(TP+FP) = 20/(20+30)=40%
挑出来的人里面有40%是女生,是准确的
查全率=TP/(TP+FN)=20/(20+0) = 100%
100%的女生都被挑了出来。
一般情况,查准率和查全率是一对矛盾的度量,查准率高,查全率往往偏低,查全率高,查准率往往偏低。老蒋当时对待共产党,宁可错杀一万,也不放过一个,就是典型的查全率高,但是查准率低的例子。
评估方法
为了让性能指标更好一点,要么是实际数据集并不好取得,要么是想用少量数据先进行一下测试。
常用方法:
1.留出法
S和T 互斥,且S和T组合成D,但需注意的是,训练和测试集的划分要尽量保持数据分布的一致性,防止因数据划分过程中引入额外的偏差而对最终结果产生影响。
- 交叉验证法
将数据集D划分成k个大小相似的互斥子集,每次用k-1个子集作为训练集,余下的子集做测试集,最终返回k个训练结果的平均值。交叉验证法评估结果的稳定性好保真性很大程度上取决于k的取值。
网友评论