机器学习--逻辑回归--牛顿法的非向量实现

提要:今天讲的牛顿法与拟牛顿法是求解无约束问题最优化方法的常用方法。
假设我们求下面函数的最小值:
假设f(x)具有连续的二阶的连续偏导数,假设第K次迭代值为xk的值,那么可将f(X)在xk附近进行二阶泰勒展开得到:
我们对上述公式求导可得:
假设其中可逆,我们就可以得到牛顿法的迭代公式为:
这样就可以得到牛顿法的迭代公式了。
牛顿法算法如下:
输入:目标函数f(X),梯度▽f(x),海赛矩阵H(x),精度要求ε;
输出:f(x)的极小点x*.
步骤一:取初始点x0,置k=0
步骤二:计算梯度▽f(x)
步骤三:||▽f(x)||〈ε,那么停止计算得到的x*=xk。
步骤四:计算H(x)
步骤6:转步骤二
牛顿法的缺点:牛顿法收敛速度快,但是要计算二阶偏导数矩阵及其逆阵,计算量过大。
二 拟牛顿法
拟牛顿法与原始牛顿法的区别在于增加了沿牛顿方向的一维搜索,其迭代公式为:
其中为牛顿方向,是由一维搜索的步长,也就是满足:
其实牛顿法就是阻尼牛顿法步长为1的特殊情况。
拟牛顿法算法:
输入:目标函数f(X),梯度▽f(x),海赛矩阵H(x),精度要求ε;
输出:f(x)的极小点x*.
步骤一:取初始点x0,置k=0
步骤二:计算梯度▽f(x)
步骤三:||▽f(x)||〈ε,那么停止计算得到的x*=xk。
步骤四:计算H(x)
步骤五:从xk出发,沿着dk方向作一维搜索,
步骤七:转步骤二
阅读(...) 评论()监督学习--分类和逻辑回归
本章主要内容:逻辑回归、学习算法的感知器、牛顿方法
我们现在准备讨论分类问题。这根回归问题很像,只不过我们想要预测的y值被包含在一个小的离散数据集里。首先,我们先来讨论下二元分类问题,在这里,y只能去0或1两个值(我们这里大部分讨论的都会被推广到多元分类案例中)。比如,我们试图做一个垃圾邮件分类器,这里x将会是邮件里的一些特征值,如果是垃圾邮件,则y为1,否则y为0。0也被叫做负类,1被叫做正类,它们有时候也会被“-”或“+”来表示。给定x,其相应的y也被叫做训练样本的标签。
我们可以忽略y是离散元素来处理分类问题,并且用之前的线性回归算法来预测x值的y。但是,很容易就能构造个例子来表明这个方法处理分类很差劲。直观地,当我们知道y
∈ {0, 1}时,让hθ(x)的取值大于1或者小于0也没有什么意义。
所以我们得改变假设函数hθ(x),其表达式变为:
其中:g(θT x)称作为逻辑函数或者s型函数。下面是其图像:
现在,我们就先选择使用g函数。虽然其他的从0到1的平滑函数都可以使用,但是我们之后会知道一些理由(当我们讨论GLMs,和生成学习算法的时候),选取逻辑函数是个非常自然的结果。逻辑函数的导数有一些有用的性质我们需要事先了解:
那么,对于这个逻辑回归模型,我们怎么去求θ呢?如同我们知道的最小二乘回归一样,在一组假设的条件下,我们推导出其相当于最大化似然估计,我们也让分类模型有一组概率假设,然后通过最大似然概率来求参数值。
我们假设:
可以更加简洁地写成:
假设m组训练样本是独立生成的,则我们可以写出关于参数的似然函数:
跟之前一样,求它log值的最大值更加容易:
我们怎么最大化这个似然概率呢?跟我们之前在线性回归案例中推导的相似,我们可以用梯度上升法。写成向量表达式则为:
要注意,这里是正号而不是负号,因为我们这里要求的是最大化而不是最小化。我们仅仅先从一组训练样本(x,y)开始:
由此我们可以得到:
与LMS更新规则相比,它们几乎一样,但是却不是同一个算法,因为此时的假设函数h并是一个关于θT
x的非线性函数。这仅仅是个巧合,还是在这背后有着某种更深层次的原因?我们将会在GLM模型中来解决。
补充:学习算法的感知器
考虑这样的问题,改变这个逻辑回归方法去强迫它的输出值非0即1。如果这样做,那么自然地就要改变g函数的定义,让其变成一个临界函数:
用这中g函数我们可以得到如下更新规则:
这样我们就得到了学习算法感知器。
在上世纪60年代,这种感知器被用来做大脑研究的个人神经粗略模型。因为这个算法很简单,所以在我们之后的学习理论中,它也会给我们分析提供一个开始点。这个感知器表面上根我们讨论的其他算法很相像,实际上它根逻辑回归和最小二乘回归是不同类别的算法。特别是,给感知器的预测赋予一个有意义的概率解释,或则像最大似然概率估计算法一样推导感知器是非常难的。
另外一个最大化l(θ)的算法(牛顿方法)
回到逻辑回归,依然让g为逻辑函数,我们来讨论下另一个不同的最小化l(θ)算法。
开始之前,我们思考下用来寻找函数零点的牛顿方法。如果我们要找f(θ) =
0的θ值,那么牛顿方法的更新规则如下:
这个方法有一个比较自然的解释:我们可以近似地认为函数f是函数f在点θ处的导数,我们要求函数f的零点,就让下一个点θ为目前导函数的零点。
下图是牛顿方法在应用过程中的变化:
左图是y=0与函数f的图像。我们试图找出θ使得f(θ)=0。
牛顿方法给出了一种找出函数零点的途径。我们怎么用它来最大化函数l(θ)呢?l的最大值相当于其一阶导数等于0时的值。所以,我们让f(θ)=l'(θ),可以用相同的算方最大化l,由此我们得到θ的更新规则:
(要是我们要用牛顿方法求函数的最小值,会有什么变化?)
在我们要处理的逻辑回归中,θ是个向量,所以我们要将牛顿方法推广到这里。通过下面的更新方式可以应用广义牛顿方法到多为集合里(也叫牛顿-拉普森方法):
牛顿方法典型的好处就是它比(批)梯度下降有更快的收敛速度,需要更少的迭代次数就能达到最小值。但是,牛顿方法的一次迭代要比梯度下降法的一次迭代繁琐得多,因为它要找到并计算一个n阶Hessian矩阵的逆(但只要n不是很大,它的速度总体上来说还是更快的)。当用牛顿方法来最大化逻辑回归的log似然概率函数l(θ)时,
这样的方法也叫做 Fisher scoring。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。机器学习实战及Python实现――逻辑回归_资讯_突袭网-提供留学,移民,理财,培训,美容,整形,高考,外汇,印刷,健康,建材等信息
当前位置&:&&&&机器学习实战及Python实现――逻辑回归
热门标签:&
机器学习实战及Python实现――逻辑回归
编辑:章玉评论:
本篇讲述逻辑回归的机器学习算法和代码实现,具体内容包括该算法的基本概念、算法的优缺点、算法实施步骤,Python代码实现等相关内容。1、逻辑回归基本概念逻辑回归是在线性回归的基础上,增加一个转化函数,能够将预测值映射到【0,1】之间,以0.5为分界线,从而达到分类的目的。其中经常用到的转化函数是sigmoid:该算法在预测广告点击,预测疾病等方面得到广泛应用,输出结果是概率值,可以适当调整阈值,来选择预测结果。2、逻辑回归优缺点逻辑回归的优点:该模型算法得出结果可解释性强,并可通过随机梯度下降算法能够实现在线学习,随着样本增加可调整优化各属性系数,增强预测能力。逻辑回归的缺点:对共线性比较敏感,如果相关属性较多,将会削弱独立属性,造成模型有偏。3、逻辑回归基本步骤逻辑回归的主要步骤包括以下步骤:(1)输入数据并进行数据预处理,对数据进行相关性分析,减少共线性;(2)确定逻辑函数和损失函数,包括正则化等;(3)确定求解最优算法,如批量梯度下降法,随机梯度下降法,牛顿法等;(4)得出各属性系数,计算出逻辑回归公式;(5)对模型进行准确验证和性能评估。4、Python实现代码【样本说明】该样本是对预测患有疝气病马的死活。共包含366个样本,其中199个训练集和67个测试;其中共有21个属性。【代码实现】该代码从数据导入、数据处理、模型建立、性能评估等方面进行Python编码。【模型性能】整体预测准确率达到73%【属性系数】各属性的具体系数值为:5、经验学习总结其实逻辑回归是建立上线性方程之上,两则统称为广义线性模型。在该模型学习的过程中,最好能够手动推导下公式,以加深对该算法模型过程的理解深度。做到知其然也知所以然。该算法也是较常用的模型,并在商业中得到实践应用。另外,在数据建模比赛中,该算法也是作为基础算法,为后续的其他模型设计做基础。 goBackHome(page_num);
(转载请注明出处和)

我要回帖

 

随机推荐