机器学习新手常犯的6大错误

机器学习中有很多构建产品或解决方案的方式,每种方式的假设情况都不一样。很多时候,如何找到合理的假设并不容易。机器学习初学者经常会犯一些事后觉得蠢爆了的错误。本文作者创建了一个机器学习新手工程师常犯的错误清单。希望大家可以从中学习,创建更鲁棒的解决方案。

理所当然地使用默认损失函数

在刚入门的时候,均方误差作为损失函数是很好的默认选择。但是当需要处理现实问题的时候,这种未经专门设计的损失函数很少能给出最优解。

拿欺诈检测为例。为了与你真正的商业目标一致,需要按照欺诈造成的损失美元金额的比例惩罚假负类。使用均方误差能给你一个还不错的结果,但不会是当前最佳的结果。

要点:每一次都自定义损失函数,使之紧密匹配你的目标。

对所有问题都使用一种算法/方法

很多人一旦完成了入门教程之后,就开始在所有的案例中都使用同一种算法。这很常见,他们觉得这种算法的效果和其它算法是一样的。这种假设是很糟糕的,最终会带来很差的结果。

解决办法是让数据为你选择模型。当你把数据预处理之后,将其馈送到多个不同的模型中去,看看结果如何。你将会了解哪些模型最适用,而哪些模型并不适合。

要点:如果你一直使用同一种算法,这可能意味着你的结果并不是最好的。

忽略异常值

异常值有时候很重要,有时候又可以忽略不计,视情况而定。以收入预测为例,有时候收入会突然出现很大的变动,观察这种现象并了解其原因是很有帮助的。有时候异常值由某种误差造成,那么这时可以放心地忽略它们,并将其从你的数据中删除。

从模型的角度来看,有些模型对异常值更加敏感。以 Adaboost 为例,它会将异常值当做重要的例子,并给予异常值极大的权重,而决策树可能只是简单的把异常值当做一个错误分类(false classification)。

要点:每一次开始工作之前,先仔细观察数据,决定异常值是否应该被忽略,如果无法决定,就更仔细地观察。

未正确处理周期特征

一天 24 小时、一周七天、一年 12 个月,以及风向都是周期特征。很多机器学习新手工程师不知道把这些特征转换成表示能够保存信息,如 23 时和 0 时很接近。

以小时为例,最佳处理方式是计算它的 sin 和 cos,这样你可以将该周期特征表示为一个圆的 (x,y) 坐标。在以这种方式表示的时间中,23 时和 0 时就是在数值上紧挨着的两个数,仅此而已。

要点:如果你在研究中遇到周期特征,但没有将其转换成表示,那你就是在给模型添加垃圾数据。

未经归一化的 L1/L2 正则化

L1 和 L2 正则化惩罚较大的系数,是一种对线性或 logistic 回归进行正则化的常用方式。但是,很多机器学习工程师没有意识到使用正则化之前对特征进行归一化的重要性。

假设你有一个线性回归模型,其中一个特征是「交易金额」。如果交易金额的单位是美元,那么它的系数应该是单位为美分的系数的 100 倍。这可能会引起偏差,使模型惩罚实际较小的特征。为了避免该问题,需要将这些特征进行归一化,这样正则化对于所有特征都是平等的。

要点:正则化很好用,但是如果你不把特征归一化,会出现很让人头疼的问题。

把线性回归或 logistic 回归的系数绝对值当作判断特征重要性的依据

很多现成的线性回归器为每个系数返回 p 值,一些机器学习新手工程师认为对于线性模型而言,系数的值越大,则该特征越重要。这并不准确,因为变量的大小会改变系数的绝对值。如果特征是共线的,则系数可以从一个特征转换到另一个特征。数据集的特征越多,特征是共线的可能性就越大,这种对特征重要性的简单解释的可信度就越低。

要点:了解哪些特征对结果的影响力最大非常重要,但是仅凭系数无法确定。

做一些项目并且获得好的结果,感觉就像赢了一百万!你努力工作,研究结果证明你做的不错,但是和任何行业一样,魔鬼总是隐藏在细节中,精密的图表也可能隐藏偏差和误差。本文列出的错误并不是全部,只是想刺激读者思考你的解决方案中可能隐藏哪些细微问题。要想获取好的结果,按照流程工作很重要,并且仔细检查确保不犯常见错误。

原文发布于微信公众号 - IT派(transfer_3255716726)

原文发表时间:2018-03-23

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

谷歌大脑:使用强化学习,从头生成神经网络架构(论文)

【新智元导读】深度学习的成功,使业内范式开始从特征设计转向架构设计。Google Brain 研究人员使用强化学习,从头开始生成神经网络架构。【论文地址:htt...

4326
来自专栏AI研习社

使用 Scikit-learn 理解随机森林

在我以前的一篇文章(https://blog.datadive.net/interpreting-random-forests/)中,我讨论了随机森林如何变成一...

1302
来自专栏鸿的学习笔记

Yoshua Bengio关于深度学习结构的综述

深度学习方法旨在学习特征层次,其具有由较低层特征的组合形成的较高层级的特征。在多个抽象级别自动学习特征允许系统去学习将输入直接从数据映射到输出的复杂函数,而不完...

651
来自专栏新智元

南开大学提出新物体分割评价指标,相比经典指标错误率降低 69.23%

---- 新智元专栏 作者:范登平(南开大学) 【新智元导读】南开大学媒体计算实验室等研究团队从人类视觉系统对场景结构非常敏感的角度出发,提出一种新颖、...

3298
来自专栏企鹅号快讯

伯克利人工智能研究:针对深度神经网络的物理对抗例子

AiTechYun 编辑:Yining ? 深度神经网络(DNNs)在各种应用领域都取得了巨大的进展,包括图像处理、文本分析和语音识别。深度神经网络也被作为许多...

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

八大深度学习最佳实践

翻译 | AI科技大本营 参与 | 刘畅 [AI 科技大本营导读]2017年,许多的人工智能算法得到了实践和应用。名博Hack Noon作者 Brian Muh...

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

最新论文解读 | 神经网络“剪枝”的两个方法

编译 | AI科技大本营 参与 | 刘 畅 编辑 | 明 明 【AI科技大本营导读】本文介绍了两篇自动学习神经网络架构方向的最新方法,他们主要是通过计算扔掉...

4265
来自专栏机器之心

观点 | AutoML、AutoKeras......这四个「Auto」的自动机器学习方法你分得清吗?

让我们先来看一个简短的童话故事… 从前,有一个魔法师,他使用一种无人再使用的编程语言,在一种无人再使用的框架下训练模型。一天,一位老人找到他,让他为一个神秘的...

1574
来自专栏机器之心

观点 | 机器学习新手工程师常犯的6大错误

选自Medium 机器之心编译 参与:刘晓坤、路雪 机器学习中有很多构建产品或解决方案的方式,每种方式的假设情况都不一样。很多时候,如何找到合理的假设并不容易...

34810
来自专栏机器之心

KDD 2018 | 腾讯提出用于文本匹配的多信道信息交叉模型,在真实任务中表现优异

4322

扫码关注云+社区

领取腾讯云代金券