目录

  1、逻辑回归的由来
  2、逻辑回归模型建立过程中存在的两个问题
    1)问题一:如何将等式左右连续化
    2)问题二:使用sigmoid函数,将任意范围的值,映射为(0,1)
    3)使用matplotlib绘制sigmoid函数
    4)逻辑回归函数的推导
  3、逻辑回归——鸢尾花数据集的简单预测

1、逻辑回归的由来

  本人是统计学专业,这里将自己学习中所理解的逻辑回归,给你们做一个详细的说明,希望能帮助到你们。如果觉得本文对您有帮助,可以关注一下这个博客,精彩抢先看。
  先来回顾一下“线性回归模型”,它有如下两个特点:

  • 因变量是连续性的变量,或者说因变量近似是连续性数据;
  • 它研究的是x,y之间的线性相关关系;

  这里,再回到逻辑回归,它区别于线性回归,最主要的特点就是:

  • 逻辑回归的因变量是0-1型数据;

  对于0-1型数据,就表示这个数据有两个可能的取值。数学上为了方便,把其中一个记为0,另外一个记为1。即:用0和1代表数据的两个结果。
  eg:购买决定:我是买呢?还是不买?
  eg:离职决定:离职?还是不离职?
  我们可以定义:1 = 购买;0 = 不购买; 1 = 离职; 0 = 不离职;
  简单地说:只要有抉择的地方,就会有0-1型数据。0-1型数据反映的不是阿拉伯数字0和1,它反映的是两个不能兼得的结果中的一个。
  如果0-1数据关乎业务的核心诉求,那它就是我们的因变量z(z只是一个标记,你也可以写为y)。于是,同线性回归的定义一样,我们就会有一堆的自变量x(x也是一个标记,你也可以换成任何其他字母),尝试去解释那个因变量。
  于是,我们也需要一个回归模型来解决此类问题。基于这种诉求,便产生了“逻辑回归”。
  

2、逻辑回归模型建立过程中存在的两个问题

  根据上述叙述,我的目标现在很明确。基于一个0-1变量z,建立一个回归模型使得:

1)问题一

  问题一:x为任意实数,β也为任意实数。因此上述等号右边的值,也为任意实数。但是等号左边的z却是一个0-1变量,显然有问题。
  根本原因在于:0-1型变量z不是连续的,但是等号右边的值却是连续的。因此只有把0-1型变量变得连续了,上述等式才有可能成立。
  于是科学家就想出了一种可能性度量表示这个0-1变量z。这种可能性度量一般用“概率”表示。回到之前的eg,我们定义了:1 = 购买;0 = 不购买;而介于高低之间的存在着很想购买,一般想购买,一点想购买等这样不同的概率程度。
  于是,上式左侧已经变成了一个(0,1)之间的连续型变量了,不再是一个0-1的二值变量。

2)问题二

  问题二:虽然上述“等号两边”都是连续性数据了,但是“等号右边”的取值范围是(-∞,+∞),而“等号左边”的取值范围却是(0,1)之间,很显然又存在问题。
  鉴于上述问题,科学家又想出了一个方法,对于任意一个给定的输入,通过一个函数后,将这个(-∞,+∞)的值,映射到(0,1)之间。于是,引入了“sigmoid函数”。

3)使用matplotlib绘制sigmoid函数
def sigmoid(x):return 1. / (1. + np.exp(-x))x = np.arange(-8,8,0.2)
y = sigmoid(x)
plt.plot(x,y)

结果如下:

4)逻辑回归函数的推导


注意:y表示取0或者1的概率。
  

3、逻辑回归——鸢尾花数据集的简单预测

1)相关代码的说明
  • iris数据集是一个类字典格式的数据。以键-值对形式存在。其中数据存放在 “data”键中,目标变量存放在“target”键中,并且都是以数组形式存放数据的。
  • pprint叫做“漂亮的打印”,对于有字典格式的数据,都能给你很工整的打印出来,尤其是做爬虫的时候很有用,一定要下去尝试一下。
  • train_test_split()函数,用于切分数据集,参数test_size=0.2表示我们把整个数据的20%切分出来,作为测试集,那么剩下的80%就是用作训练集。参数random_state=12是一个随机种子,任意整数即可,这个为了保证每次运行代码时,任然是同一个切分。
2)代码如下
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_splitfrom pprint import pprint
from sklearn.datasets import load_irisiris = load_iris()
# pprint(iris)
x_tr,x_te,y_tr,y_te = train_test_split(iris["data"],iris["target"],test_size=0.2,random_state=12)
model = LogisticRegression().fit(x_tr,y_tr)
pre = model.predict(x_te)
print(pre)
print("预测精度如下:")
print(sum(y_te == pre) / len(pre))

