LR基础理论详解
本人参考了大神的博客(https://blog.csdn.net/cyh_24/article/details/50359055),写的非常详细,在此整理一下要点
逻辑斯蒂分布
基础公式了解
二项逻辑回归模型
w为参数
了解几率、对数几率
(输出Y=1的对数几率是由输入x的线性函数表示的模型,这就是 逻辑回归模型。当 w⋅x的值越接近正无穷,P(Y=1|x) 概率值也就越接近1。)
参数化的模型求解
似然函数、对数似然函数、单点对数似然损失
(最大化似然函数和最小化对数似然损失函数实际上是的等价的)
梯度下降法求极值
关于不同优化算法的比较可参考我的另一篇博客(https://www.cnblogs.com/wujingqiao/p/9559969.html)
LR正则化
详见大神博客:https://blog.csdn.net/jinping_shi/article/details/52433975
L0范数:向量中非零元素的个数
L1范数:向量中各个元素的绝对值之和
L2范数:向量各元素的平方和然后开方
L1(稀疏规则算子Lasso regularization):L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||w||1
通过L1范数来近似L0范数,能够实现特征的自动选择:大部分特征输入和输出之间并没有多大关系。在最小化目标函数的时候考虑到这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会干扰了对正确的预测。稀疏规则化算子的引入就是为了完成特征的自动选择,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
L2(岭回归Ridge Regression)(权值衰减weight decay):L2正则化是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||2
使得 w 的每个元素都很小,都接近于0,但与 L1 范数不同,它不会让它等于0,而是接近于0,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象(奥卡姆剃刀Occam’s razor原理)。拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
L1会趋向于产生少量的特征,而其他的特征都是0,而 L2 会选择更多的特征,这些特征都会接近于0。
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合
为什么逻辑回归比线性回归要好?
(ps:某大神言论:LR和线性回归不适用于一类问题,没有可比较性。初学者就当做比较二者的不同吧)
虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。
线性回归在整个实数域内敏感度一致,而LR将输出规范到[0,1]之间,减小了预测范围。
逻辑回归与最大熵模型MaxEntropy的关系
- 逻辑回归是最大熵对应类别为二类时的特殊情况,也就是当逻辑回归类别扩展到多类别时,就是最大熵模型。
LR模型的数据缺失值填充问题
特征缺失(一般采用0填充)
这样该特征的系数将不做更新,所以更新时不会影响系数的值
sigmoid(0)=0.5,即它对结果的预测不具有任何倾向性,因此不会对误差项造成任何影响。(所以LR实际数据的特征值一般不为0,0用来填充缺失值或无效数据)
类标签缺失
- 类标签与特征不同,很难确定采用某个合适的值来替换,简单做法就是将其丢弃。(适用于LR,不适用与KNN)
LR基础理论详解的更多相关文章
- LR Analysis:详解FirstBufferTime
LR Analysis:详解FirstBufferTime 详解 第 一次缓冲时间 测试结果分析过程中,经常遇到第一次缓冲时间 FirstBufferTime,并且发现大 部分系统的响应时间也都浪 ...
- LR网页细分图中的时间详解
Web Page Diagnostics: 1)DNS Resolution:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网 ...
- (转)LR监控Linux系统性能计数器详解
从LR里面add measurement,填写linux机器的IP,出现所有unix/linux的计数器,包括cpu的,mem的,disk,network的.这里介绍几个常用的: (对于如何监控Lin ...
- LR测试工具性能指标详解
这篇文章将对LoadRunner测试工具的性能指标从以下三点进行详解. 第一点.Web资源分析是从服务器入手对Web服务器的性能分析. 1.Hits per Second "每秒点击次数&q ...
- EasyPR--中文开源车牌识别系统 开发详解(1)
在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao123 ...
- Redis快速入门详解
Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis ...
- loadrunner11.0 安装破解详解使用教程
loadrunner11.0 安装破解详解使用教程 来源:互联网 作者:佚名 时间:01-21 10:25:34 [大 中 小] 很多朋友下载了loadrunner11但不是很会使用,这里简单介绍下安 ...
- 【转】Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- Linux命令详解之–ls命令
今天开始为大家介绍下Linux中常用的命令,首先给大家介绍下Linux中使用频率最高的命令--ls命令. 更多Linux命令详情请看:Linux命令速查手册 linux ls命令用于显示指定工作目录下 ...
随机推荐
- split用法
例1:基本的分割split() var str="How are you doing today?" var a=str.split(" ")//分别输出5个单 ...
- Google - Reconstruct To Chain
/* 4. 给你一串input,比如: A -> B B -> C X -> Y Z -> X . . . 然后让你设计一个data structure来存这些关系,最后读完了 ...
- PythonStudy——函数的使用 Use of functions
# print(a) # a = 10 # 注意:函数必须先定义,后使用 # print(get_water) def get_water(water, money): print('收入你的%d元钱 ...
- Go并发编程实战 (郝林 著)
第1章 初识Go语言 1.1 语言特性 1.2 安装和设置 1.3 工程构造 1.3.1 工作区 1.3.2 GOPATH 1.3.3 源码文件 package main import ( " ...
- Dynamics CRM Plug-in
Plug-in 就是我们俗称的dll file 或者是assembly file. 里面有自定义的代码可以运行在服务器端 Plug-in Pipeline: 只有3个阶段可以做改动: Pre-Vali ...
- expect脚本实现ssh自动登录
1:简单的实现ssh登录 #!/usr/bin/expect set ip "10.0.0.142" set user "root" set password ...
- 初识nginx反向代理和缓存机制
实现的需求图: 环境: nginx缓存和反向代理服务器:192.168.0.224 实际存储数据机器:192.168.0.37 一.实现反向代理 1.安装nginx,两台服务器都需要安装 1)安装 ...
- Eslint 能自动格式化代码,为什么还要用 Prettier?
ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...
- PostgreSQL获取所有表名、字段名、字段类型、注释
转载自:http://blog.csdn.net/cicon/article/details/51577655 获取表名及注释: select relname as tabname,cast(obj_ ...
- C语言小程序:除去字符串中间不需要的字符(从小引发大思考)
#include <stdio.h>#include <conio.h> void fun(char *a, char *h, char *p){ char b[81]; ch ...