文章目录

  • 逻辑斯蒂回归模型
  • 逻辑斯蒂回归模型python案例

逻辑斯蒂回归模型

前面的例子都是在用线性模型解决回归任务,那么线性模型能否完成分类任务呢?相较于回归任务,分类任务的预测值是离散的,比如二分类问题,可以用0和1来表示两个类别。前面我们也提到了广义线性回归模型的联系函数可以是任意,我们能否构造一个让预测值变为离散值的联系函数g呢?

例如可以使用单位越阶函数,公式如下:
g(z)={0,z<0;0.5,z=0;1,z>0,g(z)= \begin{cases} 0, z<0 ; \\ 0.5, z=0; \\ 1,z>0, \end{cases}g(z)=⎩⎨⎧​0,z<0;0.5,z=0;1,z>0,​
其中1表示分类结果为正例,0表示分类结果为反例,而g(z)取值为0.5时,类别可以进行任意判定。

由于单位越阶函数在临界点不连续,临界点出不可导,因此不能直接用作g函数,于是找到了近似的logistic函数,它在临界点连续且单调可微公式如下:
y=11+e−zy = \frac {1}{1+e^{-z}}y=1+e−z1​
由于图形很像一个“S”型,所以又叫 sigmoid曲线(S型曲线)。

最终我们得到逻辑斯蒂回归模型,需要注意虽然名称叫做回归模型,但是它是解决分类任务,公式如下:

y=11+e−(wTX+b)y = \frac {1}{1+e^{-(w^T X +b)}}y=1+e−(wTX+b)1​

逻辑斯蒂回归模型python案例

案例根据y=0.5x+0.5,y=2.1x+6.5两个函数为基准,引入了较大的随机误差后,各生成了100个样本点。生成的样本有明显的线性边界,我们尝试使用逻辑回归模型,找出决策边界,并进行绘制。

import numpy as np
import pandas as pd
import random
import  matplotlib.pyplot as plt #类似 MATLAB 中绘图函数的相关函数
import seaborn as sns
# 导入逻辑回归模型函数
from sklearn.linear_model import LogisticRegressionnp.random.seed(2)
count=100
data=[]
for i in range(count):x1=np.random.normal(0.00,0.55)res1=x1*0.1+0.5+np.random.normal(0.00,0.9)data.append([x1,res1,1])x2=np.random.normal(0.00,0.55)res2=x2*2.1+6.5+np.random.normal(0.00,0.9)data.append([x2,res2,0])data =pd.DataFrame(data)
# print(data[data[2]==1])
x1_data=np.array(data[0])
x2_data=np.array(data[1])
plt.scatter(x1_data,x2_data,c=data[2])
plt.show()# 调用逻辑回归模型
lr_clf = LogisticRegression()# 用逻辑回归模型拟合构造的数据集 (其拟合方程为 y = w0 + w1 * x1 + w2 * x2)
lr_clf = lr_clf.fit(data.iloc[:,:2], data[2])## 查看其对应模型的w1,w2
print('the weight of Logistic Regression:', lr_clf.coef_)## 查看其对应模型的w0
print('the intercept(w0) of Logistic Regression:', lr_clf.intercept_)plt.figure()
plt.scatter(x1_data,x2_data, c=data[2], s=50, cmap='viridis')
plt.title('Dataset')
nx, ny = 200, 100
# 获取feature中x轴和y轴上最小最大值
x_min, x_max = plt.xlim() # 设定坐标范围
y_min, y_max = plt.ylim()
# np.linspace:创建等差数列,np.meshgrid:网格坐标矩阵
# print(np.linspace(x_min, x_max, nx)) # 区间内创建200个等差数列的数x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx), np.linspace(y_min, y_max, ny))# np.c_: 添加列# 返回预测属于某标签的概率
z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])
z_proba = z_proba[:, 1].reshape(x_grid.shape)'''
plt.contour(X, Y, Z, [levels], **kwargs)
plt就是matplotlib.pyplot
X, Y表示的是坐标位置(这里是可选的,但是如果不传入的话就是python根据传入的高度数组(Z)的大小自动生成的坐标),一般很多会使用二维数组,但是实际上一维数组也可以的
Z代表每个坐标对应的高度值,是一个二维数组,其中每个值表示的是每个坐标对应的高度 XYZ的实际数据构成可以参照上面的例子,在本地查看一下数据是长什么样
levels有两种传入形式。一种是传入一个整数,这个整数表示你想绘制的等高线的条数,但是显示结果可能并不是完全和传入的整数的条数一样,是大致差不多的条数(可能相差一两条)(为什么是大致条数呢?可能是python帮你默认生成的比较合适的几条等高线吧)。还有一种方式就是传入一个包含高度值的一维数组,这样python便会画出传入的高度值对应的等高线。
————————————————。
原文链接:https://blog.csdn.net/keepaware/article/details/121717046
'''# plt.contour: 绘制轮廓
# 将 网格坐标矩阵中的点和概论绘制进图形,在概论等于0.5的位置绘制分割线,完成分类任务。
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')
plt.show()

