转载地址 : 通过身边小事解释机器学习是什么

一个给不知道机器学习是什么东西的人讲的一个挺不错的例子,方法。

今天从quora上看了一个问题:如何给不是CS的学生,给不知道机器学习和数据挖掘的学生,讲明白什么是机器学习和数据挖掘。

其中有个答案很不错,拿买芒果的例子来给大家解释。老师们也应该多用用类似的一些例子,启发下学生的思考。

===

买芒果

有一天,你想吃芒果了,你就到地边的小摊上去买芒果,小摊上有好多芒果啊,你可以自己用手挑芒果。跳完之后,摊主会给你称称,多少斤?根据重量来付钱。

买芒果嘛,你只要不是重口味或者口味独特,还是选择最甜的,熟透了的芒果。因为你是根据重量来付钱的,又不是根据甜的程度或者熟了的程度,虽然摊主有时候会把好的芒果挑出一堆来单独涨价,但是这里这个摊主没这么做。

你奶奶曾经告诉你说,买芒果要买金黄色的,黄橙橙黄灿灿的,这样的最甜,不要买那些浅黄色的,那些还没熟。

好吧,这样你就有了一点经验,虽然这点经验是别人直接教给你的:买芒果,就买金黄色的。你在小摊上,挑了些金黄色的,过磅付钱,回家。这事就这么完了?别急,下文。

生活没那么简单

你回家,高高兴兴吃芒果,但是你发现,并不是每个芒果都那么甜,有部分不甜啊。唉,老奶奶的经验还是不足啊,虽然吃的盐比我走的路多,但是只通过颜色判断芒果甜不甜,不是很靠谱。

你回忆回忆看看到底什么样子的芒果甜?好像是又大又金黄色的比较甜,那些小点的金黄色的芒果,得有一半是不甜的。(买了100个金黄色的芒果,有50个大的,都是甜的;另外有50个小的,其中有25个是不甜的。)

嗯,你总算总结出来一条经验规则了:大的金黄色的是最甜的,哈哈。你又高高兴兴的去买芒果。Shit,你熟悉的、你信得过的那个摊主走了。所以你得 换一个小摊买芒果了,但是新的摊主的芒果是产自不同的地方,你之前总结的经验可能不行了,你不知道能不能迁移过去(transfer learning),于是你从头再开始尝试吧,发现这里小的,浅黄色的是最甜的!

一天,你表妹来找你玩,想吃芒果,但是她不在乎甜不甜,她喜欢吃多汁的。唉,以前的经验又不顶用了。你只能进行新的一轮实验,目标就是多汁的芒果(优化目标变了)。你又总结出,越软的越多汁。

你出国了读PhD,这里的芒果跟你家乡的差不太大了,这里绿色的最好吃。PhD毕业后,你结婚了,老婆不喜欢吃芒果,喜欢吃苹果。你积累的丰富的挑 选芒果的经验规则都不行了,或许有些你可以transfer过去。你不得不从头再开始一轮一轮的实验尝试,看看苹果的一些特征跟好吃不好吃的关系如何?虽 然这个过程很枯燥,但是你去做了,因为你爱她。

规则列表

你想把如何挑选芒果(苹果)的这些东西用程序实现出来,这样在电脑上,甚至用你的手机扫描一下,就能自动挑选出很多好吃的芒果。因为你积累了一些规则,可以这么实现:

if (color is bright yellow and size is big and sold by favorite vendor): mango is sweet.
if (soft): mango is juicy.
etc.

但是你想啊,这些规则越来越多的话,特征之间的组合啥的就越来越麻烦了,管理、使用都很麻烦。包括写程序实现啊,谁会笨到写这么多If Then。

机器学习

机器学习算法是普通算法的进化,更加聪明和自动。看如何把选芒果的问题定义成标准的机器学习问题吧。

随机的选择了一个市场上的芒果,作为要研究的目标(training data)。你可以用一个表格描述芒果属性和类型的关系,每一行可以放一个芒果的数据,包括芒果的物理属性(feature):颜色、大小、形状、软硬度、产地,等等,还有这么芒果的类型(output variables):甜度、成熟度、多汁度。然后这就是一个多分类问题,或者回归问题,自动的从数据中学习出特征与芒果类型的各种关系等。

如果你用决策树算法,那么这个模型的样子就是你的规则库了;当然你可以使用其他模型,例如线性模型,这样就是特征的线性组合了。

下次你去市场,采集了一个芒果的各个指标特征,扔进你的模型,模型告诉你这个芒果是什么类型的?熟的?多汁的?

各种方法

甚至你的选择芒果的模型,稍微变化下就可以选择苹果了,迁移学习。

甚至你的模型会随着新的样本、新芒果种类进来后,变的越来越好,增量学习。

