入门机器学习(十一)--机器学习系统的设计

1. 误差分析(Error Analysis)

当研究机器学习时,最好的方法不是使用复杂的系统,而是用简单的算法,最快得到结果。即便运行不完美,但是也要运行一遍,最后通过交叉验证来验证数据。一旦做完,可以画出学习曲线,通过画出学习曲线,以验证检验误差来判断算法是否具有高偏差或者高方差的问题。在分析之后再决定使用更多的数据训练或者加入更多的特征变量。所以构建一个学习算法的推荐方法为:

① 从一个简单的能快速实现的算法,实现该算法并用交叉验证集数据测试这个算法;

② 绘制学习曲线,决定增加更多数据,或者添加更多特征,还是其他选择;

③ 进行误差分析:人工检查交叉验证集中我们算法中产生预测误差的实例,看看这些实例是否有某种系统化的趋势。

有以下几个Tips可以注意一下:

① 强烈推荐在交叉验证集上来实施误差分析,而不是在测试集上;

② 当研究一个新的机器学习问题时,推荐实现一个较为简单快速的算法,当有了初始的实现之后,他会变成一个非常有力的工具来帮助决定下一步的做法。可以先看看算法造成的错误,通过误差分析,来决定优化的方式。

2. 类偏斜的误差度量(Error Metrics for skewed Classes)

当我们遇到这样一种问题时:预测癌症是否为恶性,但是在训练集中,只有0.5%的实例是恶性肿瘤,假设我们编写一个算法,在所有的情况下都预测所有的肿瘤都是良性的,那么误差只有0.5%,然后我们通过训练而得到的神经网络的算法却有1%的误差,显然这时候误差的大小式不能视为评判算法效果的依据的。所以这种问题可以通过查准率(Precision)和查全率(Recall)来衡量类偏斜的误差。

先明白一下几个变量的意义:

① 正确肯定(True Positive, TP): 预测为真,实际为真

② 正确否定(True Negative, TN): 预测为假,实际为假

③ 错误肯定(False Positive, FP): 预测为真,实际为假

④ 错误否定(False Negative, FN): 预测为假,实际为真

查准率P=TP/(TP+FP),即在所有的预测为正例的样本中,真正是正例的比例。例如,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比。

查全率R=TP/(TP+FN),即在所有的正例中,预测正确的比例。例如,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤病人的百分比。

  

那么查准率和查全率怎么取舍呢,假设我们的算法输出结果在0到1之间,我们使用阈值为0.5来经预测真和加的判断。如果我们希望在非常确信的情况下预测为真(肿瘤为恶性),即我们希望更高的查准率,我们可以使用更大的阈值,比如0.7,这样做我们会减少错误预测病人为恶性肿瘤的情况,同时却会增加未能成功预测肿瘤为恶性的情况;如果我们希望提高查全率,尽可能让所有有可能是恶性肿瘤的病人都得到进一步的检查和诊断,我们应该使用比0.5更小的阈值,比如0.3.

在不同的阈值下,查全率和查准率的关系可以由一下图来表示:

有一个可以帮助选择阈值的方法,就是计算F1值(FI score),其计算公式为:

这样我们可以选择是F1更高的阈值,依次来权衡查全率和查准率之间的关系。

3. 关于机器学习中的数据(Data for Machine Learning)

① 关于机器学习系统的数据,不要盲目地开始,要花大量的时间来收集大量的数据,因为数据有时候是唯一能起到实际作用的。

② 关于数据量和机器学习算法性能之间的关系了,可以由下图表示出来:

该图表示的含义为,总体趋势上,数据量越大,算法(不管好的算法还是劣的算法)的性能越好。在数据量少的时候,好的算法的性能要优于劣的算法,但是随着数据量的增大,劣的算法的性能可能会赶超好的算法。

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃骨头的猫、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值