2 机器学习算法

2.1 监督学习

首先给出一个例子来解释什么是监督学习,后面将给出更加正式的定义。假设你想预测房价(无比需要啊。。。。),某个学生从某地收集了数据集,其中一个数据集是这样的。横坐标是房子的面积(平方英尺为单位),纵坐标是房子的价格(单位千美元)。

假设你的朋友有个750平方米的房子,想要知道能够卖多少钱。学习算法怎么可以帮助你呢?一种方法是学习算法可以绘制一条直线,使这条直线尽可能的匹配到所有数据,从下图可以看出,可能能够买到15万刀(一平米两千刀,看来人家的房价也不低啊。。。。)。

直线可能并不是最好的方法,可能会有更好的,在房价预测的例子中,可能一个二元函数能够更好的匹配所有数据,即二次多项式更加符合数据集,如果你这样做,预测结果就应该是20万刀(我去,还让人活吗???)。后面会介绍怎么决定是选择线性函数还是二次函数来拟合数据。

监督学习意指给一个算法一个数据集,在这个数据集中正确的答案已经存在了(supervised learning refers to the fact that we gave the algorithm a data set in which the "right answers" were given.)。比如给定房价数据集,对于里面的每一个例子,算法都知道正确的房价,即这个房子实际卖出的价格,算法的结果就是计算出更多的正确的价格,比如你朋友想要卖出的那个房子的价格。

监督学习又叫做回归问题(应该是回归问题是监督学习问题的一种),意指要输出一个连续的值,例如房价,虽然一般将房价记到美分单位,所以实际上还是一个离散值,但是通常将它看作为实际数字,是一个连续值的数。

回归问题是对于连续性数据,从已有的数据分析中,来预测结果。

监督学习与回归问题

另一个监督学习的例子,根据医学记录来预测胸部肿瘤的恶性良性。现在有一个数据集,可以表示为下图所示,横轴表示肿瘤的大小,纵轴表示肿瘤的恶性(1)、良性(0)。现在有5个良性肿瘤与5个恶性肿瘤,不幸的是有个朋友得了肿瘤,但是不知道肿瘤是恶性还是良性,机器学习的问题是,你能否算出一个概率,即肿瘤为恶性或者良性的概率?。专业的说,这是一个分类的问题,分类问题是要预测一个离散的输出,这里是0或1,恶性或者良性。事实证明,在分类问题中会有超过两个的值,输出的值可能会超过两个,举个例子。胸部肿瘤可能有三种类型,所以要预测的离散值是0,1,2,3。0代表良性,1代表1号癌症,2代表2号癌症,以此类推。

监督学习与分类问题

在分类问题中,还有另一种作图方式来描述数据集,需要用到不同的符号集合来描述数据。如果肿瘤大小被作为唯一的属性来预测肿瘤的恶性良性,可以将图画成这样,使用不同的符号来表示恶性与良性,不再统一画叉叉,使用圈圈代表良性肿瘤,仍然使用叉叉代表恶性肿瘤,我所做的就是将上面的数据映射下来,再用不同的符号表示。

在这个例子中,只使用了一个属性来预测肿瘤的恶性与良性,在其他机器学习问题里,有着不只一个的特征和属性,例如现在病人的年龄和肿瘤大小都知道了,这种情况下,数据集表示如下图所示,病人的年龄和肿瘤大小已知,不同的病人会不一样,良性肿瘤使用圆圈表示,恶性肿瘤使用叉叉表示,假设有一个朋友得了肿瘤,肿瘤的大小以及朋友的年龄已知(在图中对应的点如图所示),那么依据这个数据集,学习算法画出一条直线,分开恶性肿瘤和良性肿瘤,这样就能判断你的朋友是恶性肿瘤还是良性肿瘤了。在这个例子中,总共有两个特征,肿瘤的大小以及患者的年龄。在别的机器学习问题中,经常会用到更多的特征,通常会用到这些特征,比如块的厚度,即胸部肿瘤的厚度,肿瘤细胞大小和形状的一致性等,这表明机器学习算法(我们讲学习到的),能够处理很多的特征,无论是3个,5个,还是更多,这里我们列举出了5个特征,但对于其他的ML(Machine Learning)问题,真正要用到的特征不只5个,要用到许多的特征以及属性,所以,你的学习算法要用到许多的属性、特征来进行预测,所以你如何处理无限多的特征呢???甚至你又如何存储无限多的东西到电脑里,又要避免内存溢出呢???事实上,当我们介绍支持向量机(SVM)算法时,就知道存在一个简单的数学方法来让电脑处理无限多的特征。

多个特征

总结,在这一节我们介绍了监督学习,监督学习可以被分为回归问题与分类问题。监督学习的基本思想是,对于数据集中的每个数据,都有相应的正确的答案,算法就是基于这些来进行预测,我们知道了输出应该是什么样子的。例如那个房价的问题和肿瘤的问题。我们也介绍了回归问题,即通过回归来预测一个连续值输出。我们还谈到了分类问题,它的目标是预测离散值输出。

