分类和回归
分类与回归是监督学习问题的主要种类。
分类问题的目标是预测类别标签(class label),其中包括二分类和多分类问题。在二分类中,两个类别分别称为正类和反类,正反类由主观决定。
回归问题的目标是预测一个连续值。
区分分类问题和回归问题在于判断输出是否具有连续性。有则为回归问题,无则为分类问题。
泛化、过拟合和欠拟合
泛化(generalize):如果一个模型能够对没见过的数据做出准确预测,那么称它能够从训练集泛化到测试集。
过拟合(overfitting):在拟合模型时过分关注训练集的细节,模型过于复杂,在训练集上表现很好,但是不能很好地泛化到测试集上。
欠拟合(underfitting):在拟合模型时无法抓住训练集的重要内容和数据,模型过于简单,在训练集上表现不好。
最佳模型处于过拟合和欠拟合中间
机器学习方法基本分类
监督学习
监督学习:监督学习,简单来说就是给定一定的训练样本(这里一定要注意,这个样本是既有数据,也有数据相对应的结果),利用这个样本进行训练得到一个模型(可以说就是一个函数),然后利用这个模型,将所有的输入映射为相应的输出,之后对输出进行简单的判断从而达到了分类(或者说回归)的问题。简单做一个区分,分类就是离散的数据,回归就是连续的数据。
分类与回归是监督学习问题的主要种类。
无监督学习
无监督学习:同样,给了样本,但是这个样本是只有数据,但是没有其对应的结果,要求直接对数据进行分析建模。
常见的无监督学习算法:聚类和降维
强化学习
半监督学习
损失函数
损失函数作用:损失函数是用于衡量模型预测值与真实值之间差距的函数,损失函数的值越小越好。
0-1损失函数(Zero-one Loss)
当且仅当预测为真的时候取值为1,否则取值为0。
优点:能够客观地评价模型的好坏。
缺点:可以看出该损失函数过于严格,导致其具有非凸、非光滑的特点,使得算法很难直接对该函数进行优化。
平方损失函数(Square Loss)
适用于线性回归问题,不适用于分类问题
平方损失函数用于测量机器学习模型的输出与实际结果之间的距离,光滑函数。
优点:能够使用梯度下降法优化。
缺点:然而当预测值距离真是只越远时,平方损失函数的惩罚力度越大,因此对异常点比较敏感。
交叉熵损失函数(cross-entropy Loss)
在机器学习中,常常使用P ( x ) 来表示样本的真实分布,Q ( x ) 来表示模型所预测的分布。
适用于分类问题
交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。
交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。
假设我们输入一张狗的图片,标签与预测值如下:
猫 | 狗 | 马 | |
---|---|---|---|
Label | 0 | 1 | 0 |
Pred | 0.2 | 0.7 | 0.1 |
那么loss
一个batch的loss为
其中m表示样本个数
算法
线性回归
线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。
通常我们可以表达成如下公式:
KNN
k近邻(KNN)是一种基本分类与回归方法,属于有监督学习(带有标签)。
分类问题中的k紧邻,输入的是实例的特征向量(特征空间的点),输出的是实例的类别,可以取多类。它的原理很简单,就是服从多数原则。
详细来说:给定一个数据集,其中的实例类别已定,在训练数据集中找到与目标实例最近的k各实例,这k个实例若大多数属于某个类别,就把目标实例归分为这个类别。看个例子,就明白了。
蓝色方块和红色三角属于给定的数据集,绿色圆圈为待分类,现在让我们分析以下这个绿色圆圈到底属于哪个类?
若k=3,则与绿色圆圈最近的有两个红色三角和一个蓝色方块,根据服从多数原则,我们将绿色圆圈划分到红色三角里;
若k=5,则与绿色圆圈最近的有两个红色三角和三个蓝色方块,根据服从多数原则,我们将绿色圆圈划分到蓝色方块里;由此可知,待分类数据到底属于哪一类根据k值的不同而不同。
优化方法
梯度下降法
梯度下降法就是往梯度最大,下降最快的地方搜索,直到到达最低点。
梯度下降法有时得到全局最优解,但有时只能得到局部最优解。只有在凸函数上才能得到全局最优解。