回归分析:逻辑斯蒂回归模型,可视化分类决策边界
文章目录
- 逻辑斯蒂回归模型
- 逻辑斯蒂回归模型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()
回归分析:逻辑斯蒂回归模型,可视化分类决策边界相关推荐
- 逻辑斯蒂分布模型、二项逻辑斯蒂回归模型、多项逻辑斯蒂回归模型
一.逻辑斯蒂分布/回归模型 模型描述的是一种什么样的事件或现象: 设X是连续随机变量,X服从逻辑斯蒂回归分布是指X具有下列分布函数和密度函数: 附上逻辑斯蒂分布的密度函数与分布函数,如下: 物理含义, ...
- 回归分析:逻辑斯蒂回归模型,非线性分类任务案例
逻辑斯蒂回归模型 上节内容,我们得到逻辑斯蒂回归模型,需要注意虽然名称叫做回归模型,但是它是解决分类任务,公式如下: y=11+e−(wTX+b)y = \frac {1}{1+e^{-(w^T X ...
- 回归分析(三)二项逻辑斯蒂回归模型
回归分析(三)二项逻辑斯蒂回归 学了一段时间突然又遇到逻辑斯蒂回归,结果发现已经忘完了,所以今天重新梳理一下. (1)逻辑斯蒂分布 先看一下逻辑斯蒂分布函数F(x)F(x)F(x),其概率密度 ...
- 用二项逻辑斯蒂回归解决二分类问题
逻辑斯蒂回归: 逻辑斯蒂回归是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的, 也可以是多分类的 基本原理 logistic 分布 折X是连续的随机变量,X服从 ...
- 理解逻辑斯蒂回归模型
逻辑斯蒂回归是一个非常经典的二项分类模型,也可以扩展为多项分类模型.其在应用于分类时的过程一般如下,对于给定的数据集,首先根据训练样本点学习到参数w,b;再对预测点分别计算两类的条件概率,将预测点判为 ...
- 数据挖掘-二项逻辑斯蒂回归模型算法的R实现
本次为学生时期所写的实验报告,代码程序为课堂学习和自学,对网络程序有所参考,如有雷同,望指出出处,谢谢! 基础知识来自教材:李航的<统计学习方法> 本人小白,仍在不断学习中,有错误的地方恳 ...
- 逻辑斯蒂回归模型——逻辑斯蒂分布、二项逻辑斯蒂回归模型、参数估计与多项逻辑斯蒂回归
本笔记整理自李航老师<统计学习方法>第二版 第六章 逻辑斯蒂回归是统计学习中经典的分类方法. 逻辑斯蒂分布 F(x)=P(X≤x)=11+e−(x−μ)/γF(x) = P(X\leq x ...
- 逻辑斯蒂回归java_逻辑斯蒂回归模型
http://blog.csdn.net/hechenghai/article/details/46817031 主要参照统计学习方法.机器学习实战来学习.下文作为参考. 第一节中说了,logisti ...
- 【机器学习】逻辑斯蒂回归原理推导与求解
1.概念 逻辑斯蒂回归又称为"对数几率回归",虽然名字有回归,但是实际上却是一种经典的分类方法,其主要思想是:根据现有数据对分类边界线(Decision Boundary)建立回归 ...
最新文章
- 如何确定Scrum团队的最佳规模?
- Clipper: 开源的基于图论框架的鲁棒点云数据关联方法(ICRA2021)
- BCH半月热点事件回顾
- DirectX和DirectShow介绍和区别
- python3 reqeusts后写入excel
- Python编程基础:第一节 变量Variables
- okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全
- 远程拷贝代码 指定端口
- 商城网站该如何选择虚拟主机
- 优秀linux系统设计,Linux系统下设计优秀实用程序的艺术
- linux 版本号 加号,如何去除Linux Kernel版本号后面的加号?
- Node-介绍与模块化
- (转载)用C#实现MySQL建库及建表
- Java项目:JSP网上零食销售系统
- 计算机硬盘搜索记录,怎么删除在电脑磁盘里搜索过文件 的记录
- 8位数控分频器的设计_数控分频器的设计实验报告
- 打印机不弹出打印窗口_打印CAD图纸总是留白?做好这个操作,能打印出你想要的CAD图纸...
- android studio开始暂停按钮
- u盘如何在计算机应用内存,详解为什么8G内存U盘在电脑上显示不到8G只有7.5G
- Ubuntu20.04+Nvidia RTX 3060 显卡驱动安装
热门文章
- 湖北移动魔百盒CM201-1-YS_S905L2_RTL8822_emmc_双内存-当贝桌面线刷固件包
- 支付宝扫“福”字活动马上开始,看我如何使用python制作一个“福”字吧
- flutter dart ..addAll
- CTFHub Web真题(7星)
- CSS面试题汇总(二)
- BPM生态之——端到端流程
- 高跟鞋给女士带来的危害
- 内存管理 | 伙伴系统
- 入门怎么安装Python并且操作?
- 01虚拟机克隆和软件安装