如何向小白介绍何谓机器学习和数据挖掘?买回芒果他就懂了

JasonZheng • 2013-01-07 22:18
 

买芒果

嘴馋的你想吃芒果了,于是你走到水果摊,挑了几个让老板过过秤,然后你再根据芒果的斤两付钱走人。

显然,买芒果你当然是挑着最甜、最熟的来买(因为你是根据重量而不是质量来掏钱的)。怎么个挑法才靠谱呢?

对了,你奶奶说过,金黄色的要比浅黄的更甜些。于是你就做了一个简单的规定:只挑金黄色的买,过磅、付钱、回家。就这么简单?

不尽然。

生活没那么简单

拎着芒果回到了家,尝了尝,你发现有些很对口味,有些则马马虎虎。显然,光凭你奶奶的智慧还是有所不足的。挑芒果不能只看颜色。

一番细品,再一番苦想之后,你得出了结论:那些大个儿的、金黄色的芒果一定是甜的,而那些小个儿的、金黄的就只有一半是甜的了。(比如,你买了100个黄灿灿的芒果,50个个头较大,50个个头一般,那么个头大的那50个就都是甜的,个头小的50个当中就平均只有25个是甜的了。)

你对自己的研究发现甚感满意,想着下次买芒果的时候能更靠谱些。终于你又来到了水果市场,发现你最常去的那个水果摊已经见不着踪影了。于是你就找了另一个摊档,而他们的芒果又产自不同的地方。你挠挠头,叹了口气:得了,“大个、金黄色的果子甜”的经验在这又不适用了,一切从头开始。尝了一遍后,你发现那些小个的、浅黄的芒果是当中最甜的。

你的表妹大老远的来看你,你决定给她整些美味的芒果尝尝。但她并不在乎果子甜不甜,而只关心是不是鲜嫩多汁。好吧,你又挠挠头,在果摊尝了一遍,发现越软的越多汁。

这次,你到了另一个国度。这儿的芒果味道与家乡的截然不同:绿色的竟然要比黄色的味道更棒。

你结了婚,发现她对芒果完全不感冒,而对苹果很是喜欢。这回,你又跑去买苹果去了。你又得学神农“遍尝百果”,摸索苹果的物理特征和味道之间都有怎样的联系——为了她,又有什么不可以的呢?满满的都是爱呀。

写段电脑程序来帮忙

为什么不用电脑程序来帮你挑芒果(或苹果)呢?你把规则写了出来:

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

这就是你挑芒果用到的规则了。把它发给你的弟弟,想必他也能帮你买到对你口味的芒果。

但问题在于,每回你在试验之后得出了观察结果,你都得把规则做一番修正。你还得明察秋毫地了解清楚都有那些因素在影响芒果的品质。如果问题复杂起来的话,你在上面耗费的心血甚至都有可能为你拿个“芒果科学”的PhD下来(如果有的话)。

但这样的大闲人还真的不多。

写个机器学习算法吧

机器学习算法是普通算法的进化版,它们让你的程序变得“更聪明”,能从你提供的数据里自动学到东西。

你在市场上随机选择了某个品种的芒果(training data),把每个芒果的物理特征都写进了一个表格——颜色、大小、形状、产地、所属果摊等(features),甜度、多汁程度、成熟度(output variables)也做了记录。你把这些数据都放进了一个机器学习算法(classification/regression),然后这个算法就会自动从芒果的物理特征和品质之间得出一个相关性模型。

等到下一回你到市场的时候,你把在售的芒果的特征信息都收集起来,再扔进你的机器学习算法,它就会利用之前计算出来的模型来预测哪些芒果是甜的、熟的、以及/或多汁的了。该算法可能会使用和你曾经手写的差不多的规则,也有可能使用的规则会更有相关性,不管怎样,在很大程度上你都不用操太多心了。

