机器学习笔记—Logistic回归

本文申明:本系列笔记全部为原创内容,如有转载请申明原地址出处。谢谢

序言:what is logistic regression? Logistics 一词表示adj.逻辑的;[军]后勤学的n.[逻]数理逻辑;符号逻辑;[军]后勤学, “回归”是由英国著名生物学家兼统计学家高尔顿在研究人类遗传问题时提出来的。为了研究父代与子代身高的关系,高尔顿搜集了1078对父亲及其儿子的身高数据。他发现这些数据的散点图大致呈直线状态,也就是说,总的趋势是父亲的身高增加时,儿子的身高也倾向于增加。但是,高尔顿对试验数据进行了深入的分析,发现了一个很有趣的现象—回归效应。因为当父亲高于平均身高时,他们的儿子身高比他更高的概率要小于比他更矮的概率;父亲矮于平均身高时,他们的儿子身高比他更矮的概率要小于比他更高的概率。它反映了一个规律,即这两种身高父亲的儿子的身高,有向他们父辈的平均身高回归的趋势。对于这个一般结论的解释是:大自然具有一种约束力,使人类身高的分布相对稳定而不产生两极分化,这就是所谓的回归效应。这种方法就被称为回归。

那么logistic回归是不是就是用逻辑进行回归分析,然后做出分类?且听下文慢慢道来。

为了简化分析,我们首先把它定义为一个二分问题,例如:

if x>0.5

print 1

else

print 0

对于现实问题,0.5这个地方一定是一个大的跳跃,那我们该如何定义这个函数呢。

那我们就得从我们伟大的前辈那取经了,我们找到一个叫做Sigmoid的东西,这个函数图像如下:

大家看这个函数6不6.

现在我们为了实现logistic回归分类器,我们把数据的特征都乘以一个回归系数(这个回归系数是通过数据学习到的),把这些值加起来,带进我们的sigmoid函数:

,进而得到一个范围在0~1之间的数值,任何大于0.5的数据被分入1类,小于0.5的都被分到0类。所以,logistic回归也可是说是一种概率估计。

既然模型已经建立了,那我们接下来要干嘛呢?那是不是变成了确定那个回归系数,那么我们的分类模型是不是就建立了,但是这个最佳模型系数(回归系数)怎么确定呢?

下面我给出是两种方法,大家看看哪种方法比较好:

方法一:梯度上升算法

梯度上升算法的思想是:函数J(A)在某点AK的梯度G[J(AK)]是一个向量,它的方向与过点AK 的等量面J(AK)=C的法线方向重合,指向J(AK)增加的一方,是这个函数变化率最大的方向。相反,负方向就是减少的最快方向,所以求这个函数的最大值或者最小值时,分别沿着正梯度和负梯度方向搜索有可能最快地找到最小值。

梯度算法实现:以梯度上升算法为例,先任意选择一个初始的权向量A1(一般为0)然后计算A1上的梯度G[J(A1)],从A1出发在最陡的方向上移动一个距离d(自己设置)到达A2.那么可以采用下面公式从AK推到AK+1.

AK+1=AK-d G[J(AK)]

我们来补充一下什么叫准则函数 (criterion function):

用具体函数评价系统所采取策略优劣的准则时,称为准则函数。根据实际问题的类型和...准则函数的取值取决于决策者所采取的策略。如果采取某种策略能使准则函数达到最优值时,称这种策略为这种准则的最优策略。

logistic准则函数的定义是:

为什么是这个呢,就是假如我本来属于男性,你非要让我成为女性,是不是分类错误?那么就是负数,我如果是女性你给我分类成男性,是不是也不妥?我们把这些错误的相加,·值越小越好。这样不就可以判别我们的分类器正确率了吗

因为J(AK)的第j个梯度分量是。。根据准则函数可以看出:

把这个式子带入到AK+1=AK-d G[J(AK)]可得:

梯度上升算法示意图:

你看那个p一步一个脚印似魔鬼的步伐。这样迭代下去就会趋于稳定。

方法二:固定增量算法

梯度算法缺点:

靠近极值时收敛速度减慢。

直线搜索时可能会产生一些问题。

可能会“之字形”地变化。

那么我们提出固定增量算法:

1全部的样本看成一个序列,每当前一步迭代的权向量把某个样本错误分类是,就对这个权向量作一次修正,而不是等当前向量对全部样本计算后在找出错分类的样本集进行修改。

2每次迭代d保持不变。

设现在有两个分类C和B,我们现在要用一个固定算法决定一个超平面ATY=0,是它能够正确的划分开C和B。开始我们可以任意假定A和B属于决策界面的哪一边。然后依次把A和B中的曾广模式Y取出,计算A与Y的内积ATY。根据内积,权向量A用以下规则调整;

(1) 如果Y∈C,而ATY≤0,则用A+Y代替A;

(2) 如果Y∈B,而ATY≥0,则用A-Y代替A;

(3) 如果Y∈C,而ATY>0,则A保持不变。

(4) 如果Y∈B,而ATY<0,则A保持不变。

迭代终止条件:

