Logistic Regression Algorithm
逻辑回归算法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求解的假设:
- 将实际场景中的样本分为训练集和测试集,它们应该是近似同分布的。
- 模型中国选择的特征具有良好的泛化性。
Batch训练


梯度截断——引入稀疏解

RDA 对偶平均 ,微软在2010年提出。
公式来自于作者在2014年提出。FTRL已经用于很多公司的online服务中。也算是online learning的一个标配。
online引入的问题:
- sampling是否有收益
- online训练的瓶颈
- batch/online ensembling
- online场景下特征如何调研
Logistic Regression Algorithm的更多相关文章
- Logistic Regression Algorithm解决分类问题
在线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的.所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值.如根据房屋面积预测 ...
- 使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真
所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...
- [OpenCV] Samples 06: [ML] logistic regression
logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...
- 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 ...
- 线性模型(3):Logistic Regression
此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一)Logistic Regression 原理 对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式 ...
- Logistic Regression 算法向量化实现及心得
Author: 相忠良(Zhong-Liang Xiang) Email: ugoood@163.com Date: Sep. 23st, 2017 根据 Andrew Ng 老师的深度学习课程课后作 ...
- [OpenCV] Samples 06: logistic regression
logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...
- SparkMLlib之 logistic regression源码分析
最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...
- 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 ...
随机推荐
- HTTP: Request中的post和get区别
* GET和POST之间的主要区别 1.GET是从服务器上获取数据,POST是向服务器传送数据. 2.在客户端, get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段 ...
- Educational Codeforces Round 75 (Rated for Div. 2)
知识普及: Educational使用拓展ACM赛制,没有现场hack,比赛后有12h的全网hack时间. rank按通过题数排名,若通过题数相等则按罚时排名. (罚时计算方式:第一次通过每题的时间之 ...
- web API .net - .net core 对比学习-文件目录概述
个人正在学习.net web Api的相关知识,因此用这一系列博客做一记录. 1. 首先我们分别创建 .net web api 项目和 .net core web api 项目. 2. 我们首先比较一 ...
- mysql-配置与使用(跳过原始密码登陆)
目录 简单的使用步骤 环境变量的操作 配置文件的使用 查找进程 mysql 5.6 管理员密码的设置 简单的使用步骤 bin 下面有mysqld.exe 是服务端程序, mysql.exe 是客户端程 ...
- 手写DAO框架(七)-如何保证连接可用
版权声明:本文为博客园博主「水木桶」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://www.cnblogs.com/shuimutong/p ...
- 英语juelrye宝石
juelrye 外语词汇,代指宝石珠宝稀有的物件 中文名珠宝装饰 外文名juelrye 目录 释义 juelrye Noun(名词) Uncountable(不可数) 1. juelrye des ...
- VirtualBox下设置 XP虚拟机桥接模式
virtualBox下设置虚拟机桥接模式
- configure生成makefile的配置项说明
一般Linux软件使用configure来检测系统生成makefile文件之后可使用make来编译安装软件. configure的配置选项有哪些呢?现简单收集如下,不断更新中. 以gcc -v为例,可 ...
- 关于free的使用疑惑
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "mainc26. ...
- javascript数据结构与算法——列表
前言: 1. 数据的存储结构顺序不重要,也不必对数据进行查找,列表就是一种很好的数据存储结构; 2.此列表采用仿原生数组的原型链上的方法来写,具体可以参考MDN数组介绍,并么有用prototype来构 ...