随机梯度下降的逻辑回归算法(SGDLR)

由于第一次实验的实验报告不在这台机器,先写这一算法吧。

SGDLR(the Stochastic Gradient Descent for Logistic Regression),要讲解这一算法,首先要把名字拆为几块。

1 随机   2 梯度下降   3逻辑回归

先贴一篇文章:http://blog.csdn.net/zouxy09/article/details/20319673

这篇文章中解释的还不错。

其实这一算法,通俗来讲是这样子的:

1、手中肯定有很多带有label标记的数据,这是训练集。

2、我们期望能够建立一个带参数的式子,来计算某种情况出现的概率,以便于后面预测测试集的类别的时候,计算它在每一类的概率,取概率大的为自己的类。

3、由于sigmoid函数的优势:连续,光滑,严格单调,关于(0,0.5)中心对称,形如下图,

  公式①

利用下面这个式子变换得到:

所以我们只需要计算出参数的值,就可以用公式①计算概率。

4、所有在训练集中出现的样本,已经真实存在了,所以它们带入计算出的概率应该是最大的,理想情况为1。根据这一特征来计算参数值。

5、式子并不是一个线性可解的,需要使用极大似然,这一算法不再赘述请自行谷歌。但是后来发现求参数的偏导数的时候,导数为0线性不可解,这时候就要用到梯度下降的算法。

6、所谓梯度下降的算法,事实上是从一个起点,一步步的试探,来回震荡,直到找到一个最低点。迭代公式如下:(这里的lamda是步长,自己设定,参数的初值也是自己设定)

普通的梯度下降需要每次都用所有样本加和,然后迭代到收敛。

7、那么随机梯度下降就是在普通的情况下,每次只迭代一个样本(注意:这个样本必须是随机抽的,如果有偏向,最后的结果会很难看),直到收敛。

8、利用以上的迭代公式可以得到参数的值。

9、如果存在多个分类,那么可以训练多个分类器,一类一个,每一个训练样本都只属于下面两类:“是这类”和“不是这类”。训练的时候也是训练N套参数。

对于一个测试样本,带入每一个分类器计算一遍概率,以概率最大的分类有效。

该算法依旧可以使用十次交叉验证检验效果。

时间: 2024-10-25 17:13:28

随机梯度下降的逻辑回归算法(SGDLR)的相关文章

随机梯度下降分类器和回归器

随机梯度下降分类器并不是一个独立的算法,而是一系列利用随机梯度下降求解参数的算法的集合. SGDClassifier(分类): from sklearn.linear_model import SGDClassifier clf = SGDClassifier(loss="hinge", penalty="l2") loss function(损失函数): 可以通过 loss 参数来设置.SGDClassifier 支持以下的 loss functions(损失函数

[Exercise]随机梯度下降、logistic回归

代码: 1 import numpy as np 2 import csv 3 import math as mt 4 5 def hypo(tt,xx): #hypothesis函数 6 exp=mt.e 7 tmp=0.0 8 for i in range(0,4): 9 tmp+=tt[i]*xx[i] 10 ans=mt.pow(exp,tmp)/(1+mt.pow(exp,tmp)) 11 return ans 12 13 def GDA(tt,iter): #随机梯度下降 14 fo

逻辑回归算法(MATLAB)

根据李航博士总结的统计学习三要素方法=模型+策略+算法,对应于逻辑回归 模型=基于单极型函数(逻辑函数)的条件概率模型 策略=经验损失对应的训练样本先验概率最大化 算法=随机梯度上升法 逻辑回归MATLAB代码比较简单,如下所示,循环对所有的样本,进行梯度上升算法 <span style="font-size:18px;">function [w]=LogisticRegression(x,y,learningRate,maxEpoch) % Logistic Regres

机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)

本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有样本的特征向量组成的矩阵 x(i) 是第i个样本包含的所有特征组成的向量x(i)=(x(i)1,x(i)2...,x(i)n) y(i) 第i个样本的label,每个样本只有一个label,y(i)是标量(一个数值) hθ(x(i)) :拟合函数,机器学习中可以用多种类型的拟合函数 θ 是函数变量,

对数几率回归法(梯度下降法,随机梯度下降与牛顿法)与线性判别法(LDA)

本文主要使用了对数几率回归法与线性判别法(LDA)对数据集(西瓜3.0)进行分类.其中在对数几率回归法中,求解最优权重W时,分别使用梯度下降法,随机梯度下降与牛顿法. 代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-05-09 15:03:50 4 # @Author : whb ([email protected]) 5 # @Link : ${link} 6 # @Version : $Id$

Spark MLlib Logistic Regression逻辑回归算法

1.1 逻辑回归算法 1.1.1 基础理论 logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测.g(z)可以将连续值映射到0和1上. 它与线性回归的不同点在于:为了将线性回归输出的很大范围的数,例如从负无穷到正无穷,压缩到0和1之间,这样的输出值表达为"可能性"才能说服广大民众.当然了,把大值压缩到这个范围还有个很好的好处,就是可以消除特别冒尖的变量的影响. Logistic函数(或称为Sigm

ng机器学习视频笔记(十五) ——大数据机器学习(随机梯度下降与map reduce)

ng机器学习视频笔记(十五) --大数据机器学习(随机梯度下降与map reduce) (转载请附上本文链接--linhxx) 一.概述 1.存在问题 当样本集非常大的时候,例如m=1亿,此时如果使用原来的梯度下降算法(也成为批量梯度下降算法(batch gradient descent),下同),则速度会非常慢,因为其每次遍历整个数据集,才完成1次的梯度下降的优化.即计算机执行1亿次的计算,仅仅完成1次的优化,因此速度非常慢. 2.数据量考虑 在使用全量数据,而不是摘取一部分数据来做机器学习,

机器学习入门-逻辑回归算法

梯度下降: 对theta1, theta2, theta3 分别求最快梯度下降的方向,然后根据给定的学习率,进行theta1, theta2, theta3的参数跟新 假定目标函数 J(theta) = 1/2m * np.sum(h(theta) - y)^2 / len(X) 梯度下降的策略分为3种, 批量梯度下降: 每次迭代输入全部的数据, 效果好,但耗时 随机梯度下降: 每次输入一个样本,时间快,迭代效果差 小批量梯度下降:每次输入部分数据,效果好,时间适中,一般都是16, 32, 64

4.机器学习之逻辑回归算法

理论上讲线性回归模型既可以用于回归,也可以用于分类.解决回归问题,可以用于连续目标值的预测.但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中.即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了.为了更好的实现分类,逻辑回归诞生了.逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性.逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也