机器学习实践中应避免的七种常见错误

摘要:在机器学习领域,每个给定的建模问题都存在几十种解法,本文作者认为,模型算法的假设并不一定适用于手头的数据;在追求模型最佳性能时,重要的是选择适合数据集(尤其是“大数据”)的模型算法。

1. 想当然地使用默认损失函数

很多从业者喜欢用默认的损失函数(比如平方误差)来训练和选择最优模型。事实上,默认的损失函数很少能满足我们的业务需求。

拿诈骗检测来说。当我们检测诈骗交易时,我们的业务需求是尽量减少诈骗带来的损失。然而现有二元分类器默认的损失函数对误报和漏报的危害一视同仁。对于我们的业务需求,损失函数不仅对漏报的惩罚要超过误报,对漏报的惩罚程度也要和诈骗金额成比例。

而且,诈骗检测的训练数据集往往正负样本极度不均衡。在这种情况下,损失函数就要偏向于照顾稀少类(如通过升/降采样等)。

2.用普通线性模型处理非线性问题

当需要构建一个二元分类器时,很多人马上就想到用逻辑回归,因为它很简单。但是,他们忘记了逻辑回归是线性模型,非线性因素的交叉特征需要靠手工编码处理。回到刚才诈骗检测的例子,要获得好的模型效果,就需要引入“帐单地址=送货地址 && 交易金额<$ 50”之类的高阶交叉特征。因此,在处理包含交叉特征的问题上我们应该尽可能选择非线性模a型,比如有核函数的SVM,或者基于树的分类器。

3、忽视异常值

异常值很有意思。根据上下文情况,它们要么需要被特别处理,要么应该被完全忽略。就拿收入预测来说。如果观察到收入有异常尖峰,我们可能要加倍注意他们,并分析是什么原因造成这些峰值。

但如果异常值是由于机械误差、测量误差或者其它任何非普遍化因素导致的,那我们最好在准备训练数据之前过滤掉这些异常值。

有些模型算法对异常值非常灵敏。比如,AdaBoost 会对它们“倍加关注”,赋予一个相当大的权重值。相反,决策树就简单地把它们当做错误分类来处理。如果数据集包含相当数量的异常值,那么,使用一种具有异常值鲁棒性的建模算法或直接过滤掉异常值是非常重要的。

4、样本数远小于特征数时使用高方差模型

SVM是最流行的建模算法之一,它的强大功能之一就在于用不同核函数去拟合模型。SVM内核被认为是可以自发组合现有特征,从而形成更高维度特征空间的方法。由于获得这项强大功能的代价几乎忽略不计,大多数人在训练SVM模型时默认使用核函数。然而,当训练样本数远远少于特征维度时(n<<p)—— 常见于医学数据——高维特征空间数据过拟合风险会随之增加。事实上,在上述情况下我们应该完全避免使用高方差模型。

5、不做标准化的L1/L2正则化

使用L1或L2正则化是线性回归或逻辑回归惩罚权重系数值过大的常用方法。然而,许多人在使用这些正则化方法时都没有意识到标准化的重要性。

再回到诈骗检测,设想一个把交易金额作为特征的线性回归模型。如果不做正则化,当交易金额以美元为单位时,其拟合系数将会是以美分为单位时的100倍。同时,因为L1/L2正则化对系数值大的项惩罚更重,美元作为单位时交易金额这个维度将会受到更多的惩罚。因此,正则化并不是一视同仁,它往往在更小尺度上惩罚特征。为了缓解这一问题,需要在预处理过程中标准化所有特征,使它们处在平等的位置。

6、不考虑线性相关就使用线性模型

假设构建一个含有X1和X2两个变量的线性模型,真实的模型是Y = X1 + X2。理想情况下,如果数据仅含有少量噪点,线性回归模型能够还原真实模型。然而,如果X1和X2存在线性相关,对于大多数优化算法而言,无论Y = 2 X1 , Y = 3 X1-X2 还是 Y = 100 X1-99 X2效果都一样好。尽管这个问题没有造成我们预测的偏差,看上去它似乎并无大碍。但是,它使问题变得病态了,因为系数权重无法得到解释。

7、线性模型或者逻辑回归模型系数的绝对值解释为特征重要性

因为很多现成的线性回归方法返回每个系数的p值,很多人就认为系数的绝对值越大,对应的特征就发挥更大作用。事实并非如此,因为一方面缩放变量就会改变系数绝对值,另一方面如果特征是线性相关的,其系数可以从一维特征转移到另一维特征。此外,数据集包含的特征维度越多,特征之间就越有可能线性相关,用系数解释特征重要性就越不靠谱。

以上就是机器学习实践操作中的7个常见错误。这个列表并不完整,它只是激发读者去思考,模型算法的假设并不一定适用于手头的数据。在追求模型最佳性能时,重要的是选择适合数据的模型算法,而不是你最熟悉的那个。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

从0到1,这篇深度学习综述送给你!

1237
来自专栏技术小站

吴恩达深度学习笔记 course4 week2 深度卷积网络 实例探究

这周会讲一些典型的cnn模型,通过学习这些,我们能够对于cnn加深自己的理解,并且在实际的应用中有可能应用到这些,或从中获取灵感

571
来自专栏机器之心

学界 | 清华大学NIPS 2017 Spotlight论文:通过在单纯形上软门限投影的加速随机贪心坐标下降

机器之心报道 作者:宋朝兵 不同于以 SCI 期刊作为评价标志的其它学科,计算机学科由于成果更新迅速而倾向于通过会议优先发表成果,因此计算机学科各方向的顶级会...

35713
来自专栏小詹同学

深入浅出谈谈深度学习~

深度学习第①篇(文末附大量资料) ? 一、深度学习的起源与概念 深度学习的概念由Hinton等人于2006年提出。深度学习可以简单理解为传统神经网络的拓展。如下...

3316
来自专栏数据派THU

从起源到具体算法,这篇深度学习综述论文送给你

来源:机器之心 本文为大家从最基础的角度来为大家解读什么是深度学习,以及深度学习的一些前沿发展。 自 2012 年多伦多大学 Alex Krizhevsky ...

3574
来自专栏人工智能头条

机器学习实践中应避免的七种常见错误

1354
来自专栏AI科技评论

干货 | 自从学了这个方法,深度学习再也不愁没钱买数据集了

深度学习大牛吴恩达曾经说过:做AI研究就像造宇宙飞船,除了充足的燃料之外,强劲的引擎也是必不可少的。假如燃料不足,则飞船就无法进入预定轨道。而引擎不够强劲,飞船...

2826
来自专栏AI科技大本营的专栏

李飞飞团队最新论文:如何对图像中的实体精准“配对”?

编译 | 费棋 【导语】近日,李飞飞的斯坦福大学视觉实验室发布了一篇即将在 CVPR 2018上要介绍的论文 Referring Relationships(指...

3308
来自专栏人工智能

技术词条 机器学习篇

机器学习(Machine Learning) ? 解释讲述人工智能领域内的专业词汇和算法,是AI君在2018年最先要做的事情,我们第一个要讲的就是大名鼎鼎的“机...

2275
来自专栏专知

【前沿】FAIR何恺明等人与UC伯克利最新论文提出分割利器(Learning to Segment Every Thing)

【导读】Facebook FAIR实验室与UC伯克利大学合作提出《Learning to Segment Every Thing》在ICCV 2017 最佳论文...

2957

扫描关注云+社区