机器学习菜鸟最常犯的5个错误,以及如何避免

简介:

 

◆ ◆ 

不要从理论开始 


传统的方法教机器学习是自下而上的——


step1:努力学习数学。


step2:努力学习机器学习理论。


step3:努力从头开始实现算法。


stepX???(等等等等,自行脑补。。。)


终于,开始使用机器学习(你的目标在此!


这条路漫长,艰难。

然而,这是为想要摘金夺银的学术界大神们设计的。

你,只想要一个结果的吃瓜群众,凑什么热闹!


陷阱

如果你有以下想法或者说法,你已不幸落井——


  • 我得先完成这门线性代数的课才行。

  • 我得回学校先读个博士学位。 

  • 我得先啃完这本教科书。


出路

耗费4年在数学或者深奥的算法上,能将你带到目标么?


更大的可能是然并卵。你停步不前。或者知难而退。反正离你的目标不会越来越近。


出路是——立正,稍息,向后转!


如果机器学习的价值在于准确的预测,那么要学的就是如何将问题模式化并做出准确的预测。就从这开始。


然后把这件事儿弄好,好得不要不要的!


在你需要的时候,去阅读、截取、武装理论知识,但仅限于为你的目标服务,仅限于这样做会使你传递出更大价值。


◆ ◆ 

不要去学所有机器学习 


机器学习浩瀚无边啊。


它是计算机的自动学习过程,与人工智能多有交集。


从机器人的深奥学习理论算起,这个领域真的很大。


大得你无法一一收入囊中。


如果你有下面的想法,你已不幸落井——


我得学会某个网页上提到的所有新技术。

我得学会计算机视觉,自然语言处理,语音处理,等。

首先。我得学会所有的所有。


出路

找个小旮旯,集中于此。


进一步缩小范围。


机器学习最有价值的部分是预测性建模。从数据创建模型进行预测。


从这里开始。


接下来,集中在某种与你最相关,或者你最感兴趣的模型。


然后死缠烂打。


也许你选择了某种技术,比如深度学习。也许你选择了某种问题,比如推荐系统。


也许你还没拿定主意,那么就选一个先。学好它。或者基本精通。


然后,转战到另一个领域。


◆ ◆ 

要在算法上虚度光阴  


机器学习确实关乎算法。


好多好多好多算法。

每个算法都是一个复杂的系统

是一个学习的小宇宙,有它自己的生态系统。


在算法的世界里你会迷路。所有人都会。


那些人叫做学术界。


陷阱

如果你有下面的说法,那么你已不幸落井——


  • 我得弄明白它怎么工作的,在我使用它之前。

  • 我得深入理解超参数先。

  • 我调参的时候得解释清楚因果关系。


出路

算法不是结果。它们是得到结果的方法。


实际上,机器学习算法只是一堆商品。换掉它们。试用几十个。拿一些出来调调参数。接着换。一个更好的结果会让你对算法更有感觉,但是要知道什么时候止步。系统化这个过程。设计调参实验,让它们自动执行和分析。


机器学习无外乎算法的正确应用。但是应用机器学习不只是在算法里虚度光阴。集中火力在每个项目要得到的结果,即一系列的预测,或者一个可以得到这些预测的模型。


 


◆ ◆ 

不要从头开始实一切   


从头开始实现算法,你可以学到很多。


有时候你甚至需要去实现一项技术

因为没有合适的,

或者找不到现成的实现方案。


但是,一般来说,你不必如此,你也不该如此。

你的实现可能糟透了。抱歉——


它可能有小错误。

它可能很慢。

它可能太占内存。

它可能处理不好边界情形。

它甚至可能压根儿就错了。


陷阱

如果有以下情形,不幸你已落井——


你在写代码导入CSV文件(到底怎么回事!)

你在写代码做一个标准的算法,比如线性回归

你在写代码做交叉验证或者超参数调节。


出路

停下来

使用一个通用的,已知是正确的,成千上万的程序猿都在用的库来处理边界情形。

使用一个高度优化的库,哪怕最后一个循环,最后一个字节都已经挤干净,最小限度占用内存。

使用图形化的用户界面,避免不必要的编程。

每次你想要用的时候都实现所有一切,对机器学习菜鸟而言,是一个非常慢的方法。


如果你想学习实现,那么,诚实一点,把它和学习利用应用机器学习来传递价值区分开来。


◆ ◆ 

不要总是换工具 


有很多非常伟大的机器学习工具。

实际上,伟大的工具,连同数据和高性能硬件,

是机器学习得以复兴的原因。

但是,当你遇到接踵而至的新工具时

你就掉进流连忘返的坑里了。


陷阱

如果你有如下情形,不幸你已落井——


使用你听说过的新工具。

发现你每周或每月都在学习新的工具或者语言。

学一个库,见新思迁,半途而废。


出路

学习和使用新工具。

但是要有策略。

把新工具整合到解决问题的系统过程里。

如果你选好一个主打平台并坚守不移,你会高效得多。至少坚持到你能擅长或者精通一个。


推荐3个平台:

· Weka Workbench

· Python Ecosystem

· R platform


你的领域内还会有其它的平台和专业工具,坚持到底是爱好者与专业人士的区别。

原文发布时间为:2016-10-11


本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
4月前
|
SQL IDE JavaScript
"揭秘高效代码Review秘籍:如何像侦探一样挖掘隐藏错误,提升团队编程实力,你不可错过的实战指南!"
【8月更文挑战第20天】代码Review是软件开发中提升代码质量与团队协作的关键环节。本文详细介绍高效代码Review流程:从明确范围与标准开始,到逐行审查与工具辅助,再到积极沟通与闭环管理,辅以示例确保清晰易懂。通过实践这些步骤,不仅能减少错误,还能促进知识共享,为构建高质量软件打下坚实基础。
84 2
|
4月前
|
JavaScript 前端开发 UED
探秘 JavaScript 错误背后的真相——揭开异常类型的神秘面纱,让你的代码从此无懈可击!
【8月更文挑战第23天】本文深入探讨了JavaScript中常见的异常类型,包括`ReferenceError`(未定义的引用)、`TypeError`(类型错误)、`SyntaxError`(语法错误)、`RangeError`(范围错误)、`EvalError`(评估错误)以及`URIError`(URI错误),并通过示例展示了如何有效地诊断与处理这些异常。此外,还介绍了如何自定义错误类以适应特定场景的需求。掌握这些异常处理技巧对于构建稳定可靠的Web应用程序至关重要。
44 0
|
6月前
|
存储 Java 程序员
【C++航海王:追寻罗杰的编程之路】异常——错误处理方式之一
【C++航海王:追寻罗杰的编程之路】异常——错误处理方式之一
41 0
|
7月前
|
算法 C语言
关于技术面试一些有用的经历
关于技术面试一些有用的经历
48 0
|
Java 编译器 Go
终于弄懂Go语言变量逃逸分析 新手不能错过这篇指南
终于弄懂Go语言变量逃逸分析 新手不能错过这篇指南
231 0
|
算法 Oracle Java
深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」
深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」
139 0
|
机器学习/深度学习 算法
机器学习--1. 疑惑及个人见解
最近一段时间,在学习机器学习,学习过程中遇到了一些疑惑,再次记录下来,一方面梳理自己的思路,另一方面给大家分享避免踩坑,欢迎argue。。。
277 0
|
Python 开发工具 git
独家 | 10个数据科学家常犯的编程错误(附解决方案)
本文为资深数据科学家常见的10个错误提供解决方案。
1416 0
|
机器学习/深度学习 Python 人工智能
教程 | 一文读懂自学机器学习的误区和陷阱(附学习资料)
本文为你指出一些自学的误区,推荐学习资料,提供客观可行的学习表并给出进阶学习的建议。
4863 0
|
机器学习/深度学习 算法 数据挖掘