下面是个小测验题目:假设你有一个公司,希望通过机器学习算法来解决两个问题,第一个问题是你有一堆货物清单,假设他们有几千件可卖,你想预测出你在未来三个月能够卖出多少货物?第二个问题是你有许多用户,你想写程序来检查每个用户的账户,判断这个账户是否被黑过?请判断这两个问题哪个是回归问题,哪个是分类问题?

答案:第一个问题是回归问题,因为输出值是连续值,第二个问题是分类问题,因为输出值是离散值。

这就是监督学习,在下一节,我们将介绍非监督学习。

2.2 无监督学习

在上一节中,我们已经讲解了监督学习,这一节我们将讲解非监督学习,回想上一节,数据集的数据被标记为正样本和负样本,即良性肿瘤和恶性肿瘤,所以对于监督学习中的我们已经被告知了什么是正确的答案,及肿瘤是恶性还是良性的。在无监督学习中,我们用到的数据会和监督学习里面的看起来有些不一样,在无监督学习中,没有属性或标签这一概念,也就是说所有的数据都是一样的,没有区别。在非监督学习中,我们被给与了一个数据集,但是没有人教我们怎么做,我们也不知道每个数据点表示什么,相反,他只告诉我们这里有一个数据集,你能够找到其中的某种结构吗???对于给定的数据集,非监督学习算法可能判定这个数据集有两个不同的聚类,你猜对了,非监督学习算法,会将数据集分成两个不同的聚类,如下图所示,这就是所谓的聚类算法,它被用在许多的地方。

非监督学习

举一个聚类的例子,google新闻的例子,谷歌新闻每天都在干些什么呢???他们每天会去收集网络上成千上万的新闻,然后将他们分组,组成一个个新闻专题,比如将所有油井事故相关的新闻放在一起。实际上聚类算法和无监督算法可以被用到许多其他的问题。这里在列举一个例子,关于基因的例子。

基本的思想是给定一组不同的个体以及各个个体所拥有的所有基因,机器学习算法能够做的是根据是否拥有某个特定的基因,将个体归类到各个不同的类别中,即将各个个体归为不同类型的人。红绿蓝展示了一个个体拥有某个基因的程度,你所能做的就是运行一个聚类算法,将不同的个体归入不同的类,这就是非监督学习。我们没有提前告知这个算法,这些是第一类人,这些是第二类人等等,相反,我们只是告诉算法,这里有一堆数据,但是不知道是什么东东,不知道里面有什么类型,然后你能找到其中的类型吗???然后根据得到的类型将个体分类,虽然我事先不知道有哪些类型。因为,对于这些算法,我们没有给定一个正确的答案,所以这就是无监督学习。

无监督学习还有其他许多的例子,如下图所示。

  1. 管理集群,找出哪些机器倾向于协同合作,将这些机器放在一起,可以大大提高集群工作的效率。
  2. 用于社交网络的分析,知道哪些朋友用email联系的多,你的facebook的朋友等,知道了这些之后,我们可以自动分析出哪些是十分要好的朋友组,哪些是互相认识的朋友组。
  3. 许多公司拥有大量的客户信息数据库,给你一个客户数据集,你能否自动找出不同的市场分割,将客户细分到不同的细分市场中,从而有助于在不同的细分市场中进行更加有效的营销,我们有这些客户数据,但是我们不知道有哪些细分市场,而且对于数据集的某个客户,我们预先也不知道他们属于哪个细分市场,我们必须让算法自己去数据中发现这一切。
  4. 无监督学习也被用于天文数据分析。

所有这些都是聚类算法的例子。聚类算法只是无监督学习的一种。

现在我们来介绍另一种无监督学习算法:

先来谈谈鸡尾酒会的问题。有一个宴会,有一屋子的人,大家都坐在一起,大家都在同时说话,许多的声音混合在一起,因为所有人都是在同时说话的,在这种情况下,你很难听清楚你面前的人说的话,因此,比如有这样一个场景,宴会上只有两个人,同时说话,我们准备好了麦克风,把它们放在房间里面,因为这两个话筒离这两个人的距离是不同的,每个麦克风都记录下了来自两个人的不同声音的组合,也许是A的声音在第一个麦克风里会响一点,也许B在第二个麦克风里会响一点,有一个机器学习算法可以将混合在一起的声音分离开来。

你可能会想,实现这个算法需要写很多的代码吧?实际上只需要语句代码就够了。

