线性回归与逻辑回归的综述大汇总

一、线性回归

1.概述:

什么是回归问题:对于一组训练集(输入and对应的输出),通过回归算法拟合出一条直线(or曲线)通过该曲线可以有效预测出未知数据对应的输出。

例如下图:

 2.具体方法:共m个数据,每个数据n个特征

        ①随机形成一条直线(or曲线,以直线举例)y = w^{(1)}x^{(1)}+w^{(2)}x^{(2)}...w^{(n)}x^{(n)}+b

        ②对于每一个训练值,求损失函数并求平均形成代价函数:

J = \frac{1}{2m}\sum_{i=1}^{m}(f(\overrightarrow{x^{i}})-y^{i})^{2}

        ③对于每一个参数w,更新w的值:

w^{(j)} = w^{(j)}-\alpha \frac{d}{dw^{(j)}}J=w^{(j)}-[\alpha(\frac{1}{m}\sum_{i=1}^{m}(f(\overrightarrow{x_{i}})-y^{i})x_{i}^{(j)})]

        ④对于参数b,更新b的值:

        b = b-\alpha \frac{d}{db}J=b-[\alpha(\frac{1}{m}\sum_{i=1}^{m}(f(\overrightarrow{x_{i}})-y^{i})]

        ⑤循环②~④,直到代价函数 J 不再下降为止。

二、逻辑回归

1.概述:

什么是逻辑回归:逻辑回归是一个二分类问题,本质上并不是回归问题!,例如下图,逻辑回归需要找到一条分开A类、B类的直线or曲线。

 

2.具体方法:

        ①随机形成一条直线(or曲线,以直线举例)y = w^{(1)}x^{(1)}+w^{(2)}x^{(2)}...w^{(n)}x^{(n)}+b

        通过sigmoid函数将输出映射到[0,1]区间之内:

        ②对于每一个训练值,求损失函数并求平均形成代价函数:

Loss^{i}(\overrightarrow{w},b) = \begin{cases} & -log[1-f(\overrightarrow{w},b)] \text{ ..........if } y^{i}=0 \\ & -log[f(\overrightarrow{w},b)] \text{ ................if } y^{i}=1 \end{cases}

 也可以写为:

Loss^{i}(\overrightarrow{w},b) = -log[1-f(\overrightarrow{w},b)]\times (1-y^{i}) -log[f(\overrightarrow{w},b)] \times y^{i}

代价函数为:

注意:此时不用除2,仅仅是因为没有平方了而已

LossAll = \frac{1}{m}\sum_{i=1}^{m}Loss^{i}

 为什么损失函数和代价函数变了?

上面这个是个超链接捏(

        ③对于每一个参数w,更新w的值:

w^{(i)} = w^{(i)}-\alpha \frac{d}{dw^{(i)}}LossAll

=w^{(i)}-\alpha\times \frac{1}{m}\times\frac{d}{dw^{(i)}}Loss^{i}

其中:

\frac{d}{dw^{(i)}}Loss^{i}=-\frac{-f(\overrightarrow{w},b)(1-f(\overrightarrow{w},b))x_{i}^{(j)}}{1-f(\overrightarrow{w},b)}(1-y^{i})-\frac{f(\overrightarrow{w},b)(1-f(\overrightarrow{w},b))x_{i}^{(j)}}{f(\overrightarrow{w},b)}y^{i}

=x_{i}^{(j)}(f(\overrightarrow{w},b)-y^{i})

        综上:

w^{(j)} = w^{(j)}-[\alpha \frac{1}{m}\sum_{i=1}^{n}(f(\overrightarrow{w},b)-y^{i})x_{i}^{(j)}]

        ④对于参数b,更新b的值:

b = b-\alpha \frac{d}{db}LossAll

=b-\alpha\times \frac{1}{m}\times\frac{d}{db}Loss^{i}

其中:

\frac{d}{db}Loss^{i}=-\frac{-f(\overrightarrow{w},b)(1-f(\overrightarrow{w},b))}{1-f(\overrightarrow{w},b)}(1-y^{i})-\frac{f(\overrightarrow{w},b)(1-f(\overrightarrow{w},b))}{f(\overrightarrow{w},b)}y^{i}

=(f(\overrightarrow{w},b)-y^{i})

综上:

b=b-[\alpha(\frac{1}{m}\sum_{i=1}^{m}(f(\overrightarrow{x_{i}})-y^{i})]

        ⑤循环②~④,直到代价函数 LossAll 不再下降为止。

三、汇总:

不知道看到这的读者有没有发现,对于所有的参数w和b,更新式子完全一致!

w^{(j)} = w^{(j)}-[\alpha \frac{1}{m}\sum_{i=1}^{n}(f(\overrightarrow{w},b)-y^{i})x_{i}^{(j)}]

b=b-[\alpha(\frac{1}{m}\sum_{i=1}^{m}(f(\overrightarrow{x_{i}})-y^{i})]

不放心的同学可以自行验证一遍

但是!由于 f 函数定义不一样,实际效果完全不同,详细可见本文中间的超链接。

也就是说逻辑回归通过一系列骚操作,将一个分类问题,转化成了一个类似回归的问题,用于回归问题的代码完全不用改,只需要改动一下 f 函数的定义就会变成一个完全不同的代码。实在是太神奇了!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千天夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值