结果如下:

逻辑回归——一文带你搞懂逻辑回归原理相关推荐

  1. 一文带你搞懂从动态代理实现到Spring AOP

    摘要:本文主要讲了Spring Aop动态代理实现的两种方式. 1. Spring AOP Spring是一个轻型容器,Spring整个系列的最最核心的概念当属IoC.AOP.可见AOP是Spring ...

  2. 一文带你搞懂C#多线程的5种写法

    一文带你搞懂C#多线程的5种写法 1.简介 超长警告! 在学习本篇文章前你需要学习的相关知识: 线程基本知识 此篇文章简单总结了C#中主要的多线程实现方法,包括: Thread 线程 ThreadPo ...

  3. RPC框架:一文带你搞懂RPC

    RPC是什么(GPT答) ChatGPT回答: RPC(Remote Procedure Call)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行.它以一种透明的方式,将一个程序的函数调 ...

  4. RPC框架:从原理到选型,一文带你搞懂RPC

    大家好,我是华仔,RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理.对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型,下面是文章内容目录: RPC 什么 ...

  5. 如何查询你电脑的IP地址?一文带你搞懂IP地址

    上一章介绍了数据链路层--以太网数据帧的报文格式(你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它),本章介绍下网络层--IP地址. 大家都知道计算机都会有一个IP地址,只有配置了IP地址 ...

  6. ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?一文带你搞懂NDP邻居发现协议...

    前言 前面我们介绍了ICMPv6协议 除了提供ICMPv4常用的基本功能之外,还有邻居发现(ND)的功能.一文带你看懂ICMPv6和ICMPv4的区别 那么究竟什么是邻居发现协议(ND)呢? 邻居发现 ...

  7. 一文带你搞懂什么是测试开发!

    需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实.且能帮助读者进一步理解测试开发工作,请读者耐心品完~ 01 开始前说点什么 1. 自我反省 公众号开通了也有两年多了,除了刚开通的那段 ...

  8. logit回归模型假设_一文让你搞懂Logistic回归模型

    注:本文是我和夏文俊同学共同撰写的 现考虑二值响应变量 ,比如是否购车,是否点击,是否患病等等,而 是相应的自变量或者称特征.现希望构建一个模型用于描述 和 的关系,并对 进行预测. 线性模型可以吗? ...

  9. 手把手带你搞懂AMS启动原理

    彻底搞懂AMS即ActivityManagerService,看这一篇就够了 前言 最近那么多教学视频(特别是搞车载的)都在讲AMS,可能这也跟要快速启动一个app(甚至是提高安卓系统启动速度有关), ...

最新文章

  1. 开源点云实时压缩方案测试
  2. Loj #3111. 「SDOI2019」染色
  3. python xlsxwriter合并单元格_Python使用xlsxwriter导出表格并合并单元格
  4. Response内置对象
  5. linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...
  6. koa2异常处理_读 koa2 源码后的一些思考与实践
  7. asp.net程序涉及案例_定制小程序 | 企业在开发小程序前需要满足哪些条件?
  8. 中国国民休闲状况调查(2020)
  9. 【C语言】数组和指针相关 * 和 总结大全
  10. your port 80 is actually used by server IIS解决办法
  11. ElasticSearch-6.3.2 linux 安装
  12. 配置linux普通用户无密码执行sudo命令
  13. I/O 多路复用的特点:
  14. ps无法打开计算机缺失文件,ps打开出现dll文件丢失怎么解决
  15. 计算机中职生毕业鉴定评语,中职生学生毕业鉴定评语
  16. 泛微齐业成,一文告诉你如何实现全程数字化的预算管理
  17. 弗里德里克·弗朗索瓦·肖邦
  18. 《JavaWeb篇》01.Mysql看这一篇就够了
  19. 将student表中的数计学院的学生信息插入到stu表中。数据库批量插入
  20. 三星Galaxy Note 4.0.3 N7000单刷PDA官方港版ROM下载(2012年5月15日发布)

热门文章

  1. 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口
  2. 杭电计算机研究生复试,杭电计算机考研经验
  3. 产品实习之竞品分析报告篇
  4. 免杀远程监控软件大盘点
  5. C++析构函数的执行时机
  6. indesign如何画弧线_钢笔工具怎么绘制弧线?AI钢笔工具用法全解
  7. 驰骋BPM系统-表单引擎-流程引擎 页面更换
  8. PHP报错:Classes\\PHPExcel\\Cell.php Line(594) Invalid cell coordinate ESIGN1
  9. CentOS安装QEMU(试验成功且简单的方法)
  10. 戴尔c语言编译器如何安装,戴尔的显示屏该怎么安装?精彩图解教程