一、线性回归
1.概述:
什么是回归问题:对于一组训练集(输入and对应的输出),通过回归算法拟合出一条直线(or曲线)通过该曲线可以有效预测出未知数据对应的输出。
例如下图:
2.具体方法:共m个数据,每个数据n个特征
①随机形成一条直线(or曲线,以直线举例)
②对于每一个训练值,求损失函数并求平均形成代价函数:
③对于每一个参数w,更新w的值:
④对于参数b,更新b的值:
⑤循环②~④,直到代价函数 J 不再下降为止。
二、逻辑回归
1.概述:
什么是逻辑回归:逻辑回归是一个二分类问题,本质上并不是回归问题!,例如下图,逻辑回归需要找到一条分开A类、B类的直线or曲线。
2.具体方法:
①随机形成一条直线(or曲线,以直线举例)
通过sigmoid函数将输出映射到[0,1]区间之内:
②对于每一个训练值,求损失函数并求平均形成代价函数:
也可以写为:
代价函数为:
注意:此时不用除2,仅仅是因为没有平方了而已
上面这个是个超链接捏(
③对于每一个参数w,更新w的值:
其中:
综上:
④对于参数b,更新b的值:
其中:
综上:
⑤循环②~④,直到代价函数 LossAll 不再下降为止。
三、汇总:
不知道看到这的读者有没有发现,对于所有的参数w和b,更新式子完全一致!
不放心的同学可以自行验证一遍
但是!由于 f 函数定义不一样,实际效果完全不同,详细可见本文中间的超链接。
也就是说逻辑回归通过一系列骚操作,将一个分类问题,转化成了一个类似回归的问题,用于回归问题的代码完全不用改,只需要改动一下 f 函数的定义就会变成一个完全不同的代码。实在是太神奇了!