下图为2017 kaggle 比赛统计的各算法使用频度,可见LR虽然本身不难但是是非常有用的。很多时候机器学习算法并不是越复杂越好,要根据使用场景选择合适算法。(天下没有免费午餐定理)而且深度学习使用较少,这是因为使用深度学习对数据要求很高,需要有非常大的计算量,与此同时对计算能力的要求也非常高。在有些时候手中的数据不是很大的时候这些所谓的简单的方法使用好了也是非常的有效的。
1.逻辑回归:解决分类问题
回归问题怎么解决分类问题?
将样本的特征和样本发生的概率联系起来,概率是一个数。
对于机器学习来说,本质就是求出一个函数f(x),如果有一个样本x进来,经过f()函数的运算后就会得到一个预测值我们通常称之为y,在之前的线性回归,多项式回归等y值实际上就是本身我们关心的指标。比如房价预测来说我们的y值就是房价,如果预测学生的成绩y的值就是学生的成绩。
但是在逻辑回归中,f(x)函数得到的y值本质是一个概率值,在这里我们用概率值p表示。
所以对于逻辑回归来说,本质是求出一个函数f(x),如果有一个样本x进来,经过f()函数的运算后就会得到一个概率值p,之后我们根据概率值来进行分类,如果大于0.5则为类别1,否则为类别0
所以逻辑回归即可以看做是回归算法(如果最后不根据得到的概率p进行分类的话,就是回归算法。计算出的是通过样本的特征来拟合出一个事件发生的概率),也可以看作分类算法。
逻辑回归通常作为分类算法用,逻辑回归本身只可以解决二分类问题。对于多分类问题逻辑回归本身是不支持的。当然我们可以使用一些其他的技巧进行改进,使得我们用逻辑回归也可以解决多分类问题。(在本章最后总结)(KNN天生可以解决多分类问题)
2逻辑回归公式
x_b表示数据前面加入了一列1。线性回归中得到的y值是负无穷到正无穷的任意值。但是概率的值域为【0,1】。可以通过σ将函数值域转为0-1。那么σ函数是怎样的那?
问题:对于给定的样本数据集X,y 我们如何找到参数θ。使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y?
(即如何求出θ来拟合样本数据)
3如何定义损失函数?MSE?
预测值 的取值范围在0-1 。
y=1 的情况 -log(x) 在0-1上单减,当 (越小)趋近于0时 cost 值越大; 当 (越大)趋近于1时cost值越小
y=0 的情况 -log(1-x) 在0-1上单增,当 (越小)趋近于0时 cost 值越小; 当 (越大)趋近于1时cost值越大
将分类函数合成一个函数并推导出损失函数
对于上面的式子,不能像线性回归那样推导出一个正规方程解,实际上对于上面的目标函数是没有数学解析解的。(不能求出一个公式,之间套公式)。但是可以使用梯度下降法求解。此损失函数依然是一个凸函数所以他是没有局部最优解的,只有一个全局最优解,所以也不用考虑梯度下降法需要实验多次。只有求出损失函数的梯度更新θ即可。
其它教材或课程有用极大似然和最小二乘法求解的(唐)
4J(θ)梯度推导
我们先来看对某一个θ(如θ_j)来求导得到的结果是怎样的。我们不直接对J(θ)求导,先对σ函数求导,反正根据链式法则最后都要求σ函数的导数的。
1.对前半部分函数求导
2.对后半部分求导
又由于:
所以,带入 中得
3.前后两部分相加
4.对所有θ求梯度
5.对比梯度下降求解线性回归时的梯度
6.更新θ
5 决策边界
逻辑回归改进自线性回归,那么线性回归中θ的含义在逻辑回归中有什么几何含义
如果X有两个特征画出决策边界 x2
1逻辑回归中θ的几何意义,每新来一个样本,让他和θ相乘如果大于等于0就分类为1(在直线下面)
逻辑回归决策边界(决策边界有表达式x2)
KNN决策边界(虽然knn中决策边界没有表达式 )
k=5时二分类决策边界图
k=5时三分类决策边界图(边界非常不规整,过拟合了)(k越小模型越复杂)
k=50时三分类决策边界图(k越大模型越简单)