机器学习初学者常犯的六大错误总结

在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易的事情。在最初的操作中,机器学习新手总会犯一些事后看来往往会觉得很傻的错误。所以,本文列举出了机器学习初学者所犯的6大错误。希望你可以从这些常见错误中学习,并创建更具鲁棒性的解决方案,从而带来真正的价值。

1.认为使用默认损失函数是理所当然的 均方误差很大!在刚开始的时候,这确实是一个令人惊讶的默认值。但是当它涉及到实际应用时,这个现成的损失函数对于你想要解决的商业问题来说是最优的。

以欺诈检测(fraud detection)为例。为了与商业目标保持一致,你真正想要的是对虚假的负面信息与成比例的由于欺诈造成的美元数额损失进行惩罚。使用均方误差可能会给你带来一个好的结果,但是永远不会给出最佳结果。

重点:始终构建一个与解决方案目标紧密匹配的自定义损失函数。

2.使用一种算法/方法来解决所有问题 许多人在完成他们的机器学习初学教程后,会立即开始使用他们在每个用例中学习到的相同的算法。因为他们认为它和其他算法一样有效。这是一个会导致糟糕结果的假设。

解决的办法是:让你的数据为你选择你的模型。在你对数据进行预处理之后,将其馈送到许多不同的模型中,并查看结果是什么。你会很好地知道哪些模型最有效,哪些模型不能很好地工作。

重点:如果你发现自己一次又一次地使用相同的算法,这可能意味着你没有得到最好的结果。

3.忽略异常值 根据不同的情况,异常值可以是重要的,也可以完全忽略。以收入预测为例。当收入大幅增长时,最好办法是观察这种现象,并了解为什么会发生这种情况。

对于由某种类型的错误引起的异常值,可以忽略它们,并从数据中删除。从模型的角度来看,有些模型对异常值比较敏感。以Adaboost为例,它将这些异常值视为困难的案例,并对异常值进行了巨大的权重处理,而决策树可能会简单地将每个异常值计算为一个错误分类。

重点:在开始工作之前,要仔细查看数据,并确定是否应该忽略异常值。

4.未正确处理周期性特征 一天中的几个小时,一周的天数,一年中的几个月,以及风向的变化都是周期性的特征。许多机器学习初学者不知道将这些特征转换成能够保存信息的形式,例如,23时和0时之间的距离是接近的。

以小时为例,处理这一问题的最佳方法是计算sin和cos组件,这样就可以将周期性特征(x、y)表示为一个圆的坐标。在以这种方式表示的时间中,23时和0时只是在数字上相邻,仅此而已。

重点:如果你遇到周期性特征,而且你没有转换它们,那么你就会开始给你的模型带来垃圾数据。

5.未标准化的L1/L2正则化 L1和L2正则化对大系数进行惩罚是使线性或逻辑回归正则化的常用方法;然而,许多机器学习初学者并没有意识到,在应用正则化之前,标准化功能是很重要的。

假设你有一个带有“交易金额”特征的线性回归模型。在没有正则化的情况下,如果交易金额是美元,那么合适的系数将比它们在美分时的系数大100倍。这将导致偏差,并倾向于对规模较小的特征进行惩罚。为了避免问题,标准化所有的特征,并将它们放在同等的基础上,这样正则化就会在你的所有特征上都是一样的。

重点:正则化是很好的,但是如果没有标准化的特性就会带来不必要的麻烦。

6.把线性或逻辑回归中解释系数的绝对值作为重点特征的依据 许多现成的线性回归模型对每个系数都有一个p值,许多机器学习初学者认为,对于线性模型来说,系数越大,特征就越重要。由于变量的大小改变了系数的绝对值,这几乎是不可能的。如果这些特征是共线性的,系数就可以从一个特征转移到另一个。数据集的特性越多,它的特征就越有可能是共线性的,而对于特征重要性的简单解释则越不可靠。

重点:了解什么是最重要的特征是很有必要的,但是不要假设你可以查看这些系数。

这个6个错误并不是全部,只是为了让你去思考可能隐藏在你的解决方案中的所有小问题。为了取得好的结果,重要的是要遵循过程,并且要反复检查你是否在犯一些常见的错误。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-12-26

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木东居士的专栏

【Andrew Ng 机器学习】Week 1(一):基本概念和线代基础

1532
来自专栏大数据挖掘DT机器学习

用交叉验证改善模型的预测表现(适用于Python和R)

原文作者: Sunil Ray 翻译:王鹏宇 我一直对数据界的编程马拉松(Hackathons)保持关注。通过对比排名榜初期和最终的结果, 我发现了一个有趣的现...

2896
来自专栏ATYUN订阅号

我的神经网络不工作了!我应该做什么? 详细解读神经网络的11种常见问题

“当你正在深入研究深度学习的下一个重大突破时,或许会遇到一个不幸的挫折:你的神经网络不起作用。你去找你的老板/主管,但他们也不知道如何去解决这个问题——他们和你...

2443
来自专栏TensorFlow从0到N

TensorFlow从1到2 - 2 - 消失的梯度

上一篇1 深度神经网络我们知道,通过追加隐藏层来构建更加“智能”的深度神经网络,并不奏效。 真正的问题不在“深度”本身,而是由梯度下降算法所指导的训练过程...

3856
来自专栏PPV课数据科学社区

如何选择Microsoft Azure机器学习算法

编者按:机器学习的算法很多,如何选择一直是初学者的一个痛点。本文给出了机器学习算法选择的方法和实例,不仅适用于Microsoft Azure框架,同样可以应用于...

3286
来自专栏https://www.cnblogs.com/L

【深度学习篇】--神经网络中的调优一,超参数调优和Early_Stopping

1、适当调整隐藏层数 对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比如对于复杂的问题我们可以在隐藏层上使用足够多的神经元就行了, 很长一段时间...

523
来自专栏机器学习算法全栈工程师

《机器学习》笔记-聚类(9)

1515
来自专栏ATYUN订阅号

OpenAI发布高度优化的GPU计算内核—块稀疏GPU内核

深度学习领域的模型架构和算法的发展在很大程度上受到GPU能否高效实现初等变换的限制。其中一个问题是缺乏GPU不能高效执行稀疏线性操作,我们现在正在发布高度优化的...

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

Machine Learning -- Bayesian network

链接地址:http://www.dataguru.cn/thread-508373-1-1.html 0 引言 事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的...

3576
来自专栏企鹅号快讯

机器学习初学者常犯的六大错误总结

AiTechYun 编辑:yining 在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易...

1778

扫描关注云+社区