向量化
将一般的多元运算转换成两个向量的运算
分类
分类的就是把结果分出多种结果,例如肿瘤的大小与是否恶性肿瘤的例子,这是一个二分类的例子,因为结果只有两种,是恶性肿瘤和非恶性肿瘤
线性回归处理的就是二分类问题,线性回归函数因数据集的变化而变化,最终将结果分为上下两部分,也就是产生两个分类
logistic回归算法
logistic回归的意义
线性回归应用到分类上边,如下,假设h(θ)的值≥0.5就预测输出:y=1。那么比在y=0.5对应的肿瘤大要大的肿瘤就会被判定为恶性肿瘤
但是如果有一个特别的阳性的例子,如下图右上角的肿瘤,那么线性回归的预测函数就会变成如下的蓝色直线,那么当预测输出的阈值还是0.5的时候,一些阳性的例子同样输出为阴性,因而线性回归在此时的分类问题上并不理想
并且使用线性回归函数处理分类问题,可能会出现输出值远大于1或者是小于0的情况。因而需要开发其他的分类算法,这里介绍的是logistic回归算法
logistic回归算法一种分类算法,算法的输出值(预测值)一直介于0和1之间,并不会大于1或者小于0
logistic回归中假设函数的表示
一般假设函数的形式如下
而在logistic回归中假设函数的表示方法如下,就是如下的g函数
其中g函数形式如下,这就是一个logistic算法或者是Sigmoid算法
其函数图像如下,范围是[0,1]
最终形式如下,最终实现如下函数后用参数θ拟合我们的数据
如下概率表达式为:给定输入变量x,根据选择的参数Θ,h(x)给出 y=1 的概率。y=0 的概率是 1 - h(x)
决策边界
logistic如何做出决策
这里解决的问题是,什么时候y会被预测为1,什么时候会被预测为0,理解函数的形状,特别当我们的数据是多特征的时候
如图所示,右上角的图为logistic函数的图像,在y经过的点为y=0.5的点,因而对于logistic函数:g(z)。
- 当z≥0,logistic函数输出值y=1,当当z≥0,在假设函数中也就是 θ T x θ^Tx θTx>0,这样就可以拿到y=1的预测结果
- 同样当z<0,这样就可以拿到y=0的预测结果
什么是决策边界
假设有如下假设函数,并且有右边的训练集
假设我们已经拟合好参数,此时θ0=-3,θ1=1,θ2=1.。那么根据上述logistic函数的性质,当时g函数的参数≥0的时候,预测值y=1,因而这里有如下输出值
并根据条件得到:x1+x2 = 3,绘制该曲线有如图酒红色的直线,这条直线称为决策边界,在边界上,预测结果输出都为0.5
决策边界是假设函数的一个属性,而不是数据集的属性
多项式情况下,也是如此
如何拟合logistic中的参数θ
Cost项引入
代价函数使用Cost项表示:这里特别将1/2移动到平方差里边
logistic函数中,他的表达式是一个非线性的表达式,如果使用线性回归中的代价函数形式,那么就会得到一个非凸函数,如下左图,他有许多个局部的最优值,如果使用梯度下降法进行处理,那么他会收敛到局部的最优值,但可能不是全部的最小值,而对于凸函数,如右图中是线性回归函数的数学模型,他是一个凸函数,根据梯度下降算法是可以收敛到唯一的全局最小值
结合Cost函数
如下为logistic回归拟合Cost函数的相关拟合函数
对于y=1的时候,Cost函数为-log(h(x)),其他函数图像如下,以预测函数h(x)为x轴,当预测值为1的时候并且实际上y=1,那么Cost等于0,也就是说预测成功后,代价值是0,而当y=1,h(x)预测输出的是0或者无限接近0,那么这个时候Cost的值无穷大,也就是预测与实际完全相反,这个时候代价无穷大
而对于另外的,当y=0的情况,推导也是类似的,如下
总结上述有
对于该单个样品的代价函数可以使用另一种形式去实现,并且显得更紧凑,如下
整合如下l,为用来拟合ogistic回归的代价函数
拟合过程
拟合过程主要是让J(θ)取得最小值的参数θ
过程使用梯度下降函数,重复更新每个参数
处理导数项后,如下图所示,跟处理线性回归函数相同
多类别分类问题
应用场景:例如自动将邮件归类到不同的文件夹内或者是打上不同的标签
逻辑回归处理多类别分类问题
在二分类问题中,通过决策边界,将训练集分为正类和负类。而多类别分类问题就可以使用一对多的分类思想将其应用在多类别分类问题上
一对多分类原理
对于多分类问题,可以转换成多组二分类问题进行解决。如下可以转换成三组独立的二分类问题进行解决最终的多类别分类问题
如下,拟合第一类问题时,可以将分类1(也即是三角形代表的分类)设置为正类,其他为负类,这样就变成了二分类问题,如此类推我们拟合出三个分类器
这样我们就训练了一个逻辑回归分类器,往后应用的时候,在三个分类器运行输入x,然后选择预测函数h(x)输出最大的类别,这个过程是选择分类器,也就是选择可信度最高、效果最好的那个分类器,这个时候,无论输入样品是哪个,我们都能得到一个最高的概率值,我们预测y就是那个值
过拟合问题
逻辑回归以及线性回归,能够有效解决许多问题,但是当应用到某些特定的机器学习应用时会遇到过渡拟合问题,导致他们表现欠佳
什么是过渡拟合
如下,使用一次函数去拟合训练集的数据,因为随着size增大,price逐渐趋向平缓,所以使用一次函数并没有很好去拟合该图像,这种情况叫欠拟合,也就是说这个算法具有高偏差
如下图,使用一个一元四次函数去拟合这训练集,可以看到图像都经过训练集上的目标,也就是通过训练集上的点,都会得到正确的预测,但是整体曲线不停上下波动,因而并不认为这是一个很好的拟合,而是被称为过拟合
过度拟合的影响
过度拟合是对现有训练集中的样品进行千方百计地进行拟合,因而他会的模型图像会经过绝大多数甚至是现有的所有的样品,因而在现有的样品上进行计算代价函数,其代价函数值为0。但是他只适应当前的训练集,而无法预测新的样本的相应的指标,如上述是无法预测新样品的房价,这样就导致整体模型的泛化能力下降
泛化:指的是一个 假设模型应用到新样本的能力
如果我们有过多的特征量,但是只有非常少的训练数据,那么就很可能出现过拟合现象
过拟合问题的解决
- 方法一: 要尽量减少特征量,也就是人工去辨别哪些是比较重要,哪些比较相近,然后进行去除。这样做的原因是丢弃一些特征,同时也丢弃了一些信息
- 方法二:正则化。正则化将保留所有的特征,但减少量级或者减小θj的大小
正则化
正则化实例
如下图为之前过拟合的情况
从观察而言,二次函数是比较适合目前数据的拟合的,但是现在出现了三次幂和四次幂,最终造成过度拟合的情况。
我们优化的目标是要最小化其均方误差代价函数。正则化,可以在在函数中加入惩罚项,当θ3和θ4非常小的时候,例如是0,就相当于去除了这两项,我们最终拟合的就是相当于一个二次函数。但当相应的特征量数值比较大的时候,因为使用了较大的系数,并且惩罚项目是平方的,所以会造成更大的值,更大的值,代表着代价函数的整体值越大,相当于使用该函数拟合的代价越大,而我们优化的目标是使得优化函数变小
正则化思想
如果我们的参数值较小,参数值尽量小意味着一个更简单的假设模型。如上述的例子中,加入θ3和θ3的相关的惩罚项,当这些参数趋向0的时候,就变成了一个二次函数,就相当于简化了假设模型
正则化代价函数
上述例子中,知道θ3和θ4是高阶的项,但是实际上在应用中,我们不知道哪些是高阶的,甚至不知道该选出哪些参数来缩小它们的值,因此在正则化中,我们要做的就是对代价函数进行修改,从而缩小所有参数
对于上述要求,我们可以在线性回归的代价函数后面添加一个新的项,使用该项用来缩小每个参数的值
如下为正则函数的代价函数,最右边添加的项是正则化项,
正则化参数λ
而λ称为正则化参数,而λ的作用是控制两个不同目标之间的取舍,控制两个目标之间的平衡关系,即更好地去拟合训练集的目标和将参数控制得更小的目标,从而保持假设模型的相对简单,避免出现过拟合的情况
- 第一个目标与目标函数的第一项有关,就是我们想训练,想更好地拟合训练集
- 第二个目标是,我们要保持参数尽量小,与目标函数第二项有关,也就是与正则化项有关
如果你依然想保留所有特征的高阶项,你只要确保,利用正则化项就可以做到(也就是上述的第二个目标)
在λ被设置过大的时候,造成结果就是我们对具体的特征变量惩罚度过大,那么这些参数都会接近于0(因为这些项的数值越大,并且在惩罚项较大的情况下,代价函数的值就会越大,而我们的目标是将代价函数的值尽量小)。如果出现在线性回归中,就是一条y=θ0的直线(因为代价函数这些都是从i=1开始的,一般会忽略对θ0的统计),最终造成欠拟合的情况
梯度下降算法应用到正则化线性回归
如下是一般线性回归方程的代价函数的过程,现在需要做的是,将下述方程进行改造,并适用于正则化线性回归中
在上图中,单独将θ0拿出来,这是因为在正则化线性回归中,我们惩罚的对象是参数θ1、θ2…θn,并没有惩罚θ0,因而将它区别对待
而将上述向正则化方面进行转换,就是添加跟正则化相关的项,如下。实际上对正则化代价函数进行求偏导,也是可以得到后边的项
如下是整合的项,如箭头所示,α是正值,λ也是正值,而m是样本数量,他的值一般比较大,这样的就使得整体比较小且为正数,例如第一项有可能变成θj*0.99,而右边是跟原来梯度下降算法相同的项
正规方程应用在正则化线性回归
使用正规方程解决正则化线性回归,首先要设计矩阵X,如下,每一行都表示一个单独训练的样本。X是一个m*(n+1)维的矩阵
而向量y是一个m维的向量,它包含了训练集里的所有标签
正规方程的解决试试就相当于,例如在一元二次方程中,导数为0 的点就是极值点,并且是一个向下凸 的函数,这样就是存在一个最小值,而对函数进行求导的过程,事实上就等于正规化方程。因而,对求与正则化线性回归方程相关的正规方程,就可以通过类比,添加相应的正则化导数项就可以得到相应的正规方程
根据X就可以知道,新增的项是一个**(n+1)*(n+1)**的矩阵
当样品数量m≤n的时候,x的转置与x的乘积是不可逆的
logistic回归的正则化
如下,即使逻辑回归,也会出现正则化的问题
如上的J(θ)函数hi逻辑回归的代价函数,如果想要将其正则化,我们需要做的是在其方程最后加上正则化项即可
而逻辑回归正则化相关的梯度下降函数如下,类似于线性回归的梯度下降函数的正则化处理