Logistic Regression逻辑回归
二分类问题
考虑到二分类问题,一种方法是用线性回归,所得结果大于0.5的归类为1,小于0.5的归类为0,但是这种方法存在问题,因为分类问题本身并不一定是线性的。如果增加一个距离很远的点,拟合得到的直线就会出问题,从而得不到想要的结果。
应用逻辑回归时,希望得到的结果在0-1之间,我们使用Sigmoid Function,也成为Logistic Function,定义如下:
图像是这样的:
当z>0时,g(z)>0.5,推出y=1;反之y=0。
sigmoid function的输入不必为线性的,甚至可以是一个圆或者更高元的函数。
我们不能使用与线性回归中相同的cost function,因为hθ(x)不再是一个凸函数,它有许多的极小值,如果在这样的cost function下使用gradient descent,很可能不能收敛到全局最小值。
因此使用下面的cost function:
如果hθ(x)与y的值一致,cost function就会趋于0,如果不一致,就会趋于∞。
这种方式编写的cost function保证了逻辑回归的J(θ)是个凸函数。
将两个cost function压缩为一个式子,得到Simplified Cost Function:
梯度下降的算法:
向量化的公式为:
多分类问题
使用one-vs-all,即一对多的方法,对于0,1,2,……,n个类别,创造n+1个子分类问题,将其中的某个类别作为一类,其他的全部归为另一类,使用返回值最大的假设作为数据的类别。
Overfitting过拟合
欠拟合意味着函数不能很好地匹配训练数据,通常是由于函数过于简单,特征太少造成的。过拟合则意味着函数非常完美的匹配了训练集,但是不能很好地预测新的数据,往往是由于函数过于复杂,特征太多引起的。
两个方法预防过拟合:
(1)减少特征的数量。(手动选择特征或使用模型选择算法)
(2)正则化。(不改变特征的数量,但是减小某个特征的量级)
可以将所有的参数以和的形式附加在后面
λ称为regularization parameter,它决定了参数θ膨胀的代价。
后面加的小尾巴可以使函数hθ(x)更平滑,但如果λ过大,会使函数过于平滑,直至变成一条直线,若λ太小甚至等于0,又起不到平滑函数改善过拟合的效果。
正则化在线性回归中
正则化应用到梯度下降中:
并不惩罚θ0。
式子经过变形可以得到:
这意味着θj在每一次的更新中都会变小一点。
正则化应用到正规方程中:
L是一个(n+1)*(n+1)维的矩阵。
记得在之前提到的,X的转置*X,结果并不一定是可逆的,加上L之后,可以解决它不可逆的问题。
正则化在逻辑回归中
j是从1开始的,明确排除了θ0。