回归分析:逻辑斯蒂回归模型,可视化分类决策边界相关推荐

  1. 逻辑斯蒂分布模型、二项逻辑斯蒂回归模型、多项逻辑斯蒂回归模型

    一.逻辑斯蒂分布/回归模型 模型描述的是一种什么样的事件或现象: 设X是连续随机变量,X服从逻辑斯蒂回归分布是指X具有下列分布函数和密度函数: 附上逻辑斯蒂分布的密度函数与分布函数,如下: 物理含义, ...

  2. 回归分析:逻辑斯蒂回归模型,非线性分类任务案例

    逻辑斯蒂回归模型 上节内容,我们得到逻辑斯蒂回归模型,需要注意虽然名称叫做回归模型,但是它是解决分类任务,公式如下: y=11+e−(wTX+b)y = \frac {1}{1+e^{-(w^T X ...

  3. 回归分析(三)二项逻辑斯蒂回归模型

    回归分析(三)二项逻辑斯蒂回归   学了一段时间突然又遇到逻辑斯蒂回归,结果发现已经忘完了,所以今天重新梳理一下. (1)逻辑斯蒂分布   先看一下逻辑斯蒂分布函数F(x)F(x)F(x),其概率密度 ...

  4. 用二项逻辑斯蒂回归解决二分类问题

    逻辑斯蒂回归: 逻辑斯蒂回归是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的, 也可以是多分类的 基本原理 logistic 分布 折X是连续的随机变量,X服从 ...

  5. 理解逻辑斯蒂回归模型

    逻辑斯蒂回归是一个非常经典的二项分类模型,也可以扩展为多项分类模型.其在应用于分类时的过程一般如下,对于给定的数据集,首先根据训练样本点学习到参数w,b;再对预测点分别计算两类的条件概率,将预测点判为 ...

  6. 数据挖掘-二项逻辑斯蒂回归模型算法的R实现

    本次为学生时期所写的实验报告,代码程序为课堂学习和自学,对网络程序有所参考,如有雷同,望指出出处,谢谢! 基础知识来自教材:李航的<统计学习方法> 本人小白,仍在不断学习中,有错误的地方恳 ...

  7. 逻辑斯蒂回归模型——逻辑斯蒂分布、二项逻辑斯蒂回归模型、参数估计与多项逻辑斯蒂回归

    本笔记整理自李航老师<统计学习方法>第二版 第六章 逻辑斯蒂回归是统计学习中经典的分类方法. 逻辑斯蒂分布 F(x)=P(X≤x)=11+e−(x−μ)/γF(x) = P(X\leq x ...

  8. 逻辑斯蒂回归java_逻辑斯蒂回归模型

    http://blog.csdn.net/hechenghai/article/details/46817031 主要参照统计学习方法.机器学习实战来学习.下文作为参考. 第一节中说了,logisti ...

  9. 【机器学习】逻辑斯蒂回归原理推导与求解

    1.概念 逻辑斯蒂回归又称为"对数几率回归",虽然名字有回归,但是实际上却是一种经典的分类方法,其主要思想是:根据现有数据对分类边界线(Decision Boundary)建立回归 ...

最新文章

  1. 如何确定Scrum团队的最佳规模?
  2. Clipper: 开源的基于图论框架的鲁棒点云数据关联方法(ICRA2021)
  3. BCH半月热点事件回顾
  4. DirectX和DirectShow介绍和区别
  5. python3 reqeusts后写入excel
  6. Python编程基础:第一节 变量Variables
  7. okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全
  8. 远程拷贝代码 指定端口
  9. 商城网站该如何选择虚拟主机
  10. 优秀linux系统设计,Linux系统下设计优秀实用程序的艺术
  11. linux 版本号 加号,如何去除Linux Kernel版本号后面的加号?
  12. Node-介绍与模块化
  13. (转载)用C#实现MySQL建库及建表
  14. Java项目:JSP网上零食销售系统
  15. 计算机硬盘搜索记录,怎么删除在电脑磁盘里搜索过文件 的记录
  16. 8位数控分频器的设计_数控分频器的设计实验报告
  17. 打印机不弹出打印窗口_打印CAD图纸总是留白?做好这个操作,能打印出你想要的CAD图纸...
  18. android studio开始暂停按钮
  19. u盘如何在计算机应用内存,详解为什么8G内存U盘在电脑上显示不到8G只有7.5G
  20. Ubuntu20.04+Nvidia RTX 3060 显卡驱动安装

热门文章

  1. 湖北移动魔百盒CM201-1-YS_S905L2_RTL8822_emmc_双内存-当贝桌面线刷固件包
  2. 支付宝扫“福”字活动马上开始,看我如何使用python制作一个“福”字吧
  3. flutter dart ..addAll
  4. CTFHub Web真题(7星)
  5. CSS面试题汇总(二)
  6. BPM生态之——端到端流程
  7. 高跟鞋给女士带来的危害
  8. 内存管理 | 伙伴系统
  9. 入门怎么安装Python并且操作?
  10. 01虚拟机克隆和软件安装