logistic回归

第13章Stata Logistic回归分析 前面我们讲述得回归分析方法都要求因变量是连续变量,但很多情况下因变量是离散得而非连续得。例如,公司招聘人才时根据对应聘人员得特征做出录用或者不录用得评价、毕业学生对职业得选择等。这时就需要用到Logistic回归分析。根据因变量得离散特征:常用得Logistic回归分析方法有3终,包括二元Logistic回归分析、多元Logistic回归分析以及有序Logistic回归分析等。 13.1二元Logistic回归分析 我们经常会遇到因变量只有两种取值的情况,例如是否患病、是... 阅读详情

写这篇博文用了很多时间和精力,如果这篇博文对你有帮助,希望您可以打赏给博主相国大人。哪怕只捐1毛钱,也是一种心意。通过这样的方式,也可以培养整个行业的知识产权意识。我可以和您建立更多的联系,并且在相关领域提供给您更多的资料和技术支持。

赏金将用于拉萨儿童图书公益募捐

手机扫一扫,即可:
这里写图片描述

附:《春天里,我们的拉萨儿童图书馆,需要大家的帮助》

主要内容:
深入浅出Logistic回归
一些实验和实战

我的其他博文
softmax回归及其实现(TensorFlow)
感知机实现:python

1,logistic“回归”

本节主要内容为:线性判别模型与感知机,广义线性模型,训练算法,python实现。
下面这个是一个感知机的示意图,也可以看成是一个分类器示意图。

这里写图片描述
图1.1
SUM模块将输入数据按照各个维度进行加权求和,得到的结果送入 f f 模块。
SUM模块可以写成:y=ωTx+b,为了后面的处理更加方便。我们将 ω ω 和 x x 进行增广,这样SUM模块可以写成:
y=ωTx

f f 模块是判别函数。他将SUM得到的结果进行处理,从而进行类别的判断。
这里需要说明的是:当我们说判别模型是线性时,指的就是这个f为线性的

对于f常见的有两种,一种是阶跃函数,另一种叫做sigmod函数。由于阶跃函数存在不连续点,不容易处理。因此更常用的是sigmod函数:
y=11+exp(−ωTx) y = 1 1 + e x p ( − ω T x )

函数图像为:
这里写图片描述

这个函数的输出是介于0和1之间的数。我们一般用它来模拟概率。并且当输出大于0.5时,认为是正例。反之为负例。
这里需要说明的是:sigmod函数输出的是概率,因此这也是logistic回归的优秀之处。

这个函数本身并不是线性的。因此我们考虑,能够通过某种变换,得到一个线性函数?考虑如下的变化:

lny1−y=ωTx l n y 1 − y = ω T x
可以看到,通过变换 lny1−y l n y 1 − y 我们得到了一个线性函数。

一般的,我们把 y y 与x之间为线性关系的判别函数叫做(狭义/通俗/一般)线性判别函数,而把 y y 的某种变换与输入x之间为线性关系的,叫做广义线性判别函数

因此,我们说logistic回归,是(广义)线性的。由他得到的图1.1叫做logistic分类器。sigmod函数在这里也别叫做logistic函数。现在我们有一批训练数据,我们希望通过训练得到比较好的 ω ω ,这样再给我们一个输入时,就可以据此来预测分类了。下面我们介绍训练算法。
这里需要说明的是,不同的判别函数,有各自的优化目标,因此对应的训练也是不同的
举例说明,如果我们的 f f 函数是阶跃函数,那么我们的优化目标可以写为:
L(ω,b)=−∑xi∈Myi(ω⋅xi+b)

其中 M M 为误分类点的集合。这是一个损失函数,我们希望它取得最小值。对于这个函数,可以采用梯度下降法。具体可以见我的另一篇博文《感知机实现python》
对于logistic回归,我们刚才说到,logistic函数给出的是一个类概率。因此这里我们采用似然函数作为优化目标。logistic函数的输出y,可以看做是 P(y=1|x) P ( y = 1 | x ) ,因此我们的似然函数可以写为:
l(ω)=Πni=1(P(Y=1|xi)yi(1−P(Y=1|xi))1−yi) l ( ω ) = Π i = 1 n ( P ( Y = 1 | x i ) y i ( 1 − P ( Y = 1 | x i ) ) 1 − y i )
这里 y y 取值为0或1,相应的对数似然为:
L(ω)=∑i=1n(yiωTxi−ln(1+exp(ωTxi)))