如果在一次迭代中权向量A已经保持不变,则权向量A即解权向量A^,所以在程序收敛之后就不需要也没必要进行进一步的迭代了。

时间: 2024-10-17 02:24:52

机器学习笔记—Logistic回归的相关文章

机器学习之logistic回归与分类

logistic回归与分类是一种简单的分类算法.在分类的过程中只需要找到一个划分不同类的权重向量即可,对新的数据只需要乘上这个向量并比较就可以得到分类.比如下图的二分类问题: 每个样本点可以看成包含两个特征(x1,x2),现在需要把他们分开,如果这是训练集,他们本身属于哪一个类是已知的,比如说蓝色的属于0类,红色的属于1类,现在我们想通过这些数据建立一个分类标准可以将他们分开,这样再来了一个不知道类别的数据,我们看看这个标准就知道他是属于哪一类的. 像上面这个线性的,那么我们可以建立一个函数模型

机器学习实战——Logistic回归

回归概述(个人理解的总结) 回归是数学中的一种模拟离散数据点的数学模型的方法,拟合一个连续的函数从而可以对未知的离散数据点进行分类或预测.这种方法有一个统一的形式,给定n维特征的数据集合,对任意一个数据点Xi={x(1)i,x(2)i,...,x(n)i}的每个维度都有一个回归系数wi与之对应,整个模型就存在一个系数向量w={w1,w2...wn}.如果是系数向量w与特征Xi的线性组合,那么就是一个n空间下的超平面,如果对应分类问题,那么这个超平面就是分类器的决策平面(分类超平面).由于线性组合

[机器学习实战] Logistic回归

1. Logistic回归: 1)优点:计算代价不高,易于理解和实现: 2)缺点:容易欠拟合,分类精度可能不高: 3)适用数据类型:数值型和标称型数据: 2. 分类思想: 根据现有数据对分类边界线建立回归公式,以此进行分类. 这里借助sigmoid函数,其特点为当z为0时,sigmoid函数值为0.5:随着z的增大,对应的sigmoid值将逼近1: 而随着z的减小,sigmoid值将逼近0. σ(z) = 1/(1 + e-z) 上述 z = w0x0 + w1x1 + w2x2 + ....

机器学习算法-logistic回归算法

Logistic回归算法调试 一.算法原理 Logistic回归算法是一种优化算法,主要用用于只有两种标签的分类问题.其原理为对一些数据点用一条直线去拟合,对数据集进行划分.从广义上来讲这也是一种多元线性回归方法,所不同的是这种算法需要找出的是能够最大可能地将两个类别划分开来而不是根据直线关系预测因变量的值.Logistic回归算法的核心部分是sigmoid函数: 其中,xi为数据集的第i个特征.定义损失函数损失函数: 损失函数越小表明曲线拟合的效果就越好.利用梯度向上法更新x的系数W,求出W的

机器学习:logistic回归

逻辑回归是一个形式是Y=1/(1+E(-X))的函数,它的特点是: 1, 当X>0,随着X增大,Y很快的接近1: 2,当x<0,随着X的减小,Y很快的接近0: 3,当X=0时,Y=1/2. 由于逻辑回归的这种特性(在0-1之间连续),它被用来判断一个学习算法是否正确. 除了正确和不正确的结果之外,使用逻辑回归的好处在于,它还能告诉你,你离正确的结果还差多少,从而引导你向正确的方向前进.因此它常常和梯度上升的算法结合起来.下面的代码体现了这样的例子: 输入参数1是100行,2列的矩阵: 输入参数

机器学习基础-Logistic回归2

随机梯度上升法--一次仅用一个样本点来更新回归系数(因为可以在新样本到来时对分类器进行增量式更新,因而属于在线学习算法) 梯度上升法在每次更新回归系统时都需要遍历整个数据集,该方法在处理100个左右的数据集时尚可,但如果有数十亿样本和成千上万的特征,那么该方法的计算复杂度太高了. 随机梯度上升算法伪代码: 所有回归系数初始化为1 对数据集中每个样本 计算该样本的梯度 使用alpha*gradient更新回归系数值 返回回归系数值 def stocGradAscent0(dataMatrix, c

机器学习实战 logistic回归 python代码

# -*- coding: utf-8 -*- """ Created on Sun Aug 06 15:57:18 2017 @author: mdz """ '''http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=9162199&id=4223505''' import numpy as np #读取数据 def loadDataSet(): dataList=[]

机器学习之logistic分类线性与非线性实验(续)

本节续上节 机器学习之logistic回归与分类 对logistic分类的线性与非线性进行实验.上节中的"种子"分类实例中,样本虽然有7维,但是很大很大程度上符合线性可分的,为了在说明上节中的那种logistic对于非线性不可分,进行如下的两组样本进行实验,一组线性,一组非线性,样本如下: 线性样本: 非线性样本: 为了防止完全可分,在1,2类样本的分界面上重叠一部分样本,也就是说这部分样本很难分出来,图中的样本也可以看出来. 线性与非线性样本都包含两类,每类100个样本点. 先对线性

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可