斯坦福大学机器学习笔记——机器学习系统设计(误差分析、查全率和查准率、F1值)

本文讨论了机器学习系统设计,以垃圾邮件分类器为例,涉及特征选择、误差分析、学习曲线、查准率和查全率以及F1值。通过误差分析和学习曲线改进算法,解决偏斜类问题时采用查准率和查全率作为评价指标,利用F1值找到两者平衡。强调大量数据和合适特征对构建良好性能模型的重要性。
摘要由CSDN通过智能技术生成

这次博客我们主要讨论机器学习系统设计的主要问题,以及怎样巧妙的构建一个复杂的机器学习系统。
我们先用一个例子引入机器学习系统的设计:
以一个垃圾邮件分类器算法为例:
这里写图片描述
对于该问题,我们首先要做的是怎样选择并且表达特征向量x。我们可以选择100个词所构成的列表(这个词不仅包括垃圾邮件里面的词同时还包括非垃圾邮件里面的词,我们这里是手动选择的100个词,而在真正的算法中我们一般选择出现频率最高的10000~50000个词),这些词在邮件中出现标为1,不出现标为0,所以我们构建好了特征向量,尺寸为100*1。
例如上述我们选择的词包括:deal、buy、discount、andrew,now等词汇,则对于左图我们构建的特征向量为x=[1;1;0;0;1;…]。
上述构建算法的过程中,我们会有很多问题去考虑,比如:
1. 收集更多的数据,获取更多的垃圾邮件和非垃圾邮件;
2. 基于邮件的路径信息开发出更加复杂的特征;
3. 基于邮件的正文信息开发出更加复杂的特征;
4. 为探测可以的拼写错误开发成复杂的特征。
考虑了上述这些问题之后,我们仍然面对一个难题,那就是如何系统的从上述考虑的问题选择其中的一个或者多个,使得算法的性能得到提升,我们在下面会进行详细的讨论。

误差分析以及构建学习系统的一般方法:
误差分析我们在前面的博客中已经讲述过,它主要包括训练集误差、交叉验证集误差、测试集误差以及学习曲线等误差分析的方法。它可以衡量一个学习系统性能的好坏,同时促进你对该学习系统的改进。
我们设计机器学习系统的一般流程为:
1. 从一个简单的能快速实现的算法开始,实现该算法并用交叉验证集数据测试这个算法
2. 绘制学习曲线(可以通过分析训练集误差和交叉验证集误差,判断该算法处于过拟合阶段还是欠拟合阶段),决定是增加更多数据(过拟合阶段),或者添加更多特征(欠拟合阶段)
3. 进行误差分析:人工检查交叉验证集中我们算法中产生预测误差的实例,看看这些实例是否有某种系统化的趋势(比如某种词汇很容易错分等),确定了系统化的趋势之后,改进分类器(比如加入某些缺少的特征等)
我们简答解释一下为什么这样构建学习系统:
1.为什么从一些简单的能快速实现的算法开始?在我们设计机器学习系统时,刚开始确定使用哪些复杂的特征时很困难的,所以我们可以先采用一些简单的比较明显的特征构建系统;
2.为什么绘制学习曲线?从上面步骤构建的系统肯定性能不是很高(仅仅采用了一些比较明显的特征),我们可以绘制出学习曲线,判断上述构建的分类器是处于过拟合阶段还是欠拟合阶段,并针对所处的阶段进行相应的处理(过拟合阶段,收集更多的训练样本,欠拟合阶段,去补充更多特征);
3.为什么进行误差分析:通过上述构建的系统,分析一下误差产生的来源,对预测错误的实例进行分析,同时观察是否具有某些规律,然后对显示出来的规律进行进一步的改进,使得算法的性能进一步提高。
为了量化改进前后的性能的改变,我们可以使用交叉验证错误率来衡量,可以直观的帮助我们判断对算法进行修改前后性能的变化。

error=1mcv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值