不拽术语,如何通俗地讲解机器学习?
「 pythonic生物人 」👇系统分享数据科学干货,下划线点击直达👉: Python可视化 、 R可视化 、 Python精进 、 图解统计学 、 机器学习 等,一起来精进吧
机器学习人人都在谈论,但除了老师们知根知底外,只有很少的人能说清楚怎么回事。如果阅读网上关于机器学习的文章,你很可能会遇到两种情况:充斥各种定理的厚重学术三部曲(我搞定半个定理都够呛),或是关于人工智能、数据科学魔法以及未来工作的天花乱坠的故事。为什么我们想要机器去学习?
现在出场的是Billy,Billy想买辆车,他想算出每月要存多少钱才付得起。浏览了网上的几十个广告之后,他了解到新车价格在2万美元左右,用过1年的二手车价格是1.9万美元,2年车就是1.8万美元,依此类推。 作为聪明的分析师,Billy发现一种规律:车的价格取决于车龄,每增加1年价格下降1000美元,但不会低于10000美元。 用机器学习的术语来说,Billy发明了“回归”(regression)——基于已知的历史数据预测了一个数值(价格)。当人们试图估算eBay上一部二手iPhone的合理价格或是计算一场烧烤聚会需要准备多少肋排时,他们一直在用类似Billy的方法——每人200g? 500? 是的,如果能有一个简单的公式来解决世界上所有的问题就好了——尤其是对于烧烤派对来说——不幸的是,这是不可能的。 让我们回到买车的情形,现在的问题是,除了车龄外,它们还有不同的生产日期、数十种配件、技术条件、季节性需求波动……天知道还有哪些隐藏因素……普通人Billy没法在计算价格的时候把这些数据都考虑进去,换我也同样搞不定。 人们又懒又笨——我们需要机器人来帮他们做数学。因此,这里我们采用计算机的方法——给机器提供一些数据,让它找出所有和价格有关的潜在规律。 终~于~见效啦。最令人兴奋的是,相比于真人在头脑中仔细分析所有的依赖因素,机器处理起来要好得多。 就这样,机器学习诞生了。机器学习的3个组成部分
(1)数据
想检测垃圾邮件?获取垃圾信息的样本。想预测股票?找到历史价格信息。想找出用户偏好?分析他们在Facebook上的活动记录(不,Mark,停止收集数据~已经够了)。数据越多样化,结果越好。对于拼命运转的机器而言,至少也得几十万行数据才够吧。 获取数据有两种主要途径——手动或者自动。手动采集的数据混杂的错误少,但要耗费更多的时间——通常花费也更多。自动化的方法相对便宜,你可以搜集一切能找到的数据(但愿数据质量够好)。 一些像Google这样聪明的家伙利用自己的用户来为他们免费标注数据,还记得ReCaptcha(人机验证)强制你去“选择所有的路标”么?他们就是这样获取数据的,还是免费劳动!干得漂亮。如果我是他们,我会更频繁地展示这些验证图片,不过,等等……(2)特征
也可以称为“参数”或者“变量”,比如汽车行驶公里数、用户性别、股票价格、文档中的词频等。 换句话说,这些都是机器需要考虑的因素。 如果数据是以表格的形式存储,特征就对应着列名,这种情形比较简单。 但如果是100GB的猫的图片呢? 我们不能把每个像素都当做特征。 这就是为什么选择适当的特征通常比机器学习的其他步骤花更多时间的原因,特征选择也是误差的主要来源。 人性中的主观倾向,会让人去选择自己喜欢或者感觉“更重要”的特征——这是需要避免的。(3)算法
最显而易见的部分。 任何问题都可以用不同的方式解决。 你选择的方法会影响到最终模型的准确性、性能以及大小。 需要注意一点: 如果数据质量差,即使采用最好的算法也无济于事。 这被称为“垃圾进,垃圾出”(garbae in - garbage out,GIGO)。 所以,在把大量心思花到正确率之前,应该获取更多的数据。学习 V.S. 智能
我曾经在一些流行媒体网站上看到一篇题为“神经网络是否会取代机器学习?”的文章。这些媒体人总是莫名其妙地把线性回归这样的技术夸大为“人工智能”,就差称之为“天网”了。下图展示了几个容易混淆的概念之间的关系。- “人工智能” 是整个学科的名称,类似于“生物学”或“化学”。
- “ 机器学习 ”是“人工智能”的重要组成部分,但不是唯一的部分。
- “ 神经网络 ”是机器学习的一种分支方法,这种方法很受欢迎,不过机器学习大家庭下还有其他分支。
- “ 深度学习 ”是关于构建、训练和使用神经网络的一种现代方法。本质上来讲,它是一种新的架构。在当前实践中,没人会将深度学习和“普通网络”区分开来,使用它们时需要调用的库也相同。为了不让自己看起来像个傻瓜,你最好直接说具体网络类型,避免使用流行语。
一般原则是在同一水平上比较事物。
这就是为什么“神经网络将取代机器学习”听起来就像“车轮将取代汽车”。
亲爱的媒体们,这会折损一大截你们的声誉哦。
机器学习世界的版图
如果你懒得阅读大段文字,下面这张图有助于获得一些认识。Part 1:经典机器学习算法
经典机器学习算法源自1950年代的纯统计学。 统计学家们解决的是诸如寻找数字中的模式、估计数据点间的距离以及计算向量方向这样的形式数学(formal math)问题。今天,一半的互联网都在研究这些算法。当你看到一列“继续阅读”的文章,或者在某个偏僻的加油站发现自己的银行卡被锁定而无法使用时,很可能是其中的一个小家伙干的。 大型科技公司是神经网络的忠实拥趸。原因显而易见,对于这些大型企业而言,2%的准确率提升意味着增加20亿的收入。但是公司业务体量小时,就没那么重要了。我听说有团队花了1年时间来为他们的电商网站开发新的推荐算法,事后才发现网站上99%的流量都来自搜索引擎——他们搞出来的算法毫无用处,毕竟大部分用户甚至都不会打开主页。 尽管经典算法被广泛使用,其实原理很简单,你可以很容易地解释给一个蹒跚学步的孩子听。它们就像是基本的算术——我们每天都在用,甚至连想都不想。
1.1 有监督学习
经典机器学习通常分为两类:有监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)。 在“有监督学习”中,有一个“监督者”或者“老师”提供给机器所有的答案来辅助学习,比如图片中是猫还是狗。“老师”已经完成数据集的划分——标注“猫”或“狗”,机器就使用这些示例数据来学习,逐个学习区分猫或狗。 无监督学习就意味着机器在一堆动物图片中独自完成区分谁是谁的任务。数据没有事先标注,也没有“老师”,机器要自行找出所有可能的模式。后文再讨论这些。 很明显,有“老师”在场时,机器学的更快,因此现实生活中有监督学习更常用到。 有监督学习分为两类:- 分类(classification),预测一个对象所属的类别;
- 回归(regression),预测数轴上的一个特定点;
- 过滤垃圾邮件;
- 语言检测;
- 查找相似文档;
- 情感分析
- 识别手写字母或数字
- 欺诈侦测
- 朴素贝叶斯(Naive Bayes)
- 决策树(Decision Tree)
- Logistic回归(Logistic Regression)
- K近邻(K-Nearest Neighbours)
- 支持向量机(Support Vector Machine)
回归(Regression)
“画一条线穿过这些点,嗯~这就是机器学习”
- 股票价格预测
- 供应和销售量分析
- 医学诊断
- 计算时间序列相关性
- 线性回归(Linear Regression)
- 多项式回归(Polynomial Regression)
回归算法备受金融或者分析行业从业人员青睐。它甚至成了Excel的内置功能,整个过程十分顺畅——机器只是简单地尝试画出一条代表平均相关的线。不过,不同于一个拿着笔和白板的人,机器是通过计算每个点与线的平均间隔这样的数学精确度来完成的这件事。
1.2 无监督学习
无监督学习比有监督学习出现得稍晚——在上世纪90年代,这类算法用的相对较少,有时候仅仅是因为没得选才找上它们。 有标注的数据是很奢侈的。假设现在我要创建一个——比如说“公共汽车分类器”,那我是不是要亲自去街上拍上几百万张该死的公共汽车的照片,然后还得把这些图片一一标注出来?没门,这会花费我毕生时间,我在Steam上还有很多游戏没玩呢。 这种情况下还是要对资本主义抱一点希望,得益于社会众包机制,我们可以得到数百万便宜的劳动力和服务。比如Mechanical Turk[2],背后是一群随时准备为了获得0.05美元报酬来帮你完成任务的人。事情通常就是这么搞定的。 或者,你可以尝试使用无监督学习。但是印象中,我不记得有什么关于它的最佳实践。无监督学习通常用于探索性数据分析(exploratory data analysis),而不是作为主要的算法。那些拥有牛津大学学位且经过特殊训练的人给机器投喂了一大堆垃圾然后开始观察:有没有聚类呢?没有。可以看到一些联系吗?没有。好吧,接下来,你还是想从事数据科学工作的,对吧?聚类(Clustering)
“机器会选择最好的方式,基于一些未知的特征将事物区分开来。”
- 市场细分(顾客类型,忠诚度)
- 合并地图上邻近的点
- 图像压缩
- 分析和标注新的数据
- 检测异常行为
- K均值聚类
- Mean-Shift
- DBSCAN
“将特定的特征组装成更高级的特征 ”
- 推荐系统
- 漂亮的可视化
- 主题建模和查找相似文档
- 假图识别
- 风险管理
- 主成分分析(Principal Component Analysis ,PCA)
- 奇异值分解(Singular Value Decomposition ,SVD)
- 潜在狄里克雷特分配( Latent Dirichlet allocation, LDA)
- 潜在语义分析( Latent Semantic Analysis ,LSA, pLSA, GLSA),
- t-SNE (用于可视化)
推荐系统和协同过滤是另一个高频使用降维算法的领域。如果你用它从用户的评分中提炼信息,你就会得到一个很棒的系统来推荐电影、音乐、游戏或者你想要的任何东西。 这里推荐一本我最爱的书《集体编程智慧》(Programming Collective Intelligence),它曾是我大学时代的枕边书。 要完全理解这种机器上的抽象几乎不可能,但可以留心观察一些相关性:有些抽象概念和用户年龄相关——小孩子玩“我的世界”或者观看卡通节目更多,其他则可能和电影风格或者用户爱好有关。 仅仅基于用户评分这样的信息,机器就能找出这些高等级的概念,甚至不用去理解它们。干得漂亮,电脑先生。现在我们可以写一篇关于“为什么大胡子的伐木工喜欢我的小马驹”的论文了。
关联规则学习(Association rule learning)
“在订单流水中查找模式”- 预测销售和折扣
- 分析“一起购买”的商品
- 规划商品陈列
- 分析网页浏览模式
- Apriori
- Euclat
- FP-growth
原文:https://valyrics.vas3k.com/blog/machine_learning 来源:dataxon 译者:Ahong 侵删 -END- 「 pythonic生物人 」👇系统分享数据科学干货,下划线点击直达👉: Python可视化 、 R可视化 、 Python精进 、 图解统计学 、 机器学习 等,一起来精进吧