逻辑回归——一文带你搞懂逻辑回归原理
目录
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))
结果如下:
逻辑回归——一文带你搞懂逻辑回归原理相关推荐
- 一文带你搞懂从动态代理实现到Spring AOP
摘要:本文主要讲了Spring Aop动态代理实现的两种方式. 1. Spring AOP Spring是一个轻型容器,Spring整个系列的最最核心的概念当属IoC.AOP.可见AOP是Spring ...
- 一文带你搞懂C#多线程的5种写法
一文带你搞懂C#多线程的5种写法 1.简介 超长警告! 在学习本篇文章前你需要学习的相关知识: 线程基本知识 此篇文章简单总结了C#中主要的多线程实现方法,包括: Thread 线程 ThreadPo ...
- RPC框架:一文带你搞懂RPC
RPC是什么(GPT答) ChatGPT回答: RPC(Remote Procedure Call)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行.它以一种透明的方式,将一个程序的函数调 ...
- RPC框架:从原理到选型,一文带你搞懂RPC
大家好,我是华仔,RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理.对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型,下面是文章内容目录: RPC 什么 ...
- 如何查询你电脑的IP地址?一文带你搞懂IP地址
上一章介绍了数据链路层--以太网数据帧的报文格式(你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它),本章介绍下网络层--IP地址. 大家都知道计算机都会有一个IP地址,只有配置了IP地址 ...
- ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?一文带你搞懂NDP邻居发现协议...
前言 前面我们介绍了ICMPv6协议 除了提供ICMPv4常用的基本功能之外,还有邻居发现(ND)的功能.一文带你看懂ICMPv6和ICMPv4的区别 那么究竟什么是邻居发现协议(ND)呢? 邻居发现 ...
- 一文带你搞懂什么是测试开发!
需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实.且能帮助读者进一步理解测试开发工作,请读者耐心品完~ 01 开始前说点什么 1. 自我反省 公众号开通了也有两年多了,除了刚开通的那段 ...
- logit回归模型假设_一文让你搞懂Logistic回归模型
注:本文是我和夏文俊同学共同撰写的 现考虑二值响应变量 ,比如是否购车,是否点击,是否患病等等,而 是相应的自变量或者称特征.现希望构建一个模型用于描述 和 的关系,并对 进行预测. 线性模型可以吗? ...
- 手把手带你搞懂AMS启动原理
彻底搞懂AMS即ActivityManagerService,看这一篇就够了 前言 最近那么多教学视频(特别是搞车载的)都在讲AMS,可能这也跟要快速启动一个app(甚至是提高安卓系统启动速度有关), ...
最新文章
- 开源点云实时压缩方案测试
- Loj #3111. 「SDOI2019」染色
- python xlsxwriter合并单元格_Python使用xlsxwriter导出表格并合并单元格
- Response内置对象
- linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...
- koa2异常处理_读 koa2 源码后的一些思考与实践
- asp.net程序涉及案例_定制小程序 | 企业在开发小程序前需要满足哪些条件?
- 中国国民休闲状况调查(2020)
- 【C语言】数组和指针相关 * 和 总结大全
- your port 80 is actually used by server IIS解决办法
- ElasticSearch-6.3.2 linux 安装
- 配置linux普通用户无密码执行sudo命令
- I/O 多路复用的特点:
- ps无法打开计算机缺失文件,ps打开出现dll文件丢失怎么解决
- 计算机中职生毕业鉴定评语,中职生学生毕业鉴定评语
- 泛微齐业成,一文告诉你如何实现全程数字化的预算管理
- 弗里德里克·弗朗索瓦·肖邦
- 《JavaWeb篇》01.Mysql看这一篇就够了
- 将student表中的数计学院的学生信息插入到stu表中。数据库批量插入
- 三星Galaxy Note 4.0.3 N7000单刷PDA官方港版ROM下载(2012年5月15日发布)
热门文章
- 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口
- 杭电计算机研究生复试,杭电计算机考研经验
- 产品实习之竞品分析报告篇
- 免杀远程监控软件大盘点
- C++析构函数的执行时机
- indesign如何画弧线_钢笔工具怎么绘制弧线?AI钢笔工具用法全解
- 驰骋BPM系统-表单引擎-流程引擎 页面更换
- PHP报错:Classes\\PHPExcel\\Cell.php Line(594) Invalid cell coordinate ESIGN1
- CentOS安装QEMU(试验成功且简单的方法)
- 戴尔c语言编译器如何安装,戴尔的显示屏该怎么安装?精彩图解教程