在数据领域,很多人都在说机器学习,但是只有很少的人能说清楚怎么回事 。网上关于机器学习的文章,大多都是充斥各种定理的厚重学术三部曲(我搞定半个定理都够呛),或是关于人工智能、数据科学魔法以及未来工作的天花乱坠的故事 。
尽管数据分析实际工作中用到机器学习的机会真的不多,但我觉得它仍是数分从业者所需的技能之一,所以今天这篇文章,主要对那些想了解机器学习的人做一个简单的介绍 。不涉及高级原理,只用简单的语言来谈现实世界的问题和实际的解决方案 。不管你是一名程序员还是管理者,都能看懂 。
怎么理解啥叫机器学习这里讲一个故事:Billy想买辆车,他想算出每月要存多少钱才付得起 。浏览了网上的几十个广告之后,他了解到新车价格在2万美元左右,用过1年的二手车价格是1.9万美元,2年车就是1.8万美元,依此类推 。
作为聪明的分析师,Billy发现一种规律:车的价格取决于车龄,每增加1年价格下降1000美元,但不会低于10000美元 。
用机器学习的术语来说,Billy发明了“回归”(regression)——基于已知的历史数据预测了一个数值(价格) 。当人们试图估算eBay上一部二手iphone的合理价格或是计算一场烧烤聚会需要准备多少肋排时,他们一直在用类似Billy的方法——每人200g? 500?
大家都希望能有一个简单的公式来解决世界上所有的问题,但是显然这是不可能的 。
让我们回到买车的情形,现在的问题是,除了车龄外,它们还有不同的生产日期、数十种配件、技术条件、季节性需求波动……天知道还有哪些隐藏因素……普通人Billy没法在计算价格的时候把这些数据都考虑进去,换我也同样搞不定 。
我们需要机器人来帮他们做数学 。因此,这里我们采用计算机的方法——给机器提供一些数据,让它找出所有和价格有关的潜在规律,相比于真人在头脑中仔细分析所有的依赖因素,机器处理起来要好得多,就这样,机器学习诞生了 。
机器学习的3个组成部分

文章插图
抛开所有和人工智能(AI)有关的扯淡成分,机器学习唯一的目标是基于输入的数据来预测结果,就这样 。所有的机器学习任务都可以用这种方式来表示,否则从一开始它就不是个机器学习问题 。
样本越是多样化,越容易找到相关联的模式以及预测出结果 。因此,我们需要3个部分来训练机器:
数据想检测垃圾邮件?获取垃圾信息的样本 。想预测股票?找到历史价格信息 。想找出用户偏好?分析他们在Facebook上的活动记录(不,Mark,停止收集数据~已经够了) 。数据越多样化,结果越好 。对于拼命运转的机器而言,至少也得几十万行数据才够吧 。
获取数据有两种主要途径——手动或者自动 。手动采集的数据混杂的错误少,但要耗费更多的时间——通常花费也更多 。自动化的方法相对便宜,你可以搜集一切能找到的数据(但愿数据质量够好) 。
一些像google这样聪明的家伙利用自己的用户来为他们免费标注数据,还记得ReCaptcha(人机验证)强制你去“选择所有的路标”么?他们就是这样获取数据的,还是免费劳动!干得漂亮 。如果我是他们,我会更频繁地展示这些验证图片,不过,等等……

文章插图
好的数据集真的很难获取,它们是如此重要,以至于有的公司甚至可能开放自己的算法,但很少公布数据集 。
特征也可以称为“参数”或者“变量”,比如汽车行驶公里数、用户性别、股票价格、文档中的词频等 。换句话说,这些都是机器需要考虑的因素 。
如果数据是以表格的形式存储,特征就对应着列名,这种情形比较简单 。但如果是100GB的猫的图片呢?我们不能把每个像素都当做特征 。这就是为什么选择适当的特征通常比机器学习的其他步骤花更多时间的原因,特征选择也是误差的主要来源 。人性中的主观倾向,会让人去选择自己喜欢或者感觉“更重要”的特征——这是需要避免的 。
算法最显而易见的部分 。任何问题都可以用不同的方式解决 。你选择的方法会影响到最终模型的准确性、性能以及大小 。需要注意一点:如果数据质量差,即使采用最好的算法也无济于事 。这被称为“垃圾进,垃圾出”(garbae in - garbage out,GIGO) 。所以,在把大量心思花到正确率之前,应该获取更多的数据 。
推荐阅读
- 建盏挑选技巧,天目茶盏和建盏是个概念吗
- 在30分钟内创建你的深度学习服务器
- 民以食为天用餐礼为先 食礼的概念和内容
- 饿了么推荐算法演进及在线学习实践
- 原生AOP的实现以及shior框架授权,图文并茂,收藏学习
- 深度学习框架 CatBoost 介绍
- 怎么学习太极拳 太极拳零基础的学习方法
- 织造云锦必须使用什么机器 云锦可以机器制造吗
- 粉彩|像翡翠学习,就算不被人发现自身的价值,也要积极磨练自己的品质
- 每种机器学习算法都可以表示为神经网络