。。。。。

有点知道机器学习什么事了么?

转载于:https://www.cnblogs.com/BaiYiShaoNian/p/4557763.html

【转】通过身边小事解释机器学习是什么?相关推荐

  1. 通过身边小事解释机器学习是什么?

    一个给不知道机器学习是什么东西的人讲的一个挺不错的例子,方法. 今天从 quora 上看了一个问题:如何给不是 CS 的学生,给不知道机器学习和数据挖掘的学生,讲明白什么是机器学习和数据挖掘. 其中有 ...

  2. 终于有人把“可解释机器学习”讲明白了

    1 为什么需要解释 机器学习模型的可解释性(Interpretability)最近说得越来越多,这也是个有趣的话题.可解释性不是个新概念,很多书在介绍机器学习模型时,都会顺带提一笔这款模型的可解释性如 ...

  3. 可解释机器学习发展和常见方法!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 来源:新智元,编辑:数据派THU 本文约2000字,建议阅读5分钟 本文 ...

  4. 用XGBoost入门可解释机器学习!

    Datawhale干货 来源:Scott Lundberg,来源:数据派THU 本文长度为4300字,建议阅读8分钟 本文为大家介绍用XGBoost解释机器学习. 这是一个故事,关于错误地解释机器学习 ...

  5. 一文读懂可解释机器学习简史,让你的模型再也不是“Black Box”

    来源丨新智元 编辑丨极市平台 近年来,可解释机器学习(IML) 的相关研究蓬勃发展.尽管这个领域才刚刚起步,但是它在回归建模和基于规则的机器学习方面的相关工作却始于20世纪60年代.最近,arXiv上 ...

  6. 独家 | 在R中使用LIME解释机器学习模型

    作者:PURVAHUILGOL 翻译:陈丹 校对:欧阳锦 本文约3200字,建议阅读15分钟 本文为大家介绍如何在R中使用LIME来解释机器学习模型,并提供了相关代码. 关键词:机器学习模型解释.R语 ...

  7. 独家 | 用XGBoost入门可解释机器学习

    作者:Scott Lundberg 翻译:和中华 校对:张一然 本文长度为4300字,建议阅读8分钟 本文为大家介绍用XGBoost解释机器学习. 这是一个故事,关于错误地解释机器学习模型的危险以及正 ...

  8. 报名 | AI Time:“ 论道自动机器学习与可解释机器学习”

    深度学习在各个领域取得了骄人的成绩,基本是舍我其谁了.之前还存在如何调参.如何选架构的问题,最近随着自动机器学习(AutoML)的快速发展,Neural architecture search(NAS ...

  9. 干货|全面介绍微软开源可解释机器学习框架InterpretML

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 转自:机器之心 起初,机器于黑暗之中学习,为解释它们,数据科学家于虚空之中挣扎. 然后, ...

最新文章

  1. TBtools - 超过一万人在使用的生信小工具
  2. 爱了爱了!0.052 秒打开 100GB 数据,这个Python开源库火爆了!
  3. windows 系统nginx做反向代理实例
  4. Asp.net web Api源码分析-HttpParameterBinding
  5. rhel系统启动过程_Linux系统启动过程分析
  6. poj 1847 Tram 最短路 dijkstra、floyed
  7. java编写龟兔赛跑_java--龟兔赛跑模拟
  8. 深度学习中激活函数的优缺点
  9. 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景...
  10. ST、SC、FC、LC光纤接头区别
  11. 一个例子搞懂单纯形法大M法和两阶段法
  12. 做个聪明人,迅速提高你智商的22条途径
  13. python代码写龙卷风_python – 带有龙卷风的ZODB
  14. 3D游戏编程与设计作业六
  15. sku这样设置不仅降低退款投诉还可以提升转化
  16. 微信小程序学习(三):在微信开发者工具中,使用WeUI前端美化框架,微信小程序
  17. 实验matlab滤波器心得,数字滤波器实验总结
  18. 这几行最简单的代码 ,却改变了世界
  19. uniapp中H5网页和打包app分别生成二维码
  20. 计算机教室是使用计划书,教师个人计算机学习计划书_老师计算机学习计划范文...

热门文章

  1. 数据结构期末复习之选择排序
  2. 神经网络瘦身:SqueezeNet
  3. 理解SSD多盒-实时目标检测
  4. Hybrid A*论文解析(1)
  5. 自动驾驶路径规划论文解析(4)
  6. oracle复杂的子查询,Oracle 子查询(复杂select语句)
  7. Android SDK中tools详解
  8. list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II
  9. 064_将 Linux 系统中 UID 大于等于 1000 的普通用户都删除
  10. Linux下如何查看哪些进程占用的CPU内存资源最多