这篇文章将会介绍一下什么是监督学习(Supervised Learning)?
在正式给监督学习下定义之前,我先用一个例子来理解一下。
假设我们闲着没事,想要卖掉房子?,但是不相信黑心中介的报价,这个时候我们就要学会自己来预测房价。
首先我们需要收集一堆房价的数据,把这些数据画出来,就像下图⤵️
横坐标表示房子面积,纵坐标表示房价
❌表示真实的数据,可以在这组数据中,画出一条直线,根据这条直线,我们可以预测出 750 平方英尺的房子,大概可以卖 $150,000。
当然,这不是唯一的算法,如果你嫌价格太低,也可以拟合出一条曲线(只要你开心),那个拟合效果可能会更好。
以上就是一个监督学习的例子。
可以看出来,监督学习就是我们给学习算法一个已知的数据集,例子中每个房子的价格是明确的;算法根据这些数据算出更多结果,即房子的价格。
?房子的价格是一个连续值,术语管这叫做回归(Regression)问题。
理解回归这个词很有必要,它针对的是连续值。
我再举一个**分类(Classification)**的问题,它也属于监督学习一种。
假设你得了乳腺肿瘤,那么肯定很在意恶性的还是良性的。
在下面的数据中,横坐标表示肿瘤大小,纵坐标 0 表示良性,1 表示恶性。
红色表示恶性,蓝色表示良性
假设你们的肿瘤大概这么大,那么在这个例子中,机器需要估算出肿瘤是恶性的或是良性的概率。用术语来讲,这是一个分类问题。
现实中,结果可能不止两种结果。我们可以用0、1、2、3 来表示。
显然你也发现了,仅仅根据大小来判断肿瘤的性质实在太业余了。
肿块的密度、患者的年龄、肿瘤细胞尺寸的一致性等等,这些特征都能影响肿瘤的性质。
下图增加了患者年龄这一特征。
X 表示恶性,O 表示良性
算法利用大量的特征,做出更准确的预测,那么如何处理储存这些特征?
⭐️不用担心这是以后会讲到的一个算法,叫支持向量机,里面有一个巧妙的数学技巧,能让计算机处理无限多的特征。
现在我们可以来总结一下了:
⭐️**监督学习(Supervised Learning)**是指用已经标记好的数据(labelled data),通过训练,来预测新数据的类型,或者是值。
预测已有类型叫做分类(Classification),预测一个值叫做回归(Regression)。
✏️现在来个小测验:假设你经营着一家公司,你想处理这两个问题:
- 你有上千件一模一样的货物等待出售,这时你想预测接下来的三个月能卖多少件?
- 你有许多客户,你想检验每一个用户的账户是否被盗过?
这两个问题,它们属于分类问题还是回归问题?
写于 2018.11.30