ML笔记

ML笔记

注:本笔记是在观看了吴恩达老师的视频后写下的,也是本人的第一篇笔记。笔记如若有错误的地方,欢迎各位指正。

一、引言

1.什么是机器学习?

  • Arthur Samuel:在进行特定编程的情况下,给予计算机学习能力的领域。
  • Tom Mitchell:一个好的学习问题定义如下,他说,一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
  • 总结:经验E 就是程序上万次的自我练习的经验而任务T 就是下棋。性能度量值P呢,就是它在与一些新的对手比赛时,赢得比赛的概率。
  • 例题:我们假设您的电子邮件程序会观察收到的邮件是否被你标记为垃圾邮件。在这种Email客户端中,你点击“垃圾邮件”按钮,报告某些Email为垃圾邮件,不会影响别的邮件。基于被标记为垃圾的邮件,您的电子邮件程序能更好地学习如何过滤垃圾邮件。请问,在这个设定中,任务T是什么?
    • 分类邮件

2.主要的学习算法类型

  • 监督学习:Supervised Learning
  • 无监督学习:Unsupervised Learning

3.监督学习(Supervised Learning)

  • 监督学习指的就是我们给学习算法一个数据集。这个数据集由“正确答案”组成。在房价的例子中,我们给了一系列房子的数据,我们给定数据集中每个样本的正确价格,即它们实际的售价然后运用学习算法,算出更多的正确答案。

  • 算法的目的:给出更多的正确答案。

  • 回归问题:设法预测连续值的属性(预测连续的数值输出)。

  • 分类问题:设法预测一个离散值的输出(有时会出现两个以上的可能的输出值)。

  • 例题:

    1.房价例题:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。那基于这组数据,假如你有一个朋友,他有一套750平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱。
    在这里插入图片描述

    • 我们应用学习算法,可以在这组数据中画一条直线,或者换句话说,拟合一条直线,根据这条线我们可以推测出,这套房子可能卖15万美元。
    • 当然这不是唯一的算法。可能还有更好的,比如我们不用直线拟合这些数据,用二次方程去拟合可能效果会更好。
    • 根据二次方程的曲线,我们可以从这个点推测出,这套房子能卖接近。稍后我们将讨论如何选择学习算法,如何决定用直线还是二次方程来拟合。
    • 两个方案中有一个能让你朋友的房子出售得更合理。

    2.通过查看病历来推测乳腺癌良性与否:假如有人检测出乳腺肿瘤,恶性肿瘤有害并且十分危险,而良性的肿瘤危害就没那么大,所以人们显然会很在意这个问题。
    在这里插入图片描述

    • 这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出1和0表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为1,不是恶性,或者说良性记为0。
    • 我有5个良性肿瘤样本,在1的位置有5个恶性肿瘤样本。现在我们有一个朋友很不幸检查出乳腺肿瘤。假设说她的肿瘤大概这么大,那么机器学习的问题就在于,你能否估算出肿瘤是恶性的或是良性的概率。用术语来讲,这是一个分类问题。
    • 分类指的是,我们试着推测出离散的输出值:0或1良性或恶性,而事实上在分类问题中,输出可能不止两个值。比如说可能有三种乳腺癌,所以你希望预测离散输出0、1、2、3。0 代表良性,1 表示第1类乳腺癌,2表示第2类癌症,3表示第3类,但这也是分类问题。
    • 因为这几个离散的输出分别对应良性,第一类第二类或者第三类癌症,在分类问题中我们可以用另一种方式绘制这些数据点。
    • 现在我用不同的符号来表示这些数据。既然我们把肿瘤的尺寸看做区分恶性或良性的特征,那么我可以这么画,我用不同的符号来表示良性和恶性肿瘤。或者说是负样本和正样本现在我们不全部画X,良性的肿瘤改成用 O 表示,恶性的继续用 X 表示。来预测肿瘤的恶性与否。

4.无监督学习(Unsupervised Learning)

  • 无监督学习和监督学习的数据不同

    • 监督学习清楚的告知了什么是真确答案,即之前例子中的良性和恶性,如左图。

    • 无监督学习的数据看上去像是右图这样的,没有任何的标签或者是有相同的标签又或者是没有标签。

      在这里插入图片描述在这里插入图片描述

  • 对于给定的数据集(data set),无监督学习就能判断出数据有两个不同的聚集簇。无监督学习算法可以把这些数据分成两个不同的簇。所以叫做聚类算法。

  • 聚类算法的例子:

    1.谷歌新闻:谷歌新闻所做的就是每天取网络上收集成千上万条新闻,然后自动的将他们分簇,有关同一主题的新闻则被显示在一起。

    2.基因组学:下图是一个关于DNA微阵列数据的例子,其思想是给定一组不同的个体。对于每个个体,检测他们是否拥有某个特定的基因,也就是要检测特定基因的表达程度。这些颜色展示了不同个体拥有特定基因的程度,我们运行一个聚类算法把不同的个体归入不同的类或归为不同类型的人。

    在这里插入图片描述

  • 对于无监督学习,我们只告诉算法我们有一堆数据,我们不知道这些数据是用来干什么的,我需要你自动找出这些数据的结构。

  • 无监督学习或聚类算法应用的领域:组织大型的计算机集群、社交网络的分析、市场细分、天文数据分析(星系形成理论)。

  • 鸡尾酒会问题:假设现在是在个有些小的鸡尾酒宴中。我们放两个麦克风在房间中,因为这些麦克风在两个地方,离说话人的距离不同每个麦克风记录下不同的声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,或是被归结到一起。

    在这里插入图片描述

    而算法的作用就是从这份录音中分离出两个人说话的音频。而解决音频分离这个问题只需要一行代码:

    [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
    
  • 推荐使用Octave作为原型工具来实现算法,之后再移植到别的高级语言。

二、单变量线性回归

1.模型描述:我们学习的第一个算法是线性回归算法。

  • 我们以预测房价的例子开始

    • 我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。

      在这里插入图片描述

    • 比方说,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱。

    • 那么,我们可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。

    • 它被称作监督学习是因为对于每个数据来说,我们给出了“正确的答案”,即告诉我们:根据我们的数据来说,房子实际的价格是多少,而且,更具体来说,这是一个回归问题。

    • 回归一词指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,同时,还有另一种最常见的监督学习方式,叫做分类问题,当我们想要预测离散的输出值,例如,我们正在寻找癌症肿瘤,并想要确定肿瘤是良性的还是恶性的,这就是0/1离散输出的问题。

    • 更进一步来说,在监督学习中我们有一个数据集,这个数据集被称训练集。

  • 课程中的符号定义(以之前的房屋交易问题为例)

    回归问题的训练集如下图所示

    在这里插入图片描述

    m代表训练集中实例的数量

    x代表特征/输入变量

    y代表目标变量/输出变量

    (x,y)代表训练集中的实例

    (x(i),y(i))代表第i个观察实例

    h代表假设函数

    • i 指的是这个表中的第i行,不是x的 i 次幂,也不是y的i次幂
    • 监督学习算法的工作流程(下图):提供训练集—>给出学习算法的任务—>任务为输出一个函数h—>函数h通过输入变量输出相应房子的预测y值。

    流程

(持续更新。。。。。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值