python 画出决策边界_决策边界可视化,让你的分类合理有序
作者——Navoneel Chakrabarty
在数据科学领域,分类问题是一个非常普遍和重要的问题。例如:糖尿病视网膜病变、情绪分析、数字识别、癌症类型预测(恶性或良性)等。这些问题往往通过机器学习或深度学习来解决。像糖尿病视网膜病变或青光眼检测这样的项目中,纹理分析经常被使用,而不是传统的图像处理或深度学习等。虽然根据研究论文,深度学习在处理糖尿病视网膜病变方面有着极强的优越性。
补充:纹理分析指通过一定的提取出纹理特征参数,从而获得纹理的定量或定性描述的处理过程·纹理分析方法按其性质而言,可分为两大类:统计分析方法和结构分析方法。纹理分析在遥感图像、 X、细胞和处理方面有广泛的应用。关于纹理,还没有一个统一的数学模型。它起源于表征纺织品表面性质的纹理概念,可以用来描述任何物质组成成分的排列情况,例如医学上X 射线照片中的、血管纹理、航天(或航空)地形照片中的岩性纹理等。图像处理中的视觉纹理通常理解为某种基本模式(色调基元)的重复排列。
现在,我们再回到主题。相关研究论文如下:
"糖尿病视网膜病变检测的深度学习方法"链接:https://ieeexplore.ieee.org/document/8596839
在分类问题中,一个特定类的预测往往要涉及多个类。换句话说,它还可以以这样一种方式构建:将特定实例(特征空间几何中的数据点)保存在特定区域下(某一类),并且与其他区域分离(其他类)。这种与其他区域的分离的"现象"我们称之为决策边界的可视化。在特征空间中决策边界的可视化是在散点图上完成的。其中每个点表示数据集的一个数据点,轴线表示特征。决策边界将数据点划分为多个区域,这些区域就是(我前面所谈及的)数据点所属的类。
决策边界的重要性/意义:
在使用数据集训练机器学习模型之后,我们通常需要可视化特征空间中数据点的类。散点图上的决策边界就是出于这个目的。而散点图更是包含着属于不同类别的数据点(用颜色或形状表示),决策边界可以通过多种不同的策略绘制:
单线决策边界:在散点图上绘制决策边界的基本策略是找到一条将数据点分隔成不同类区域的单线。现在,利用训练过的模型找到与机器学习算法相关的参数,进而找到这条直线。然后利用得到的参数和机器学习算法找到直线坐标。如果你不知道ML算法的工作原理,那么你将无法继续进行下去。
基于轮廓的决策边界:另一种策略是绘制轮廓,这些轮廓是用匹配或紧密匹配的颜色包围数据点的区域——描绘数据点所属的类,以及描绘预测类的轮廓。这是最常用的策略,因为它不使用模型训练后得到的机器学习算法的参数和相关计算。但另一方面,我们并不能很好地用一条直线来分离数据点,也就是说这条直线只能通过训练后得到的参数及其坐标计算得到。
单线决策边界的范例演练:
在这里,我将演示基于逻辑回归的机器学习模型的单线决策边界。
进入逻辑回归假设
其中z被定义为:
theta_1、theta_2 theta_3,....其中,theta_n为逻辑回归的参数,x_1、x_2、…、x_n为特征。
因此,h(z)是一个Sigmoid函数,其范围是从0到1(包括0和1)。
在绘制决策边界时,取h(z) = Logistic回归中使用的阈值,通常为0.5。即:
然后:
现在,在绘制决策边界时,需要考虑两个特征,并沿散点图的x轴和y轴绘制。所以,
也就是说
其中x_1是数据集的原始特征
因此,得到2个x ' _1的值以及2个相应的x ' _2的值。x ' _1是单线决策边界的x极值,x ' _2是单线决策边界的y极值。
在虚构数据集上的应用:
该数据集包含100名学生在2次考试中获得的分数和标签(1,0),该标签指示该学生是否将被大学录取(用1和0表示)。相关数据集链接:https://github.com/navoneel1092283/logistic_regression.git
问题陈述:"根据在两次考试中获得的分数,用逻辑回归预测该学生是否会被大学录取。"
在这里,两门考试的分数将是考虑的两个特征。
下面是具体的实现方法:
相关链接:https://hackernoon.com/logistic-regression-in-python-from-scratch-954c0196d258
对数据集进行逻辑回归:
得到(参数)向量,
获取数据点的预测或预测类:
绘制单线决策边界:
得到单线决策边界
这样,任何基于逻辑回归的机器学习模型都可以绘制出单线决策边界。对于基于其他机器学习算法的模型而言,则必须知道相应的假设等等。
基于轮廓的决策边界的范例演练:
利用刚才的数据集和训练模型,绘制基于轮廓的决策边界。
得到基于轮廓的决策边界,其中黄色->允许,蓝色->不允许
这种方法显然更方便,因为机器学习算法不需要假设,也不需要数学。所需要的只是高级Python编程的诀窍。
因此,它是绘制任意机器学习模型决策边界的一种通用方法。
在现实生活中和一些高级项目中,都会涉及到许多特征。那么,如何在二维散点图中绘制决策边界呢?
面对这种情况,我认为有多种解决办法:
1.利用随机森林分类器等给特征进行重要性评分,得到2个最重要的特征,然后在散点图上绘制决策边界。
2.主成分分析(PCA)或线性判别分析(LDA)等降维技术可用于将N个特征嵌入到2个特征中,从而将N个特征的信息解释或减少为2个特征(n_components = 2)。然后再基于这两个特征在散点图上绘制决策边界。
这就是决策边界可视化。
python 画出决策边界_决策边界可视化,让你的分类合理有序相关推荐
- python画出一个梅花_如何用Python画一棵漂亮的树
Tree 海龟绘图turtle 在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言--LOGO语言,它的特色就是通过编程指挥一个小海龟(turtl ...
- 用python画出简单笑脸_用Python画滑稽笑脸
from turtle import* setup(600,600,200,200) #脸 penup() goto(-210,0) seth(-90) pendown() pencolor('ora ...
- 用python画出简单笑脸_如何用Python画滑稽笑脸!
用turtle画滑稽 from turtle import* setup(600,600,200,200) #脸 penup() goto(-210,0) seth(-90) pendown() pe ...
- python画出一个梅花_如何用python画一朵花?
import math try: from swampy.TurtleWorld import * # 需要执行 pip install Swampy except ImportError: from ...
- python 画出决策边界_Python3入门机器学习 - 逻辑回归与决策边界
logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等.因此因变量就为是 ...
- python 画出决策边界_python 画出使用分类器得到的决策边界
python 画出使用分类器得到的决策边界 发布时间:2020-09-25 21:10:09 来源:脚本之家 阅读:113 作者:星之空殇 获取数据集,并画图代码如下: import numpy as ...
- python怎么画人像_教你如何用Python画出心目中的自己
原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...
- echarts词云图形状_怎么用Python画出好看的词云图?
相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...
- python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...
问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...
- python怎么画出圆润的曲线_利用python画出AUC曲线的实例
以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...
最新文章
- Pod详解-生命周期-容器探测
- linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞
- 【LeetCode笔记】322. 零钱兑换(Java、动态规划)
- 国际空间站20年花掉超千亿美金,一些人开始觉得它“没啥用”了
- Nginx接受代理协议
- vue 属性 watch
- jQuery.fn.extend 与 jQuery.extend 用法
- DE25 Homogeneous Linear Systems with Constant Coefficients
- Vue自定义组件封装及使用Excel
- 一步一步安装 Windows Server 2008 Beta3(Code Name Longhorn)
- python 模拟用户点击浏览器_Selenium(python版本)如何启动浏览器模拟点击网页链接或按钮?...
- [篇三章一]_微软虚拟机 Hyper-V 上安装纯 MS-DOS 6.22 系统
- Python第四课:input()函数
- 标准功能模块组件 -- 内部联络单组件,内部邮件组件,提高多人异地协同办公效率
- 【题解】选数字 [51nod1354]
- 推荐 :数据科学研究的现状与趋势
- 这五个数据分析师技巧你一定要知道!
- 死锁的成因和解决方案
- RMS TO EAP通过MQTT简单实现(2)
- 关于中国新能源发展最近趋势的深度分析!政府和科技巨头抓住了历史拐点
热门文章
- 快速修剪技巧_三角梅花后修剪有讲究,轻剪还是重剪?品种和养殖环境来决定...
- 三代测序数据分析之文献推荐
- android实现分类搜索功能,android应用中的搜索功能怎么实现的
- linux pwm控制蜂鸣器 滴滴_兴安盟KOBISHI电磁蜂鸣器BZ-21BLAC24V保证
- cv2.waitKey(1) == ord('key')的等待键盘用法
- ubuntu16.04 opencv多版本管理与切换
- c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?
- HTML中收藏和删除的小图案,YS - 《网页制作》复习题(多选题)
- 【每日一题】502. IPO
- html创建等边三角形,CSS3 等边三角形组成星形图案