对此求关于 ω ω 的偏导数。得到:
∂L(ω)∂ω=▽ωL(ω)=∑i=1n(yi−11+exp(−ωTxi))xi=XTErrors ∂ L ( ω ) ∂ ω = ▽ ω L ( ω ) = ∑ i = 1 n ( y i − 1 1 + e x p ( − ω T x i ) ) x i = X T E r r o r s

其中 Errors E r r o r s 是由一些列的
yi−11+exp(−ωTxi)=yi−logistic(ωTxi) y i − 1 1 + e x p ( − ω T x i ) = y i − l o g i s t i c ( ω T x i )
构成的误差向量。
我们的目标是对似然函数做极大似然估计,你可以另导数为0,然而我们发现这样得不到解析解。所以我们转而采用梯度上升法。可以看到,这里的梯度就是误差向量与输入矩阵的乘积。关于梯度上升法,我已经在《感知机实现python》中做了详细的实现和讲解。此处不再赘述。
代码实现:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@author: XiangguoSun
@contact: sunxiangguodut@qq.com
@file: logistic.py
@time: 2017/3/5 9:58
@software: PyCharm
"""
import numpy as np 
from numpy import *
import matplotlib.pyplot as plt 

def drawSamples(plt,Input):
    m, n=shape(Input)
    target = Input[:,-1] 
    for i in xrange(m):
        if target[i]==0:
            plt.scatter(Input[i,0],Input[i,1],c='blue',marker='o')
        else:
            plt.scatter(Input[i,0],Input[i,1],c='red',marker='s')   

def buildMat(dataSet):
    m, n = shape(dataSet)
    dataMat = zeros((m, n))
    dataMat[:, 0] = 1
    dataMat[:, 1:] = dataSet[:, :-1]
    return dataMat

# Logistic函数
def logistic(wTx):
    return 1.0/(1.0+exp(-wTx))


if __name__ == '__main__':
    #导入数据
    path = './testSet.txt'  # 数据文件路径
    Input = mat(np.loadtxt(path, dtype=float))
    target = Input[:,-1] #获取分类标签列表
    [m,n] = shape(Input) 

    #构建b+x 系数矩阵:b这里默认为1
    dataMat = buildMat(Input)

    #定义步长和迭代次数 
    alpha = 0.001 # 步长
    steps = 500  # 迭代次数
    weights = ones((n,1))# 初始化权重向量
    weightlist=[]
    #主程序
    for k in xrange(steps):
        gradient = dataMat*mat(weights) # 梯度
        output = logistic(gradient)  # logistic函数
        errors = target-output # 计算误差
        weights = weights + alpha*dataMat.T*errors  
        weightlist.append(weights)#这个作用时候为了日后分析各个参数变化

    print weights#输出训练后的权重

    #按分类绘制散点图
    drawSamples(plt, Input)
    #绘制训练后超平面
    X = np.linspace(-7,7,100)
    Y = -(double(weights[0])+X*(double(weights[1])))/double(weights[2])
    plt.plot(X,Y)
    plt.show()

实验结果
这里写图片描述

这里写图片描述

训练好之后,我们就可以用来分类了,分类器非常简单:

def classifier(testData,weights):
    m,n=shape(testData)
    test=zeros((m,n+1))
    test[:,0]=1
    test[:,1:]=testData

    pro=logistic(sum(test*weights))
    if pro > 0.5:
        return 1.0
    else:
        return 0.0

需要说明的是,logistic回归是一个二分类的模型(虽然名字叫回归,其实是分类模型)。那么如果我们希望进行多分类,就可以将logistic的思想推广到多分类中,也就是我们另一篇博文将要介绍的softmax 回归。softmax回归是神经网络和深度学习的最基本的概念。关于softmax回归,请见博主的这篇博文
《softmax回归及其实现(TensorFlow)》

logistic回归_stata速学|logistic回归分析 NO.07ZEYI06.2020正文共:2010字 28图预计阅读时间:6分钟嘿喽,我是则已。这是stata的第七期学习。前面学习了最小二乘回归分析,非线性回归分析都要求因变量是连续变量,但很多时候因变量是离散的,即1就是1,2就是2,没有1-2之间的取值。这时候需要用到logistic回归分析。划线部分是自己要研究的变量。logistic回归 分析常用来进行logistic回归分析... 阅读详情

相关推荐

logistic回归简介

logistic回归 一、名词解释: logistic回归又称罗杰斯蒂克回归分析,或逻辑回归分析。 Logistic回归为概率型非线性回归模型,是研究分类观察结果y与一些影响因素x(单变量,多变量都可以)之间关系的一种多变量的分析方法 。   二、与线性回归的关系 logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为

whiteinblue的专栏 1万+

Logistic 回归

Logistic回归是一种广泛应用于分类问题的统计方法,特别是在二分类问题中。它通过使用Logistic函数(或称为Sigmoid函数),将线性回归的输出映射到0和1之间的概率值,从而实现分类。定义PY1∣X11e−β0β1X1βnXnPY1∣X1e−β0​β1​X1​βn​Xn​1​其中,PY1∣XP(Y=1|X)PY1∣X表示给定特征X时,样本属于类别1的概率,β0β1βnβ0​β。

零度°C的博客 5743

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 518

Logistic回归

logistic回归

Scanf_void_he的博客 2029

Outlook邮件备份全攻略:从导出到导入的完整流程(附常见问题解决)

本文提供了一份详尽的Outlook邮件备份全攻略,涵盖从导出到导入的完整流程。重点解析了经典桌面版Outlook的.pst文件备份方法、进阶的智能筛选备份策略,以及如何通过导入恢复和工具验证确保备份可用。同时,文章还介绍了构建自动化备份体系与异地容灾的最佳实践,并附有常见问题解决方案,帮助用户建立可靠的邮件数据安全防线。

weixin_29248611的博客 891

基于PaddleX的垃圾分类识别

基于PaddleX的智能垃圾分类识别项目,使用百度开源的PaddlePaddle深度学习框架,结合PaddleX开发套件,实现对垃圾分类的识别检测

Mefishes的博客 8119

【机器学习】逻辑回归(Logistic Regression)(理论+图解+公式推导+代码实现)

文章目录一、概述二、逻辑回归是什么1.概述2.逻辑回归的原理2.1 sigmoid概率映射2.2 概率计算2.3 极大似然估计3.逻辑回归的本质4.损失函数5.权值求解三、正则项1.概述2.L1正则项3.L2正则项 欢迎回到机器学习编程系列。在这篇文章中,我们将通过MindSpore的来简单的搭建最简单的线性回归。废话不多说,我们开始吧。 一、概述 对于我们的机器学习算法来说,一般有分类模型、回归模型等,对于分类模型又分为线性模型和非线性模型,那么什么是线性模型和非线性模型呢? 如果对于一维变量来说,y=

优快云 精品推荐 6461

科研党必备:用MATLAB批量处理.mat文件数据的3种高效方法

本文为科研人员提供了使用MATLAB批量处理.mat文件数据的三种高效方法,涵盖智能数据加载、专业可视化与自动化报告生成。通过构建自动化框架、多维度数据画图策略及批量处理流程,帮助用户显著提升数据处理效率与图表专业性,解决海量实验数据的管理与分析难题。

weixin_29089057的博客 72

机器学习——Logistic(逻辑)回归

本篇首先阐述Logistic回归的定义,然后介绍一些最优化算法,其中包括基本的梯度上升法和一个改进的随机梯度上升法,这些最优化算法将用于分类器的训练。尽管逻辑回归的名称中包含“回归”,但它实际上是用于分类的,特别是二分类问题。逻辑回归通过计算输入特征的线性组合,使用Sigmoid函数将输出值压缩0和1之间,表示某个类别发生的概率。通过设定一个阈值(如0.5),可以将概率转换为类别输出。逻辑回归通常用于估计对象属于某一类别的概率,这是一个典型的分类任务。

m0_73531849的博客 1965

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

xxx 1051

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 503

多元有序logistic回归_SPSS有话说:二元logistic回归

导 语线性回归的因变量Y必须为连续变量,但当我们研究的因变量为分类变量时,因为不再是随机变量,不符合正态分布,因此不能采用线性回归,此时应该使用Logistic回归。SPSS有话说概述Logistic回归分析也用于研究变量之间的影响关系,即X对Y的影响情况,此处涉及的Y是分类数据。结合Y的具体情况,Logistic回归分析可以分为三种,分别是二元Logistic回归、多元无序Logi...

weixin_27028301的博客 7114

16. SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍

很多朋友向我反映,学习了 一段时间的 SAP Fiori Elements 开发,但是感觉整套体系对于自己来说还是个黑盒子,很多技术点,看了 SAP 官方帮助文档后,觉得自己懂了,但是一旦需要自己动手做一些东西出来时,又觉得一片茫然。 其实笔者自己也经历过这个过程。究其原因,还是大家对 Fiori Elements 一些技术细节没有理解,对 SAP 官方的知识点仅仅停留在记忆,甚至是死记硬背上面。 不过没有关系,本教程笔者会刻意设置一些练习,让大家动手,在实战中逐渐熟悉 Fiori Elements 这

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 758

【R语言】logistic回归(二)多因素logistic回归

logistic回归分析是医学统计分析过程中常用的一种影响因素分析的方法,最常用的是二元logistic回归分析,即以二分类数据为因变量的logistic回归分析。上次已经和大家分享了批量进行logistic回归分析的代码,接下来将分享多因素logistic回归分析的代码。多因素logistic回归分析一般的分析思路其实就是把单因素分析过程中发现的有意义的变量同时纳入logistic回归模型,除了纳入有意义的变量之外,还可以通过强制纳入其他变量构建不同的模型。...

qq_42696043的博客 3万+

am62x A53与R5F通信

AM62x是Ti的一款异构多核芯片。remoteproc驱动,硬编码(写死)了R5F/M4F固件的名字,这样驱动启动时,就会找硬件编码的固件,下面是其对应关系。值得注意的是,linux内核中的M4F remoteproc驱动启动M4F,而linux内核中的R5F remoreteproc驱动不启动R5F,相反,它attach到已经在boot阶段启动的R5F固件上。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。

鹰之翔 1361

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

logistic回归_二元logistic回归分析

SPSS学习乐园点击上方 蓝色 字体可关注logistic回归前面介绍过多重线性回归分析,该分析方法是研究一个因变量(服从正态分布)与多个自变量的数量关系,多重线性回归分析。 在医学研究中,常常需要研究的结局变量不是连续型变量,而是二分类变量或多分类变量,logistic回归分析就能解决这问题。依据因变量的分类情况,可分为二分类logistic回归和多分类logis...

weixin_39806808的博客 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

多元有序logistic回归_如何利用SPSS进行Logistic回归分析

点击蓝字SPSS关注我今天的这篇方法与经验贴同样是以下文章的作者所写,他擅长SPSS和SAS的各种数据分析操作:风月浊酒,公众号:全哥的学习生涯如何利用SPSS实现多元线性回归(哑变量设置与分析)以下是原文:今天给大家介绍一下logistic回归的SPSS操作。Logistic回归可以得出OR值,在流行病学研究中应用较为广泛,可以用于横断面研究,病例对照研究等。Logistic回归是一种...

weixin_30458447的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

一文掌握有序logistic回归分析

Logistic回归分析(logit回归)一般可分为3类,分别是二元logistic回归分析、多分类Logistic回归分析和有序Logistic回归分析。logistic回归分析类型如下所示。 Logistic回归分析用于研究X对Y的影响,并且对X的数据类型没有要求,X可以为定类数据,也可以为定量数据,但要求Y必须为定类数据,并且根据Y的选项数,使用相应的数据分析方法。 如果Y有两个选项,如愿意和不愿意、是和否,那么应该使用有序logistic回归分析(SPSSAU进阶方法->二..

m0_37228052的博客 2万+

SAS Logistic回归:一个完整例子

 SAS Logistic回归:代码及输出报告详解这篇将作为五一后一个讲稿的阅读材料之一,先整出来就搁这。如果没有耐心读下去,你可以立即转到以下的参考资料,该篇所有的知识都来自它们:Cody, R.F. and Smith, J.K. Applied Statistics and the SAS ProgrammingLanguage,4th ed..NJ: Prent

winsonic的专栏 2万+

logistic回归_R语言实现logistic回归

引言:前面我们已经掌握了logistic回归的知识点,今天就来看看如何用R语言实现logistic回归。今天用到的数据来源于机器学习仓库,基于患者的一些信息以判定该患者是否患有心脏病(heart disease, hd),链接如下:http://archive.ics.uci.edu/ml/datasets/Heart+Disease1. 数据读取###1读取UCI机器学习中的数据u...

weixin_39721953的博客 9607

多元有序logistic回归_有序多分类logistic回归

一、模型简介有序多分类logistic回归用于因变量为有序多分类的情况,如患者对药物的反应y共有三种情况:疗效差、一般和好。定义y=1(疗效差)、y=2(疗效一般)、y=3(疗效好)。对于有序多分类logistic回归,模型将因变量的多个分类依次分割为多个二元logistic回归。如3种不同疗效的患者,分析时拆分为2个二元logistic回归,分别为 (1vs 2 3) 、(1 2 vs...

weixin_36173034的博客 3万+
上一篇: 感知机实现Python
下一篇: numpy学习笔记
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值