机器学习教程-监督学习

监督学习 Supervised Learning

什么是监督学习?
假设你想预测房价(无比需要啊!), 之前,某学生已经从某地收集了数据集(不是中国的,囧) 其中一个数据集是这样的。
横坐标,即不同房子的面积,单位平方脚(^-^) 纵轴上是房价,单位 千美元。 根据给定数据,假设你朋友有栋房子,750平尺(70平米) 想知道这房子能卖多少,好卖掉。 那么,学习算法怎么帮你呢?学习算法可以: 绘出一条直线,让直线尽可能匹配到所有数据。
基于此,看上去,那个房子应该、可能、也许、大概 卖到15万美元(一平米两千刀!)。
但这不是唯一的学习算法。 可能还有更好的。比如不用直线了, 可能平方函数会更好, 即二次多项式更符合数据集。如果你这样做, 预测结果就应该是20万刀(一平三千刀,涨价好快)。
后面我们会介绍到如何选择 是选择直线还是平方函数来拟合。 没有明确的选择,就不知哪个能给你的朋友 更好的卖房建议。只是这些每个都是很好的学习算法例子。 也是监督学习的例子。
术语监督学习,意指给出一个算法, 需要部分数据集已经有正确答案。比如给定房价数据集, 对于里面每个数据,算法都知道对应的正确房价, 即这房子实际卖出的价格。算法的结果就是 算出更多的正确价格,比如那个新房子, 你朋友想卖的那个。用更术语的方式来定义, 监督学习又叫回归问题,(应该是回归属于监督中的一种) 意指要预测一个连续值的输出,比如房价。 虽然从技术上,一般把房价记到美分单位。 所以实际还是个离散值,但通常把它看作实际数字, 是一个标量值,一个连续值的数,而术语回归, 意味着要预测这类连续值属性的种类。
另一个监督学习的例子,我和一些朋友 之前研究的领域。让我们来看医学记录, 并预测胸部肿瘤是恶性良性。 如果某人发现有胸部肿瘤,恶性肿瘤有害又危险, 良性肿瘤则是少害。 显然人们很关注这个。让我们看一个收集好的数据集, 假设在数据集中,横轴表示肿瘤的大小, 纵轴我打算圈上0或1,是或否, 即肿瘤是恶性的还是良性的。
所以如图所示,可以看到这个大小的肿瘤块 是良性的,还有这些大小的都是良性的。 不幸地是也看到一些恶性肿瘤,比如这些大小的肿瘤。 所以,有5个良性块,在这一块, 还有5个恶性的,它们纵轴值为1. 现在假设某人杯具地得胸部肿瘤了, 大小大概是这么大。 对应的机器学习问题就是,你能否估算出一个概率, 即肿瘤为恶或为良的概率?专业地说,这是个分类问题。 分类是要预测一个离散值输出。 这里是0或1,恶性或良性。
在分类问题中,有时会有超过两个的值, 输出的值可能超过两种。举个具体例子, 胸部肿瘤可能有三种类型,所以要预测离散值0,1,2,3 0就是良性肿瘤,没有癌症。 1 表示1号癌症,假设总共有三种癌症。 2 是2号癌症,3 就是3号癌症。 这同样是个分类问题,因为它的输出的离散值集合 分别对应于无癌,1号,2号,3号癌症
在分类问题中,还有另一种作图方式 来描述数据。要用到些许不同的符号集合 来描绘数据。如果肿瘤大小作为唯一属性, 被用于预测恶性良性,可以把数据作图成这样。
 使用不同的符号来表示良性和 恶性,即阴性和阳性。 改用圈圈来代表良性肿瘤,就像这样。 仍沿用X(叉叉)代表恶性肿瘤。
在上例中,只使用了一个特征属性,即肿瘤块大小, 来预测肿瘤是恶性良性。在其它机器学习问题里, 有着不只一个的特征和属性。现在不只是知道肿瘤大小, 病人年龄和肿瘤大小都知道了。这种情况下, 数据集如表图所示
假设 有一朋友得了肿瘤。肿瘤大小和年龄 落在红箭头处。那么依据这个给定的数据集,学习算法 所做的就是画一条直线,分开 恶性肿瘤和良性肿瘤。然后你就能判断这朋友的肿瘤是良性还是恶性。
本例中,总共有两个特征, 即病人年龄和肿瘤大小。
在别的ML问题中, 经常会用到更多特征,我朋友研究这个问题时, 通常使用这些特征:比如块的厚度,即胸部肿瘤的厚度 肿瘤细胞大小和形状的一致性, 等等。它表明, 最有趣的学习算法(本课中将学到) 能够处理无穷多个特征。不是3到5个这么少。所以,你的学习算法要使用很多的属性 或特征、线索来进行预测。
那么,你如何处理 无限多特征呢?甚至你如何存储无数的东西 进电脑里,又要避免内存不足? 事实上,等我们介绍一种叫支持向量机的算法时, 就知道存在一个简洁的数学方法,能让电脑处理无限多的特征。 想像下,我不是这边写两个特征, 右边写三个特征。而是,写一个无限长的特征表, 不停地写特征,似乎是个无限长的特征的表。但是,我们也有能力设计一个算法来处理这个问题。
我们介绍监督学习。 其基本思想是,监督学习中,对于数据集中的每个数据, 都有相应的正确答案,(训练集) 算法就是基于这些来做出预测。就像那个房价, 或肿瘤的性质。后面介绍了回归问题。 即通过回归来预测一个连续值输出。 我们还谈到了分类问题, 目标是预测离散值输出。

Supervised Learning

In supervised learning, we are given a data set and already know what our correct output should look like, having the idea that there is a relationship between the input and the output.
Supervised learning problems are categorized into “regression” and “classification” problems. In a regression problem, we are trying to predict results within a continuous output, meaning that we are trying to map input variables to some continuous function. In a classification problem, we are instead trying to predict results in a discrete output. In other words, we are trying to map input variables into discrete categories.
Example 1:
Given data about the size of houses on the real estate market, try to predict their price. Price as a function of size is a continuous output, so this is a regression problem.
We could turn this example into a classification problem by instead making our output about whether the house “sells for more or less than the asking price.” Here we are classifying the houses based on price into two discrete categories.
Example 2:
(a) Regression – Given a picture of a person, we have to predict their age on the basis of the given picture
(b) Classification – Given a patient with a tumor, we have to predict whether the tumor is malignant or benign.

发表评论

邮箱地址不会被公开。 必填项已用*标注