LR与LR?
逻辑回归与线性回归
| 逻辑回归 | 线性回归 | |
|---|---|---|
| 目标函数 | $\prod_{i=1}^N[\pi(x_i)^{y_i}][(1-\pi(x_i))^{(1-y_i)}] $ | \(\frac{1}{2}\sum_{i=1}^N(\hat{y_i}-y_i)^2\) |
| 输出 | 离散值(分类) | 连续值(回归) |
| 求解 | 对似然函数求导,交叉熵 | 最小均方差求导 |
联系:
输出是从连续值到离散值的映射
\(\pi(x)=p(y=1|x)=\frac{exp(wx)}{1+exp(wx)}=\frac{1}{1+exp(-wx)}\),sigmoid激活函数将输出的连续值变成了离散值,在没有sigmoid函数时,输出就是\(wx\), 和回归的输出一样。
求解时都可以使用梯度下降
逻辑回归
1.建立目标函数
设 \(P(y=1|x) = \pi(x), P(y=0|x) = 1-\pi(x)\)
似然函数为:
\]
对数似然函数:
L(w) &= \sum y_ilog(\pi(x_i))+(1-y_i)log(1-\pi(x_i)) \\
&= \sum y_ilog(\pi(x_i))+log(1-\pi(x_i))-y_ilog(1-\pi(x_i)) \\
&= \sum y_i(log\frac{\pi(x_i)}{1-\pi(x_i)})+log(1-\pi(x_i)) \\
&= \sum y_i(wx_i)-log(1+exp(wx_i))
\end{aligned}
\]
2. 梯度求解
\nabla L(w) &= \sum y_ix_i - \frac{x_iexp(wx_i)}{1+exp(wx_i)}
\end{aligned}
\]
求极大值,用梯度上升:
\]
3. 实现
"""
只写了核心部分
"""
def fit(x,y,n_iter):
cal_gradient(x,y,alpha,n_iter)
def cal_grdient(x,y,alpha,n_iter):
"""sgd
"""
w = np.ones(len(x))
for i in range(n_iter):
for xi,yi in zip(x,y):
grdient = (xi*yi-xi*(np.exp(w*xi)/(1+np.exp(w*x_i))))
w = w + alpha*gradient
return w
def loss(y,y_hat):
pass
def predict(x):
y_hat = w*x
线性回归
1. 建立目标函数
\]
2. 求解
\nabla J(w) &= \sum (\hat y_i - y_i) \frac{\partial\hat y}{\partial w} \\
&= \sum (\hat y_i - y)x_i
\end{aligned}
\]
求极小值,使用梯度下降:
\]
3. 实现
和逻辑回归比,只改变了求梯度方法
"""
只写了核心部分
"""
def fit(x,y,n_iter):
cal_gradient(x,y,alpha,n_iter)
def cal_grdient(x,y,alpha,n_iter):
"""sgd
"""
w = np.ones(len(x))
for i in range(n_iter):
for xi,yi in zip(x,y):
grdient = xi*(w*xi-yi)
w = w + alpha*gradient
return w
def loss(y,y_hat):
pass
def predict(x):
y_hat = w*x
逻辑回归与交叉熵
熵:
信息熵:衡量信息量大小
\[H(x) = -\sum^n_{i=1}p(x_i)log(p(x_i))
\]为什么取负号?
概率值越大,信息量越小(倾向于确定事件)
相对熵(KL散度):衡量两个概率分布间差异
\[D_{KL}(p||q) =\sum^n_{i=1}p(x_i)log(\frac{p(x_i)}{q(x_i)})
\]KL散度越小,表示\(p(x)\)与\(q(x)\)的分布更加接近
交叉熵
\[H(p,q) = -\sum^n_{i=1}p(x_i)log(q(x_i))
\]为什么使用交叉熵作为损失函数?
KL散度衡量真实分布与预测之间的差异,需要最小化KL散度。
KL = 交叉熵 - 信息熵,给定原样本分布p时,信息熵为常量,所以最小化交叉熵即为最小化KL散度。
对 0-1 分布,假设预测概率为p,交叉熵为:
\]
而逻辑回归似然函数为
\]
极大化似然函数相当于极小化交叉熵。
references:
机器学习实战
统计机器学习
https://blog.csdn.net/b1055077005/article/details/100152102
LR与LR?的更多相关文章
- LL LR SLR LALR 傻傻分不清
[转] 一:LR(0),SLR(1),规范LR(1),LALR(1)的关系 首先LL(1)分析法是自上而下的分析法.LR(0),LR(1),SLR(1),LALR(1)是自下而上的分析法. ...
- 逻辑回归LR
逻辑回归算法相信很多人都很熟悉,也算是我比较熟悉的算法之一了,毕业论文当时的项目就是用的这个算法.这个算法可能不想随机森林.SVM.神经网络.GBDT等分类算法那么复杂那么高深的样子,可是绝对不能小看 ...
- 编译系统中的LR与LL理解
编译原理:LL(1),LR(0),SLR(1),LALR(1),LR(1)对比 LL(1)定义:一个文法G是LL(1)的,当且仅当对于G的每一个非终结符A的任何两个不同产生式 A→α|β,下面的条件成 ...
- lr各种问题以及解决办法
LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件 遇到flight界面为空的解决 ...
- 软件测试面试(2)LR篇
一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...
- LR 常见问题收集及总结
一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...
- (转)深入理解SP、LR和PC
网址:http://blog.csdn.net/zhou1232006/article/details/6149548 深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益. 1.堆栈 ...
- GBDT与LR融合提升广告点击率预估模型
1GBDT和LR融合 LR模型是线性的,处理能力有限,所以要想处理大规模问题,需要大量人力进行特征工程,组合相似的特征,例如user和Ad维度的特征进行组合. GDBT天然适合做特 ...
- LR测试
LoadRunner种预测系统行性能负载测试工具通模拟千万用户实施并发负载及实性能监测式确认查找问题LoadRunner能够整企业架构进行测试通使用 LoadRunner企业能限度缩短测试间优化性能加 ...
随机推荐
- Series结构(常用)
1.创建 Series 对象 fandango = pd.read_csv("xxx.csv") series_rt = fandango["RottenTomatoes ...
- pandas第三方库
# 一维数组与常用操作 import pandas as pd # 设置输出结果列对齐 pd.set_option('display.unicode.ambiguous_as_wide',True) ...
- windows:驱动模块隐藏
windwos下想要搞点事,权限当然是越大越好:驱动模块天生在0环,和操作提供平级,大家互相是兄弟,所以很多外挂.木马.病毒都会使用驱动达到自己的目的.那么问题来了:PCHUNTER这种工具能查到系统 ...
- 我的强迫症系列之@Builder和建造者模式
前言 备受争议的Lombok,有的人喜欢它让代码更整洁,有的人不喜欢它,巴拉巴拉一堆原因.在我看来Lombok唯一的缺点可能就是需要安装插件了,但是对于业务开发的项目来说,它的优点远远超过缺点. 我们 ...
- 深入学习JDK源码系列之、ArrayList
前言 JDK源码解析系列文章,都是基于JDK8分析的,虽然JDK15马上要出来了,但是JDK8我还不会,我... 类图 实现了RandomAccess接口,可以随机访问 实现了Cloneable接口, ...
- QString字符串的查找与截取实例
QString是Qt中封装的字符串类,相对于标准库里的string,使用方法有些不同,个人感觉使用qt习惯后,感觉QString更好用,下面的代码主要是针对QString的字符查找.截取做的测试: # ...
- 分享一个内网穿透工具frp
首先简单介绍一下内网穿透: 内网穿透:通过公网,访问局域网里的IP地址与端口,这需要将局域网里的电脑端口映射到公网的端口上:这就需要用到反向代理,即在公网服务器上必须运行一个服务程序,然后在局域网中需 ...
- 谈谈Nginx和php之间是交互与通信的方式
Nginx是俄国人最早开发的Webserver,现在已经风靡全球,相信大家并不陌生.PHP也通过二十多年的发展来到了7系列版本,更加关注性能.这对搭档在最近这些年,叱咤风云,基本上LNMP成了当下的标 ...
- Prometheus监控神器-Rules篇
本章主要对如何使用Prometheus与Alertmanager组件集成配置,以及对警报规则 Rules 的俩种类型及其模板内容进行讲解. 与Alertmanager集成 Prometheus把产生的 ...
- MixNet:MixConv:Mixed Depthwise Convolution kernels