精华内容
下载资源
问答
  • 逻辑回归函数求导过程

    千次阅读 2019-01-28 11:28:58
    逻辑回归函数形式为: 它在二维坐标系中的表现形式是这样的: 因为其外形类似S形状,因而又称为Sigmoid函数。sigmoid,英/'sɪgmɒɪd/n. 乙状结肠(等于sigmoidal);S状弯曲。 导数公式 逻辑回归函数的导数公式...

    基础公式

    逻辑回归函数形式为:
    在这里插入图片描述
    它在二维坐标系中的表现形式是这样的:
    在这里插入图片描述
    因为其外形类似S形状,因而又称为Sigmoid函数。sigmoid,英/'sɪgmɒɪd/n. 乙状结肠(等于sigmoidal);S状弯曲。

    导数公式

    逻辑回归函数的导数公式为:
    在这里插入图片描述
    这个公式怎么推导的呢,查了下数学资料,要点是除法求导公式和指数求导公式。得出推导过程如下:
    在这里插入图片描述

    启示录

    当年读书时,不知道高等数学具体在计算机中的应用过程,所以糊里糊涂的。现在看到相关的技术知识,反观公式时,奈何有种时过境迁的感觉,年龄大了,脑容量不够用啊……

    展开全文
  • 逻辑回归相关公式 逻辑回归预测公式: z = w(T) x + b sigmoid激活函数: y' = a = ????(z) ????(x) = 1/(1-e^(-z)) 损失函数: L(a,y) = -( ylog(a) + (1-y) * log(1-a) ) 对最终函数(损失函数L)求偏导结果 ...

    逻辑回归相关公式

    我们以单个训练样本为例,逻辑回归预测公式:

    z = w(T) x + b
    

    sigmoid激活函数:

    y' = a = 𝝈(z) 
    
    𝝈(z) = 1/(1-e^(-z))
    

    损失函数:

    L(a,y) = -( ylog(a) + (1-y) * log(1-a) )
    

    对最终函数(损失函数L)求偏导结果

    • 损失函数L 对 激活函数a 求偏导:
    da = dL/da = -(y/a) + (1-y)/(1-a)
    
    • ① sigmoid 对 预测结果z 求偏导:
    da/dz= a(1-a)
    
    • ② 损失函数 对 预测结果z 求偏导:
    dz = dL/dz = da * a(1-a) = a-y
    
    • 损失函数L 对 权重w、阈值b求偏导(其中i表示第i个样本)
    dw(i) = dL/dw(i) = dz * x(i)
    
    db= dL/db = dz
    

    具体求导过程如下:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    求导公式:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 有了前面的准备,可以用Theano实现一个逻辑回归程序,逻辑回归是典型的有监督学习。 为了形象,这里我们假设分类任务是区分人与狗的照片。   首先是生成随机数对象 importnumpy importtheano importtheano....

    有了前面的准备,可以用Theano实现一个逻辑回归程序,逻辑回归是典型的有监督学习

    为了形象,这里我们假设分类任务是区分人与狗的照片

     

    首先是生成随机数对象

    importnumpy
    importtheano
    importtheano.tensor as T
    rng= numpy.random

    数据初始化

    有400张照片,这些照片不是人的就是狗的。

    每张照片是28*28=784的维度。

    D[0]是训练集,是个400*784的矩阵,每一行都是一张照片。

    D[1]是每张照片对应的标签,用来记录这张照片是人还是狗。

    training_steps是迭代上限。

    N= 400
    feats= 784
    D= (rng.randn(N, feats), rng.randint(size=N, low=0, high=2))
    training_steps= 10000

    #Declare Theano symbolic variables
    x= T.matrix("x")
    y= T.vector("y")
    w= theano.shared(rng.randn(feats), name="w")
    b= theano.shared(0., name="b")
    print"Initial model:"
    printw.get_value(), b.get_value()

    x是输入的训练集,是个矩阵,把D[0]赋值给它。

    y是标签,是个列向量,400个样本所以有400维。把D[1]赋给它。

    w是权重列向量,维数为图像的尺寸784维。

    b是偏倚项向量,初始值都是0,这里没写成向量是因为之后要广播形式。

     

    #Construct Theano expression graph
    p_1= 1 / (1 + T.exp(-T.dot(x, w) - b))   #Probability that target = 1
    prediction= p_1 > 0.5                    # Theprediction thresholded
    xent= -y * T.log(p_1) - (1-y) * T.log(1-p_1) # Cross-entropy loss function
    cost= xent.mean() + 0.01 * (w ** 2).sum()# The cost to minimize
    gw,gb = T.grad(cost, [w, b])             #Compute the gradient of the cost
                                              # (we shall return to this in a
                                              #following section of this tutorial)

    这里是函数的主干部分,涉及到3个公式

    1.判定函数


    2.代价函数


    3.总目标函数


    第二项是权重衰减项,减小权重的幅度,用来防止过拟合的。

    #Compile
    train= theano.function(
              inputs=[x,y],
              outputs=[prediction, xent],
              updates=((w, w - 0.1 * gw), (b, b -0.1 * gb)))
    predict= theano.function(inputs=[x], outputs=prediction)

    构造预测和训练函数。

     

    #Train
    fori in range(training_steps):
        pred,err = train(D[0], D[1])
    print"Final model:"
    printw.get_value(), b.get_value()
    print"target values for D:", D[1]
    print"prediction on D:", predict(D[0])

    这里算过之后发现,经过10000次训练,预测结果与标签已经完全相同了。


    欢迎参与讨论并关注本博客微博以及知乎个人主页后续内容继续更新哦~

    转载请您尊重作者的劳动,完整保留上述文字以及文章链接,谢谢您的支持!

    展开全文
  • 逻辑回归函数的由来

      记得刚工作的时候,用的第一个模型就是逻辑回归。虽然从大二就参加了全国大学生数学建模比赛,直到研究生一直在参加数学建模,也获了大大小小一些奖。但是这些都是纸上谈兵,只要结果好、程序高级、图文美观,就能得到评审老师的青睐。和实际模型上线,真金白银实战还是有很大的区别。

      逻辑回归已经在各大银行和公司都实际运用于业务,已经有很多前辈写过逻辑回归。本文将从我实际应用的角度阐述逻辑回归的由来,致力于让逻辑回归变得清晰、易懂。逻辑回归又叫对数几率回归,是一种广义线性回归分析模型。虽然名字里有回归,但其实是分类模型,常用于二分类。

      这篇文章是逻辑回归三部曲中的第一部,介绍逻辑回归的由来和为什么会使用sigmod函数。如果觉得看起来有难度也可以先看逻辑回归原理一文,再回过头来看这篇文章。

      

    接下来将从广义线性模型、指数分布族、伯努利分布阐释逻辑回归和sigmod函数的由来。
      

    一、广义线性模型(GLM)

      
      由于线性回归往往用来预测连续值,但是受限于其连续性的特征,对于分类问题往往效果不好。且线性模型的值域为(-∞,∞),对于某些现实问题可能出现无意义的情况。比如某店铺用线性回归模型做预测:温度每上升10摄氏度,购买毛衣的人数会下降100人。现在的温度为5摄氏度,购买毛衣的人数为80人。按此模型预测,当温度为15度时,购买毛衣的人数为-20人。显然人数不可能为负数,该模型的预测结果有违常识。

      但是线性回归有“模型简单且效果还可以”的特点,为了保留该特点,又想让它能够进行分类。因此,考虑对线性回归的预测值做一次处理,这个处理函数称为连接函数。通过引进处理函数解决线性回归在分类问题中效果不好和值域在现实情况中无意义的问题。从而推导出了广义线性模型的概念:
      
    在这里插入图片描述

    给定x和参数θ后,广义线性模型需要满足以下三个假设:

    ① p(y|x;θ)服从指数分布族,即认为因变量属于指数分布(可以理解为一种限制);

    ② 给定x,我们的目标是预测y的期望值,即g(y)=E(y|x);

    η=θTx\eta=\theta^Tx,即η\etaxx是线性关系。

      

    二、指数分布族

      

      广义线性模型中y服从指数分布族,而指数分布族需满足下面公式:

    p(y;η)=b(y)exp(ηT(y)a(η)p(y;\eta)=b(y)exp(\eta T(y)-a(\eta)

      其中 η\eta为自然参数,T(y)为充分统计量, α(η)\alpha(\eta)为正则化项。其中伯努利分布、正态分布、二项分布、泊松分布等都属于指数分布族的一种。当y服从不同的分布时,会推导出不同的连接函数。故广义线性模型的具体形式g(y)也会不同,我们会根据下面的公式来推导:

    E(T(Y))=g(y)

      

    三、伯努利分布

      

      现在有一个二分类问题,要判断一个来借款的人是否会逾期。如果会逾期给这个人的标记为1,不会逾期给这个人标记为0。由于线性回归模型对于分类问题往往效果不好,所以我们想构建一个广义线性模型来对该问题进行求解,而广义线性模型的因变量要服从指数分布,现在要挑选一个服从指数分布的分布函数。这时我们很自然就会想到我们常见的0-1分布,伯努利分布。它的分布形式如下:

    它的概率分布可以数学定义为:

    其中y=1或y=0,且由离散分布的期望知E(y)=ϕ\phi,前文已经指出伯努利分布属于指数分布族的一种,下面通过公式变形验证该观点。由伯努利的数学定义可做如下推导:
    在这里插入图片描述
    对比指数分布:

    可以得到伯努利分布是满足参数如下的指数分布:

    b(y)=1
    T(y)=y
    η=lnϕ1ϕ\eta=ln\frac{\phi}{1-\phi}
    α(η)=ln(1ϕ)\alpha(\eta)=-ln(1-\phi)

    现在来推导广义线性函数g(y),由于
    E(T(Y))=E(y)=ϕE(T(Y)) = E(y)=\phi


    ϕ=eη1+eη=11+eη \phi=\frac{e^\eta}{1+e^\eta}=\frac{1}{1+e^{-\eta}}

    且E(T(Y))=g(y),从而可以推导出广义线性函数(逻辑回归函数)的表达式:

      从上面的推导可以看出逻辑回归的因变量g(y)就是伯努利分布中样本为1的概率。所以把线性回归中参数求出来,代入逻辑回归函数的表达式中,可以预测样本为1的概率。

      至此,可以得出结论,当因变量服从伯努利分布时,广义线性模型就为逻辑回归。所以不是因为逻辑函数有很多很好的性质而选择了逻辑函数,而是假设因变量服从伯努利分布推导出了逻辑函数。恰好这个函数满足连续、任意阶可导等很多优良性质。从而让逻辑回归成为广泛应用的一个基础模型。

      

    四、逻辑回归优缺点

      

    1 逻辑回归优点
    1. 容易使用和解释。由于逻辑回归不像神经网络那样有一个黑匣子。它通过样本训练出对应特征的参数(系数)。如果参数间不存在多重共线性,一般参数绝对值越大,说明该特征对因变量的影响越大(不过用原始数据建模时由于数据没有归一化处理,可能会由于数据本身的差异导致这个结果有偏,可以把原始数据转成woe消除量纲后再进行评估),该结果可以直观地展示给建模人员和业务使用人员。
    2. 对数据中小噪声鲁棒性好。不会受到轻微多重共线性的影响,保证了模型的准确性。
    3. 使用灵活。因为逻辑回归的结果(概率prob)是0到1之间的连续值,在信贷中可以根据资金松紧程度和公司策略对阈值进行灵活调整,从而划定放贷人群、拒绝人群和转人工人群。
    4. 上线方便。相比其它机器学习模型,逻辑回归可以轻松转成hive sql脚本,进行线上运用。同时在Java、spark等软件中也有可直接调用的模块。
    5. 计算代价不高,容易实现。LR在时间和内存需求上相当高效。它可以应用于分布式数据,并且还有在线算法实现(Python、R等很多软件中都有已封装好可以直接调用的函数),用较少的资源处理大型数据。
        
    2 逻辑回归缺点
    1. 相比其它复杂模型,逻辑回归模型容易欠拟合,分类的精度不高。
    2. 数据特征有缺失或特征空间很大时效果不会很好。

      

    五、 说明

      

    1.逻辑回归看名字像一个回归问题,实际是一个分类问题

      一般是二分类。比如模型的概率小于0.5认为该客户能正常还款,模型概率大于0.5认为该客户有可能逾期。也可以用OvR(one-vs-rest)和MvM(Many-vs-Many)等方法把二分类推广到多分类。而不把逻辑回归叫成逻辑分类,个人看法有可能和逻辑回归输出的值是0到1之间的连续值,而不是单纯的几个类别有关。

      

    2.sigmod函数有哪些优良的性质

      这个函数简单、平滑、任意阶可导、梯度式子容易计算,可以把(−∞,∞)映射到(0,1),从而可以和现实中的概率结合起来。

      一直对逻辑回归,这个风控建模中必不可少的一员,抱有很大的敬意。逻辑回归三部曲的文章也从2月份断断续续准备到了4月份,有些数学推导还不够严谨,总感觉有还可以完善的地方,今天先和大家分享三部曲中的第一部和第二部,第三部逻辑回归项目实战争取在下周和大家见面,大家有好的建议可以私信我。

      PS: 微信公众号中早已发表逻辑回归三部曲的所有文章,今天有时间把文章发表到博客上来,给更多有需要的小伙伴。之前由于工作需要,自己看了很多资料把逻辑回归的结果转成了评分卡的形式,写完了Python的实现函数,在接下来的时间我会好好总结评分卡的内容,争取评分卡的文章也早日和大家见面。
      
    参考文献

    https://zhuanlan.zhihu.com/p/30116307
    https://zhuanlan.zhihu.com/p/43492827
    https://zhuanlan.zhihu.com/p/59137998
    https://zhuanlan.zhihu.com/p/111260930
    https://baijiahao.baidu.com/s?id=1639202882632470513&wfr=spider&for=pc
    

    你可能感兴趣:
    用Python绘制词云图
    用Python绘制皮卡丘
    Python画好看的星空图
    Python入门干货经验(免费提供资料)

    长按(扫一扫)识别上方二维码学习更多Python和建模知识,让你的学习和工作更出彩。
    展开全文
  • 线性回归和逻辑回归损失函数推导

    千次阅读 2018-07-30 09:57:13
    线性回归和逻辑回归损失函数推导 @(数据挖掘) 线性回归和逻辑回归损失函数推导 一、线性回归最小二乘loss推导 二、logistics回归加sigmoid原因以及交叉熵损失函数推导 一、线性回归最小二乘loss推导 ...
  • 逻辑回归的基本形式 逻辑回归是分类问题中最常用的一种模型,其函数形式为: 其中为参数,x为输入变量。逻辑回归通过一个逻辑分布函数 将输入变量的线性表达式的输出值映射到[0...
  • 回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的...
  • 逻辑回归sigmoid 函数

    千次阅读 2018-03-29 19:19:55
    sigmoid 函数上图为sigmoid函数的形式 选择sigmoid 的原因想从两方面来说: 1、 Sigmoid 函数自身的性质sigmoid 函数连续,单调递增sigmiod 函数关于(0,0.5) 中心...逻辑回归的损失函数非指数族,形势为: ...
  • 逻辑回归中的损失函数的解释

    万次阅读 多人点赞 2018-06-05 18:19:11
    逻辑回归是机器学习中的一个非常常见的模型, 逻辑回归模型其实仅在线性回归的基础上,套用了一个逻辑函数逻辑回归可以看做是两步,第一步和线性回归模型的形式相同,即一个关于输入x的线性函数: 第二步通过...
  • 这里只推导逻辑回归的损失公式。 假设函数 hθ(x)=11+e−θTx(假设函数)(假设函数)hθ(x)=11+e−θTx h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}} \tag{假设函数} 用于二分类 p(x)={hθ(x),(1−hθ(x)),if&...
  • 逻辑回归代价函数进行梯度下降求偏导时与线性回归的区别 从偏导的公式上来看,两种方式的公式是一样的,两者的区别就是 hθ(xi) 的定义不同, hθ(xi) 线性回归时普通的线性函数 hθ(xi) 逻辑回归是sigmod函数 ...
  • 一、线性回归损失函数的两种解释线性回归的损失函数是平方损失函数,为什么使用平方的形式,参考:线性回归损失函数为什么要用平方形式,讲得很清楚。 在线性回归中,对于训练数据样本(xi,yi)(x_i,y_i),我们有如下...
  • 逻辑回归损失函数推导

    千次阅读 2018-10-17 08:17:22
  • 逻辑回归模型及其代价函数推导

    千次阅读 2017-08-02 22:45:08
    逻辑回归模型的假设是:g 代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数 (Sigmoid function),公式为:,该函数的图像为:合起来,我们得到逻辑回归模型的假设模型:,hθ(x)的作用是,对于...
  • 逻辑回归损失函数推导及求导

    万次阅读 2018-10-16 20:43:25
    优点 实现简单; 分类时计算量非常小,速度很快,存储资源低;...逻辑回归的公式为: h(x)=11+e−(wTx+b) h(x) = \frac{1} {1 + e^{-(w^Tx+b)}} h(x)=1+e−(wTx+b)1​ 假设有N个样本,样本的标...
  • 逻辑函数 我们先来看看如何对逻辑函数(Sigmoid函数)求导: 代价函数 利用上面的结果,借助复合函数求导公式等,可得: 向量化形式:
  • 首先说什么是凸函数。对区间[a,b]上定义的函数f,若它对区间中任意两点x1和x2,均有f((x1+x2)/2)&...线性回归模型中的损失函数为平方差损失函数,其是凸函数逻辑回归中,损失函数为交叉熵损失函数,因为...
  • 逻辑回归的成本函数

    万次阅读 2018-01-24 14:53:02
    1.在逻辑回归数学模型那篇博文中我们提到,当你做Logistic Regression的时候,在x和y为已知的情况下(比如是猫还是非猫),学习得到参数w和b,使得y帽尽可能的接近y。 2. 为了表达y帽尽可能的接近y,我们需要定义个...
  •   4)逻辑回归函数的推导 3、逻辑回归——鸢尾花数据集的简单预测 1、逻辑回归的由来   本人是统计学专业,这里将自己学习中所理解的逻辑回归,给你们做一个详细的说明,希望能帮助到你们...
  • 逻辑回归函数一般用在分类问题上。实际上也可以用最小二乘,但是最小二乘得到的权重效果比较差。 如果用最小二乘法,目标函数就是差值的平方和,是非凸的,不容易求解,很容易陷入到局部最优。如果用最大似然估计,...
  • 逻辑回归代价函数的推导过程 1、代价函数 在篇文章中,我们要介绍如何拟合逻辑回归模型的参数。具体来说,我要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。 对于...
  • 逻辑回归-代价函数

    2019-01-30 19:42:50
    同样的,理论上说,我们对分类问题,使用逻辑回归模型的也定义代价函数的误差的平方和,但是这里有个问题出现了。 我们将假设(Hypothesis) : 代入到代价函数中,我们得到的代价函数是一个非凸函数(non-convex ...
  • 如果我们在逻辑回归中也用这个代价函数去拟合参数行不行呢?答案是不行。因为这个代价函数逻辑回归中的图像是这个样子的: 这是一个非凸函数,有多个局部最优解,运用梯度下降算法并不会收敛到它的全局最优解,...
  • 本篇博文主要讲解逻辑回归中的代价函数逻辑回归中代价函数与线性回归中的代价函数不同。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,434
精华内容 31,373
关键字:

逻辑回归函数