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企业能限度缩短测试间优化性能加 ...
随机推荐
- Django学习路31_使用 locals 简化 context 写法,点击班级显示该班学生信息
urls 中 进行注册 url(r'grades',views.grades) views 中编写函数 def grades(request): grades_list = Grade.objects ...
- 如何使用k3OS和Argo进行自动化边缘部署?
本文转自边缘计算k3s社区 前 言 随着Kubernetes生态系统的发展,新的技术正在被开发出来,以实现更广泛的应用和用例.边缘计算的发展推动了对其中一些技术的需求,以实现将Kubernetes部署 ...
- PHP tan() 函数
实例 返回不同数的正切: <?php高佣联盟 www.cgewang.comecho(tan(M_PI_4) . "<br>");echo(tan(0.50) . ...
- PHP soundex() 函数
实例 计算 "Hello" 的 soundex 键: <?php高佣联盟 www.cgewang.com$str = "Hello";echo sound ...
- LVS-DR:搭建HTTP和HTTPS负载均衡集群
目录 LVS-DR实战:搭建HTTP和HTTPS负载均衡集群 1. 搭建lvs-dr模式的http负载集群 1.1 LVS上配置IP 1.2 RS上配置arp内核参数 1.3 RS上配置VIP 1.4 ...
- 不要再问我MVC、MVP、MVVM了
网络上有很多类似的讨论.包括一些大v,比如 阮一峰:MVC,MVP 和 MVVM 的图示 廖雪峰:MVVM 司徒正美: 各自用一句话来概括MVC.MVP.MVVM的差异特点 ... 但是说的往往比较概 ...
- python3.4嵌套循环项目:买房分期付款(1)
#案例:买房分期付款24万(10年期限) i=1#定义年份sum1=0while i<=10: print("第",i,"年到了......") j=1# ...
- JAVA多线程之生产者 消费者模式 妈妈做面包案例
创建四个类 1.面包类 锅里只可以放10个面包 ---装面包的容器2.厨房 kitchen 生产面包 和消费面包 最多生产100个面包3.生产者4消费者5.测试类 多线程经典案例 import ja ...
- HourglassNet
- 【模式识别与机器学习】——3.5Fisher线性判别
---恢复内容开始--- 出发点 应用统计方法解决模式识别问题时,一再碰到的问题之一就是维数问题. 在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通. 因此,降低维数有时就会成为处理实际 ...