[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x')

我们使用Octave的编程环境,可以使我们更加快速的学习机器学习这么技术,不需要写很多的代码,许多的算法已经被封装到库中了。例如svd。

小练习。我们谈到了无监督学习,它是一种学习机制,我们给算法大量的数据,希望算法自动找出数据中的蕴含的类型结构,下面的四个算法中你认为哪个是无监督学习例子。

答案:第二个和第三个。

2 监督学习与非监督学习相关推荐

  1. 监督学习、非监督学习、强化学习都是什么?终于有人讲明白了

    01 术语整理 本节概述机器学习及其三个分类(监督学习.非监督学习和强化学习).首先,与机器学习相关的术语有人工智能(Artificial Intelligence,AI).机器学习(Machine ...

  2. 机器学习理论入门:第一章 监督学习与非监督学习介绍

    第一章 监督学习与非监督学习简介 一.机器学习基本概念 概念:研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有 的知识结构使之不断改善自身的性能 输入 基本概念 –特征向量: ...

  3. 监督学习与非监督学习

    原址 出于对ml的兴趣,最近开始了对ml的学习,正在跟着 coursera学习ml的基础知识,在这里做一个笔记.      监督学习和非监督学习是两个基础的概念,但个人感觉并不是很简单,总有些容易混淆 ...

  4. 监督学习与非监督学习之间的区别

    监督学习与非监督学习之间的区别 深度学习中会遇到常见的两个问题,一个是分类,一个是回归. 如果我们想要预测的值是一个离散的值,比如说物体识别,识别一个物体是猫还是狗,预测一张图片是美还是丑,还有手写数 ...

  5. 1 监督学习与非监督学习简介--机器学习基础理论入门

    1 监督学习与非监督学习简介–机器学习基础理论入门 1.1 机器学习基本概念 什么是机器学习 机器学习: 机器学习(machine learning,ML)是一门多领域交叉学科,设计概率论.统计学.逼 ...

  6. 监督学习,非监督学习与半监督学习

    监督学习,非监督学习与半监督学习 监督学习非监督学习与半监督学习 监督学习Supervised learning 非监督学习Unsupervised learning 半监督学习Semi-superv ...

  7. 机器学习(一)监督学习,非监督学习和强化学习

    根据机器学习的应用情况,我们又把机器学习分为三类:监督学习(SupervisedLearning, SL), 非监督学习(Unsupervised learning, UL),和强化学习(Reinfo ...

  8. 【机器学习与深度学习理论要点】05.监督学习,非监督学习概念及应用场景

    1)什么是监督学习.非监督学习 监督学习:使用已知正确答案的示例来训练网络.已知数据和其一一对应的标签,训练一个预测模型,将输入数据映射到标签的过程. 非监督学习:在非监督学习中,数据并不被特别标识, ...

  9. 机器学习的划分:监督学习、非监督学习、强化学习、进化学习

    监督学习(Supervised learning):提供带有正确结果的训练集,基于训练集,算法将归纳(generalization)出"如何正确的响应所有可能的输入".也称之为&q ...

  10. 机器学习、监督学习、非监督学习、强化学习、深度学习、迁移学习

    机器学习.监督学习.非监督学习.强化学习.深度学习.迁移学习 机器学习(machine learning) 监督学习(supervised learning) 非监督学习(unsupervised l ...

最新文章

  1. python测试脚本项目全程教程_《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)...
  2. mysql id in set_mysql数据库中find_in_set()和in()用法区别
  3. matlab常用函数——方程函数
  4. 译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)
  5. 【2018ACM山东省赛 - E】Sequence(树状数组,思维,优化)
  6. 微软P2V工具之Disk2VHD
  7. oracle中主键创建的语法,Oracle中主键、外键、索引、序列、唯一性约束的创建
  8. thinkpad bios联想logo_最强12吋ThinkPad,X201终极改造:8代酷睿+双内存+NVMe
  9. 从写博到出书:过程全记录
  10. 装修后怎样除甲醛最有效?
  11. 分享UG塑胶模具设计的分模方法,一起学起来
  12. 出国旅游也能用微信买单了
  13. 6U VPX NVME存储板 速度≥10GB/S 最大32TB
  14. python中怎么输入正斜杠,详解Python中的正斜杠与反斜杠
  15. 微信群机器人微云助手微小云微信群淘客助手如何设置好券直播淘宝联盟优惠券自动群发
  16. 细思极恐!使用 AI 控制你的浏览器
  17. java中 SSL认证和keystore使用
  18. 客客威客系统,任务发布接受网站
  19. 计算机科学与技术偏文还是偏理,韶关、惠州学院偏文还是偏理
  20. 咸鱼怎么翻身?非计算机专业26岁转行Java,坚持了三年终于年薪36W+

热门文章

  1. Android recyclerview嵌套多个EditText 请EditText输入上下联动示例
  2. 怎样做出漂亮的excel数据分析表格
  3. C#设计一个简单的计算器,实现两个数的加,减,乘,除,求幂等计算,运行效果如下图所示:
  4. 一张图了解“大数据,云计算,物联网”的关系
  5. (c语言数据结构)用顺序队列的方式实现输入12345,输出12345操作——期末数据结构程序设计
  6. pd虚拟机如何一键安装Windows懒人版
  7. 2020国产化,北斗导航产业将超4000亿,终端超10亿台
  8. HTML5期末大作业:甜品店网站设计——美食甜品店铺加盟企业(1页) HTML+CSS+JavaScript web期末作业设计网页_美食网页设计作业成品
  9. [篇五章一]_使用 UltraISO 软碟通工具烧录 Windows 10 USB 系统安装盘
  10. 电脑桌面云便签怎么更改便签内容字体?