我们借用吴老师的两个例子来讲解监督学习:
1,回归问题:
前阵子,一个学生从北京的研究所收集了一些房价的数据。你把这些数据画 出来,看起来是这个样子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是 千美元。那基于这组数据,假如你有一个朋友,他有一套 750
平方英尺房子,现在他希望把 房子卖掉,他想知道这房子能卖多少钱。
那么关于这个问题,机器学习算法将会怎么帮助你呢?
![](https://i-blog.csdnimg.cn/blog_migrate/2a85387107e343e27e34e6707e6f57e0.png)
可以看出,监督学习指的就是我们给学习算法一个数据集。这个数据集由
“
正确答案
”
组成。
然后计算机会根据我认为的“正确答案”,继续预测,得到更多的答案。
回归这个词的意思是,我们在试着推测出这一系列连续值属性。
2,分类问题:
假设说你想通过查看 病历来推测乳腺癌良性与否,假如有人检测出乳腺肿瘤,恶性肿瘤有害并且十分危险,而良性的肿瘤危害就没那么大,所以人们显然会很在意这个问题。
![](https://i-blog.csdnimg.cn/blog_migrate/46c2e6f734070026ceb6ede4dbf219e7.png)
让我们来看一组数据:这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出
1
和
0
表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为1
,不是恶性,或者说良性记为 0
。
我有
5
个良性肿瘤样本,在
1
的位置有
5
个恶性肿瘤样本。现在我们有一个朋友很不幸检查出乳腺肿瘤。假设说她的肿瘤大概这么大,那么机器学习的问题就在于,你能否估算出肿瘤是恶性的或是良性的概率。
分类指的是,我们试着推测出离散的输出值:
0
或
1
良性或恶性,而事实上在分类问题中,输出可能不止两个值。比如说可能有三种乳腺癌,所以你希望预测离散输出 0
、
1
、
2
、 3。
0
代表良性,
1
表示第
1
类乳腺癌,
2
表示第
2
类癌症,
3
表示第
3
类,但这也是分类问题。
在其它一些机器学习问题中,可能会遇到不止一种特征。举个例子,我们不仅知道肿瘤的尺寸,还知道对应患者的年龄。在其他机器学习问题中,我们通常有更多的特征,我朋友研究这个问题时,通常采用这些特征,比如肿块密度,肿瘤细胞尺寸的一致性和形状的一致性等等,还有一些其他的特征。这就是我们即将学到最有趣的学习算法之一。
![](https://i-blog.csdnimg.cn/blog_migrate/d48aeeb455a87393d977e13fed7fc1e0.png)
上图中,我列举了总共
5
种不同的特征,坐标轴上的两种和右边的
3
种,但是在一些学 习问题中,你希望不只用 3
种或
5
种特征。相反,你想用无限多种特征,好让你的算法可以 利用大量的特征,或者说线索来做推测。那你怎么处理无限多个特征,甚至怎么存储这些特征都存在问题,你电脑的内存肯定不够用。我们以后会讲一个算法,叫支持向量机,里面有
一个巧妙的数学技巧,能让计算机处理无限多个特征。
想象一下,我没有写下这两种和右边的三种特征,而是在一个无限长的列表里面,一直写一直写不停的写,写下无限多个特征,事实上,我们能用算法来处理它们
监督学习的基本思想是,我们数据集中的每个样本都有相应的“
正确答案
”
。再根据这些样本作出预测。
其实我认为,在回归问题和分类问题的判断中,我们需要做的就是了解连续值和离散值的区别。这样我们就能很好的分辨这两类问题了。
![](https://i-blog.csdnimg.cn/blog_migrate/6d19afce56fea32aaff7add616a96ad0.png)
监督学习中需要注意的问题:
1、偏置方差权衡
第一个问题就是偏置和方差之间的权衡。假设我们有几种不同的,但同样好的演算数据集。一种学习算法是基于一个未知数的输入,在经过这些数据集的计算时,系统会无误的预测到并将正确的未知数输出。一个学习算法在不同的演算集演算时如果预测到不同的输出值会对特定的输入有较高的方差。一个预测误差学习分类器是与学习算法中的偏差和方差有关的。一般来说,偏差和方差之间有一个权衡。较低的学习算法偏差必须“灵活”,这样就可以很好的匹配数据。但如果学习算法过于灵活,它将匹配每个不同的训练数据集,因此有很高的方差。许多监督学习方法的一个关键方面是他们能够调整这个偏差和方差之间的权衡(通过提供一个偏见/方差参数,用户可以调整)。
2、功能的复杂性和数量的训练数据
第二个问题是训练数据可相对于“真正的”功能(分类或回归函数)的复杂度的量。如果真正的功能是简单的,则一个“不灵活的”学习算法具有高偏压和低的方差将能够从一个小数据量的学习。但是,如果真功能是非常复杂的(例如,因为它涉及在许多不同的输入要素的复杂的相互作用,并且行为与在输入空间的不同部分),则该函数将只从一个非常大的数量的训练数据,并使用可学习“灵活”的学习算法具有低偏置和高方差。因此,良好的学习算法来自动调整的基础上可用的数据量和该函数的明显的复杂性要学习的偏压/方差权衡。
3、输入空间的维数
第三个问题是输入空间的维数。如果输入特征向量具有非常高的维数,学习问题是很困难的,即使真函数仅依赖于一个小数目的那些特征。这是因为许多“额外”的尺寸可混淆的学习算法,并使其具有高方差。因此,高的输入维数通常需要调整分类器具有低方差和高偏置。在实践中,如果工程师能够从输入数据手动删除不相关的特征,这是有可能改善该学习功能的准确性。此外,还有许多算法的特征选择,设法确定相关特征,并丢弃不相关的。这是维数降低,其目的是将输入数据映射到较低维空间中运行的监督学习算法之前的更一般的策略的一个实例。
4、噪声中的输出值
第四个问题是在所需要的输出值(监控目标变量)的噪声的程度。如果所希望的输出值,通常是不正确的(因为人为错误或传感器的错误),则学习算法不应试图找到一个函数完全匹配的训练示例。试图以适应数据过于谨慎导致过度拟合。当没有测量误差(随机噪声),如果你正在努力学习功能,是您学习模式太复杂,你甚至可以过度拟合。在这种情况下的目标函数,该函数不能被模拟“腐化”你的训练数据的那部分-这一现象被称为确定性的噪声。当任一类型的噪声存在时,最好是去一个更高的偏见,低方差估计。