逻辑回归算法LR。

简介

逻辑回归是机器学习从统计学领域借鉴的另一种技术。它是二进制分类问题的首选方法(有两个类值的问题)。

 

Logistic回归就像线性回归,目标是找到权重每个输入变量的系数值。

与线性回归不同的是,对输出的预测用一个叫做logistic函数的非线性函数来进行转换。

logistic函数看起来像一个大S,它将把任何值转换为0到1的范围。我们可以将一个规则应用到逻辑函数的输出中,将值的值设为0和1(例如,如果小于0.5,则输出1)并预测一个类值。

由于模型的学习方式,逻辑回归的预测也可以作为一个给定数据实例的概率,属于第0类或第1类。这对于需要为预测提供更多理由的问题很有用。

与线性回归一样,当删除与输出变量无关的属性和非常相似(相关)的属性时,逻辑回归的效果会更好。

这是一个快速学习和有效的二元分类问题的模型。

碰到二分类的机器学习问题,企业级应用多选择逻辑回归的原因:

  • 数据的丰富性比模型的选择要重要
  • 模型的数据吞吐能力(企业级应用具有大规模海量数据)
  • 求解算法的并行化难度
  • 模型的迭代速度
  • 特征的自解释性即basecase控制

回归方法的核心就是为函数找到最合适的参数,使得函数的值和样本的值最接近。例如线性回归(Linear regression)就是对于函数f(x)=ax+b,找到最合适的a,b。

LR拟合的就不是线性函数了,它拟合的是一个概率学中的函数,f(x)的值这时候就反映了样本属于这个类的概率。

LR同样是很多分类算法的基础组件,它的好处是输出值自然地落在0到1之间,并且有概率意义。

因为LR本质上是一个线性的分类器,所以处理不好特征之间相关的情况

虽然效果一般,却胜在模型清晰,背后的概率学经得住推敲。它拟合出来的参数就代表了每一个特征(feature)对结果的影响。也是一个理解数据的好工具。

优点:

  实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;

缺点:

  容易欠拟合,分类精度可能不高

LR求解

有很多种求解LR问题的方法,下面是一部分。主要分为离线和在线方法。

L1范数求解

用L1范数求解,但是L1范数不是处处可导的(一阶导在0处不可导),所以我们采用虚梯度来计算。

离线方法

                   最优步长搜索方法可以考虑line search方法。

          

         

                 

关于two-loop,更多可参考2003年微软研究院的代码实现。

企业级应用主要考虑的是性能精度的权衡。更看重数据的稀疏性。这也是采用L1范数的原因,因为L1范数具有稀疏性。

 OFFLINE求解的假设

  1. 将实际场景中的样本分为训练集和测试集,它们应该是近似同分布的。
  2. 模型中国选择的特征具有良好的泛化性。

Batch训练

   

梯度截断——引入稀疏解

               

          RDA  对偶平均 ,微软在2010年提出。

   公式来自于作者在2014年提出。FTRL已经用于很多公司的online服务中。也算是online learning的一个标配。

online引入的问题

  • sampling是否有收益
  • online训练的瓶颈
  • batch/online ensembling
  • online场景下特征如何调研

Logistic Regression Algorithm的更多相关文章

  1. Logistic Regression Algorithm解决分类问题

    在线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的.所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值.如根据房屋面积预测 ...

  2. 使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真

    所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...

  3. [OpenCV] Samples 06: [ML] logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

  4. Logistic Regression vs Decision Trees vs SVM: Part II

    This is the 2nd part of the series. Read the first part here: Logistic Regression Vs Decision Trees ...

  5. 线性模型(3):Logistic Regression

    此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一)Logistic Regression 原理 对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式 ...

  6. Logistic Regression 算法向量化实现及心得

    Author: 相忠良(Zhong-Liang Xiang) Email: ugoood@163.com Date: Sep. 23st, 2017 根据 Andrew Ng 老师的深度学习课程课后作 ...

  7. [OpenCV] Samples 06: logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

  8. SparkMLlib之 logistic regression源码分析

    最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...

  9. Logistic Regression Vs Decision Trees Vs SVM: Part I

    Classification is one of the major problems that we solve while working on standard business problem ...

随机推荐

  1. Python学习之路:列表(List)的append()、extend()与insert()方法

    相同点 这三种方法的作用都是为列表(List)添加值 它们的语法为: list.append(obj)list.extend(seq)list.insert(index,obj) #此处index为对 ...

  2. 【PYQT5快速开发】重定义边框、QSS美化皮肤主题

    在用qt designer的基础上重定义边框 前言 作为一名技术工作者,偶有使用.开发工具的需求.制作工具时,既不想在界面上花太懂功夫,又想要工具模样与众不同,结果找半天找不到一键换装的功能/拍砖. ...

  3. 【转】ZYNQ中三种实现GPIO的方式

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/husipeng86/article/det ...

  4. Drools入门

    文章转载自:http://cwqcwq.iteye.com/blog/397869 一.背景知识:  1.什么是规则引擎  Java规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的 ...

  5. 如何配置这个maven仓库的源http://mvnrepository.com/repos

    http://mvnrepository.com/repos 主要是ID .mirrorof.name 怎么配置,这个网站上有spring5.0的,别的仓库没有,我需要这个源. 原文地址:https: ...

  6. windows 10 如何设定计划任务自动执行 python 脚本?

    我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行. ...

  7. C# 快捷键(总结)

    C# 展开和折叠代码的快捷键 VS2005代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M +  ...

  8. redis cluster slots数量 为何是16384(2的14次方)

    Redis 集群并没有使用一致性hash,而是引入了哈希槽的概念. Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分has ...

  9. Golang_小程序学golang

    1 前置条件 Golang基本情况自行baidu/google 1.1 环境与工具 IDE:liteide (windows ).mingw-w64 (gcc) DB:SQL Server 2008 ...

  10. java之spring mvc之初始spring mvc

    1. mvc : mvc框架是处理 http请求和响应的框架 2. mvc 做的事情有哪些: 将 url 映射到一个java的处理方法上 将表单数据提交到 java 类中 将后台 java 类处理的结 ...