现在,算法在手,你就可以挺直身板去买芒果去了。更重要的是,你的算法还能继续演进(reinforcement learning),读取更多的训练数据,准确率也更高,每预测错误后再进行自我修正。更妙的是,你还能用同一个算法来训练不同的模型,预测预测苹果、橙子、香蕉、葡萄、樱桃、西瓜什么的。

机器学习:让你的算法聪明起来,这样你就可以少动脑了。:)

 
参考资料:
http://36kr.com/p/200601.html
http://www.cnblogs.com/pugang/p/3702341.html
 

【机器学习 & 数据挖掘 通俗介绍】的更多相关文章

  1. ITTC数据挖掘平台介绍(七)强化的数据库, 虚拟化,脚本编辑器

    一. 前言 好久没有更新博客了,最近一直在忙着找工作,目前差不多尘埃落定.特别期待而且准备的都很少能成功,反而是没怎么在意的最终反而能拿到,真是神一样的人生. 言归正传,一直以来,数据挖掘系统的数据类 ...

  2. 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...

  3. 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...

  4. Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

    原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...

  5. [resource-]Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱

    reference: http://www.52nlp.cn/python-%e7%bd%91%e9%a1%b5%e7%88%ac%e8%99%ab-%e6%96%87%e6%9c%ac%e5%a4% ...

  6. [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...

  7. 【Python】Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱

    本文转载自:https://www.cnblogs.com/colipso/p/4284510.html 好文 mark http://www.52nlp.cn/python-%E7%BD%91%E9 ...

  8. ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

    一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...

  9. 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)

    为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...

随机推荐

  1. camera摄像原理之三:色温和自动白平衡【转】

    转自:http://blog.csdn.net/ghostyu/article/details/7912863 色温的定义:将黑体从绝对零度开始加温,温度每升高一度称为1开氏度(用字母K表示),当温度 ...

  2. guake 3.4发布,支持切分窗口

    guake是一款下拉式终端,美观实用. 近日发布了3.4版本,在3.4版本中支持了切分窗口功能.如图所示,还是比较实用的一个功能. 目前ubuntu仓库中还未更新,需要使用pip安装,或者自行从源码编 ...

  3. 配置iptables,把80端口转到8080

    在Linux的下面部署了tomcat,为了安全我们使用非root用户进行启动,但是在域名绑定时无法直接访问80端口号.众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomca ...

  4. 如何在xcode中启用xib方式做应用

    使用storybord的好处和缺点这里不一一说,但是很多人可能习惯xib的方式进行应用的开发. 在xcode环境下可参考如下链接进行设定. http://codefromabove.com/2014/ ...

  5. Android系统是一个基于BInder通信的C/S架构

    Android系统基本上可以看作是一个基于Binder通信的C/S架构.他有服务器端和客户端.比如自己开发一个程序,肯定是基于Activity的而Activity就是作为客户端,他的服务器端就是Act ...

  6. centos 7 卸载自带的jdk

    # 查看jdk安装信息 rpm -qa|grep java 卸载已安装的jdk: # yum -y remove java java-1.7.0-*

  7. echarts地图自定义任意区域

    这里可以直接在地图上框选区域,右侧会自动生成geojson

  8. centeros7的redis-cli命令不生效解决方法(亲测)

    如果你已经安装了redis服务器,并且已经启动,但是redis-cli命令无法生效,分析,命令未加入环境变量.那就给redis命令加入环境变量中: 注意点:redis安装目录会有不同,注意下面的PAT ...

  9. RabbitMQ (七) 订阅者模式之主题模式 ( topic )

    主题模式和路由模式很像 路由模式是精确匹配 主题模式是模糊匹配 依然先通过管理后台添加一个交换机. 生产者 public class Producer { private const string E ...

  10. 小程序使用npm模块(引入第三方UI),报错的多种解决办法。

    前言引入第三方模块时,我遇到了很多坑. 首先是微信.第三方模块的文档描述不清楚.其次.搜索到的博客,大部分是抄的文档 / 相互转载抄袭.作用有限. 于是,我自己做了各种条件下的测试.解决各种情况的引入 ...