《机器学习》逻辑回归与线性回归算法分析

<<机器学习一>>—浅谈逻辑回归与线性回归
假设函数
线性回归中假设函数就是一个去拟合训练集的线性函数
《机器学习》逻辑回归与线性回归算法分析
而在逻辑回归中,代价函数被称为sigmoid函数,函数被赋予的含义是当前新特征值(x1,x2…)下所对对应y=1(或y!=1)的概率。h_theta_(x)>=0.5时,我们便认为该特征值下对应的结果为y=1.
《机器学习》逻辑回归与线性回归算法分析
《机器学习》逻辑回归与线性回归算法分析

严格来讲,两个假设函数本来与训练集并无太大关联。但在格式真确的情况下(如线性回归的假设函数可以是一条不断改变的直线,而逻辑回归的假设函数是一个输出值在0到1的函数),正是通过梯度下降算法的不断迭代,使得二者与我们的训练集关系更加紧密。

决策边界
因为我们之前定义了 h_theta_(x)>=0.5时,我们便认为该特征值下对应的结果为y=1。
而thetaX大于0时恰恰sigmoid函数大于0.5。所以若绘制thetax=0的图像,在该图像外围的就应该对应着y=1。所以theta*x就是该模型下的决策边界。
《机器学习》逻辑回归与线性回归算法分析

代价函数
代价函数是一个衡量我们的假设函数和实际样本y的偏差的衡量标注。而这种衡量是在训练集中采集数据完成的。

在线性回归中代价函数定义如下,很好地反映了假设函数和实际样本数据之间的偏差值。
《机器学习》逻辑回归与线性回归算法分析
而在逻辑回归中,代价函数被定义为

《机器学习》逻辑回归与线性回归算法分析
首先h_theta(x)属于0~1,而log(x)在定义域为0 - 1 值域为负无穷到0。这恰恰可以起到放大误差的作用。
这是因为逻辑函数输入的特征数据有两种不同类型,y=1的和y!=1的。所以巧妙的用了(1-y)和y项来是两类数据合成一种。当属于一种特征时,使令一种生效
最后在数据中为何没有像线性回归的代价函数一样体现误差值。这是因为训练集的y只有0或者1两个数。当y=1是我们考虑假设函数与0的偏差(因为我们是想代价函数越小越好,所以y=1是与0的偏差越小越好),当y=0时我们考虑代价函数与1的偏差(h_theta(x)不超过1)。

~梯度下降算法
我们已近知道了代价函数,知道它越小越有好的拟合效果,我们如何实现这一切呢。
在训练集中,无论是输入特征值X还是匹配结果y都是被给定的,已知的,所以要实现代价函数的缩小,去改变样本中的特征系数theta。
在前提代价函数为凸函数的情况下我们采用梯度下降算法

通过公式
《机器学习》逻辑回归与线性回归算法分析
可以实现theta的不断的自我跟新,最终收敛为一个固定值。注意全部theta要同步更新,这就是采用矩阵运算的原因。
这里的原理是凸函数在最低点左右两侧导数值一正一负号。
且注意此公式中要设置合适的alpha值,不能得到收敛效果。判断收敛既可以通过一定的迭代次数也可以通过两个相邻theta差值满足一极小数确定。
这里不赘述求导后公式。

基于逻辑回归的多分类系统
一个单位列向量上,1处于不同位置时就代表了不同类型。
对每个类型进行for循环。在处理K类时,仅分为将y仅分为两种K与非K

《机器学习》逻辑回归与线性回归算法分析
《机器学习》逻辑回归与线性回归算法分析
利用for循环训练K种参数合成一个矩阵。
再利用特征值和这些参数的运算得到目标向量
《机器学习》逻辑回归与线性回归算法分析
实际中K位置上接近于1其余位置接近于0就代表该特征值下代表种类K