监督学习

分类与回归

在监督机器学习问题中主要有两种,分别为分类(classification)回归(regression)

分类

分类问题的目标是预测类别标签,这标签来自预定于的可选列表。

分类问题可分为二分类(在两个类别之间进行区分的一种特殊情况),和多分类(在两个以上的类别之间进行区分)。对于二分类问题,我们可以举例为,判断一封电子邮件是否是垃圾邮件,其结果只有两种,是和不是。对于多分类问题,我们现有一个可选列表,其中有“老虎,兔子,猫,狗”四种动物,通过某种算法对输入的数据进行预测判断,判断其是哪种动物,由于这里动物的选项有四种,所以该问题又是一个四分类问题,又或者如下图所示的垃圾分类问题

在这里插入图片描述

分类问题主要是通过输入的数据,并且每个输入的数据都带有一个固定的标签,所有数据的标签构成一个可选列表,当有新的未知标签的数据输入时,算法根据之前的分类特征来对当前的数据进行判断,判断其是属于哪一类。

分类任务以分类的正确成都作为分类器的主要性能,其最简单的性能是准确率,计算公式如下:
准 确 率 = 正 确 预 测 的 数 据 预 测 的 所 有 数 据 准确率 = \frac{正确预测的数据}{预测的所有数据} =

对于有偏好的数据,其使用精度来表示输出结果为正确解的程度,以垃圾邮件为例,精度是在预测为垃圾的邮件中,确实为垃圾邮件的比例,如果有80条邮件被预测为垃圾邮件,而真正预测对的垃圾邮件只有55条的话,精度为:
精 度 = 55 88 = 0.6875 精度=\frac{55}{88}=0.6875 =8855=0.6875

回归

回归任务的目的是预测一个连续的值,其将输入变量映射到连续输出变量的映射函数上。

一个简单的例子就是,根据教育水平、年龄和居住地来预测一个人的年收入。

回归问题其通过给定的输入,得到一个目标值的计算公式,该公式被称为回归方程,通过算法对回归方程中的回归系数进行计算,有了这些回归系数,再给定输入,便可以得到预测值,我们可以直接想想一根直线,其可以一直达到无穷远处,所以我们只要知道了它的斜率和截距,我们便可以知道这条直线上的所有的点。

回归的评价主要采用均方根误差(RMSE),其数学公式如下:
R M S E = ∑ i ( 预 测 值 i − 实 际 值 i ) 2 N RMSE = \sqrt{\frac{\sum_{i}({预测值_{i}-实际值_{i}})^{2}}{N}} RMSE=Ni(ii)2

区分分类任务和回归任务

区分分类任务和回归任务有一个简单的方法,就是问一个问题:输出是否具有某种连续性。如果在可能的结果之间具有连续性,那么他就是一个回归问题,反之,则为分类问题。

关于分类问题和回归问题的更多内容可参考https://yq.aliyun.com/articles/282218

泛化、过拟合、欠拟合

在对这三个概念进行解释时,有必要先对训练集和测试集进行说明。在构建模型时,我们不能够将所有的数据都拿来构建,因为我们需要在将模型应用于新的测量数据之前,判断其是否有效,而这些数据从哪里来呢?只有从收集好的数据中取出一部分来评估模型的性能,其称为测试集;而其余的数据,则被用于构建机器学习模型,称为训练集,一般都是按1:3分,scikit-learn中的train_test_split可实现这一功能。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data1, data2, random_state = 0)  # random_state指定随机数生成器的种子

上面讲了在分类和回归中均有一定的评价标准,在分类问题中称为精度,在回归问题中称为** R 2 R^{2} R2分数**,由于有训练集和测试集之分,其又可分为训练集准确度( R 2 R^{2} R2分数),测试集准确度( R 2 R^{2} R2分数),这时用来评估模型的主要方法。

泛化

一个模型能够对没见过的数据做出准确的预测,则我们可以说它能够从训练集泛化到测试集(或其他)。

过拟合

构建一个对现有信息量来说过于复杂的模型,则称为过拟合。举个例子,有一个数据集拥有十个特征,你把这十个特征全都用来构建一个模型,因此得到的模型在训练集上表现的很好,但是将我们添加新的数据集时,他却不能够准确的判断,那么就存在过拟合。换句话说,就是在你和模型时过分关注训练集的细节,而得到了一个复杂的模型,其不能够泛化到新的数据上。

过拟合得到的模型复杂,其在训练集上的精度(分数)较高,而在测试集上的精度(分数)较低,因此其泛化性能较差。当训练集分数和测试集分数差距过大时,则是过拟合的明显标志

欠拟合

所谓欠拟合就是构建的模型过于简单,没有抓取数据的全部内容以及数据中的变化。还是上面有十个特征的例子,在这里你可能只使用了一个特征来构建模型,因此我们得到的模型在训练集上表现的就很差,但是,由于模型简单,因此其可以泛化到新的数据上。

欠拟合得到的模型简单,其在训练集上的精度(分数)较低,在测试集上的精度(分数)较低,因此其泛化性能也较差。当训练集分数和测试集分数相近时,则是欠拟合的明显标志

对于过拟合和欠拟和我们可以用下图来进行说明,下图中训练题看作训练集,过学习看作过拟合,以此类推

在这里插入图片描述

当然,在过拟合和欠拟合之间存在一个最佳位置,可以得到最好的泛化性能,而这便是我们想要的模型,如下图所示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值