missingno——缺失数据可视化

【说明】文章内容来自《机器学习入门——基于sklearn》,用于学习记录。若有争议联系删除。

        数据处理中,缺失数据可视化。missingno提供了一个灵活且易于使用的缺少数据可视化工具和实用程序的小型工具集,可以快速直观地概述数据集的完整性。

1、安装

pip install missingno

2、创建数据可视化

import warnings
import numpy as np
import pandas as pd
from sklearn.datasets import make_classification
import missingno as msno
import matplotlib.pyplot as plt
from itertools import product
warnings.filterwarnings('ignore')
#自定义数据集,并随机产生2000个NaN值,分布在各个特征中
def getData():
    x1, y1 = make_classification(n_samples = 1000, n_features = 10, n_classes = 2,
                                n_clusters_per_class = 1, random_state = 0)
    for i, j in product(range(x1.shape[0]), range(x1.shape[1])):
        if np.random.random()>= 0.8:
            xloc = np.random.randint(0, 10)
            x1[i, xloc] = np.nan
    return x1,y1
x, y = getData()
#存入pandas中
df = pd.DataFrame(x, columns = ['x%s'% str(i) for i in range(x.shape[1])])
df['label'] = y
msno.matrix(df)
plt.show()

【运行结果】

3、利用data.csv数据实现。

文件资源链接:https://pan.baidu.com/s/1qiS3RJIZYbpbLuHGXQbkuA 
提取码:yj47

import pandas as pd
import missingno as msno
df = pd.read_csv('./data.csv')
df.isna().sum()

【运行结果】

(1)bar——条形图

msno.bar(df)
# 在图的左侧,y 轴刻度范围从 0.0 到 1.0,其中 1.0 表示 100% 的数据完整性。
# 如果条形小于此值,则表明在该列中缺少值。
# 在图的右侧,标度以指数值衡量。右上角表示数据框中的最大行数。
# 沿着图的顶部,有一系列数字表示该列中非空值的总数。
# 在此示例中,可以看到许多列(DTS、DCAL 和 RSHA)具有大量缺失值。
# 其他列(例如 WELL、DEPTH_MD 和 GR)是完整的并且具有最大数量的值。

【运行结果】

(2)matrix——矩阵

msno.matrix(df)
# 矩阵图为每一列提供颜色填充。当数据存在时,绘图以灰色(或选择的颜色)着色,
# 当数据不存在时,绘图以白色显示。
# 从结果图中可以看出,DTS、DCAL 和 RSHA 列显示了大部分缺失数据。这在条形图中已确定,
# 但额外的好处是可以查看缺失数据在数据框中的分布情况。
# 图的右侧是一条迷你图,范围从左侧的 0 到右侧数据框中的总列数。
# 当一行在每一列中都有一个值时,该行将位于最右边的位置。随着该行中缺失值开始增加,
# 该行将向左移动。

【运行结果】

(3)heatmap——热力图

        missingno相关的热力图测量空值相关性,即以个变量的存在或不存在对另一个变量存在的影响程度。

msno.heatmap(df)
# 热图用于识别每个不同列之间的无效相关性。换句话说,它可以用来识别每列之间
# 是否存在空值的关系。
# 接近正 1 的值表示一列中存在的空值与另一列中存在的空值相关。
# 接近负 1 的值表示一列中空值的存在与另一列中空值的存在反相关。换句话说,当一列中存在空值时,另一列中存在数据值,反之亦然。
# 接近 0 的值表示与另一列相比,一列中空值的存在几乎没有关系。
# 有许多值显示为 <-1。这表明相关性非常接近 -100% 。
# 可以看到,ROP 列与 RHOB、NPHI 和 PEF 列略有负相关,与 RSHA 略有正相关。
# 如果我们看一下 DRHO,它的缺失与 RHOB、NPHI 和 PEF 列中的缺失值高度相关。
# 热图方法更适合较小的数据集。

【运行结果】

(4)dendrogram——树状图

        树状图可以让你更充分地变量之间的相关性,揭示比相关性热力图中可见的两两之间的关系更深入的关系。

msno.dendrogram(df)
# 树状图提供了通过层次聚类生成的树状图,并将具有强相关性的列组合在一起。
# 如果多个列在零级分组在一起,则其中一列中空值的存在与其他列中空值的存在或不存在直接相关。树中的列分离得越多,
# 空值在列之间关联的可能性就越小。
# 在上面的树状图中,可以看到有两个不同的组:
# 第一个位于右侧(DTS、RSHA 和 DCAL),它们都具有高度的空值。
# 第二个在左侧,其余列更完整。
# LITHOFACIES、GR、GROUP、WELL 和 DEPTH_MD 都在零处分组在一起,表示它们是完整的。
# RDEP、Z_LOC、X_LOC 和 Y_LOC组合在一起接近于零。
# RMED 位于同一个较大的分支中,这表明该列中存在的一些缺失值可以与这四列相关。
# 对于上述缺失值可以利用pandas直接填充或删除(行或列),也可利用模型进行推理。

【运行结果】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/247329.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于set和map的简单理解

1. 关于搜索 1.1 set和map的引入 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有&#xff1a; 1. 直接遍历&#xff0c;时间复杂度为O(N)&#xff0c;元素如果比较多效率会非常慢 2. 二分查找&…

verilog语法进阶-分布式ram

概述: FPGA的LUT查找表是用RAM设计的&#xff0c;所以LUT可以当成ram来使用&#xff0c;也并不是所有的LUT都可以当成ram来使用&#xff0c;sliceM的ram可以当成分布式ram来使用&#xff0c;而sliceL的ram只能当成rom来使用&#xff0c;也就是只能读&#xff0c;不能写&#x…

JS的箭头函数this:

箭头函数不会创建自己的this&#xff0c;它只会从自己的作用域链的上一层沿用this。 具体看实例&#xff1a; //以前&#xff1a;谁调用的这个函数 this就指向谁// console.log(this);//window// function fn(){// console.log(this);//window 因为这个函数也是window调用…

python学习1

大家好&#xff0c;这里是七七&#xff0c;今天开始又新开一个专栏&#xff0c;Python学习。这次思考了些许&#xff0c;准备用例子来学习&#xff0c;而不是只通过一大堆道理和书本来学习了。啊对&#xff0c;这次是从0开始学习&#xff0c;因此大佬不用看本文了&#xff0c;小…

【Lidar】基于Python格网法计算点云体积(eg.树木体积)

这两天一直不在状态&#xff0c;不是特别想分享文章&#xff0c;所以也没怎么更新。但是代码放在文件里始终不是它的归宿&#xff0c;只有被不断使用它才能进步&#xff0c;才能诠释它的意义。所以今天抽空给大家分享一下如何基于Python利用格网法计算点云的体积&#xff0c;我…

Spring+SpringMVC+SpringBoot

Spring bean bean基础配置 bean别名配置 注意事项&#xff1a; 获取bean无论是通过id还是name获取。如果无法获取到&#xff0c;将抛出异常NoSuchBeanDefinitionException bean的作用范围配置 适合交给容器进行管理的bean 表现层对象、业务层对象、数据层对象、工具对象 不…

jmeter调试错误全集(入门必备)

一、前言 在使用jmeter做接口测试的过程中大家是不是经常会遇到很多问题&#xff0c;但是无从下手&#xff0c;不知道从哪里开始找起&#xff0c;对于初学者而言这是一个非常头痛的事情。这里结合笔者的经验&#xff0c;总结出以下方法。 二、通过查看运行日志调试问题 写好脚…

UE4/UE5 日志插件(基于spdlog)

1 解决问题 对于高频日志序列化到本地的需求&#xff0c;spdlog肯定完美满足。 源码地址&#xff1a;https://github.com/gabime/spdlog 博主下载的版本为 spdlog-1.12.0&#xff0c;各位大佬可以根绝自己爱好选择。 2 过程介绍 大概目录&#xff1a; SpdlogLibC目录下是对…

WGAN 优势小结

我在上一篇博文为什么 GAN 不好训练中&#xff0c;分析了原始 GAN 难以训练的原因&#xff0c;本篇博文将分析下 WGAN 的优势。 1. Wasserstein 距离 W 是指 Wasserstein&#xff0c;Wasserstein 距离又叫Earth-Mover&#xff08;EM&#xff09;距离。Wasserstein距离相比KL散…

2024年企业和个人都在备考的权威性 AI人工智能工程师培训类证书

给大家推荐个2024年企业和个人都在备考的权威性 AI人工智能工程师培训类证书&#xff0c;看能否帮到大家的&#xff1a; 由工业和信息化部电子工业标准化研究院颁发的关于以下两类证书&#xff1a; 计算机自然语言及语音处理设计开发工程师&#xff08;中级&#xff09; 计算机…

软件设计师——信息安全(二)

&#x1f4d1;前言 本文主要是【信息安全】——软件设计师——信息安全的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304…

【无数次任意地址读+栈溢出】ImaginaryCTF2023 -- opportunity

前言 本题不难&#xff0c;但感觉笔者的做法挺有意思&#xff08;嘿嘿&#xff0c;自夸啦&#xff09;&#xff0c;利用到了最近学到的 ret2hbp。 漏洞分析 保护&#xff1a;smap 等都开了&#xff0c;标配啦 >_< 漏洞是直给的&#xff1a;这里存在一个 256 字节的任…

阅读代码的记录

1-utils_metrics.py用在train.py中做指标衡量&#xff0c;现在想在推理&#xff08;predict.py&#xff09;的时候衡量一下指标 2-调研眼睛部位的单独分割。 https://blog.csdn.net/qq_40234695/article/details/88633094 衡量图像语义分割准确率主要有三种方法&#xff1a; …

高级C#技术(二)

前言 本章为高级C#技术的第二节也是最后一节。前一节在下面这个链接 高级C#技术https://blog.csdn.net/qq_71897293/article/details/134930989?spm1001.2014.3001.5501 匿名类型 匿名类型如其名&#xff0c;匿名的没有指定变量的具体类型。 举个例子&#xff1a; 1 创建…

YOLOv8改进《目标对象计数》多任务实验:深度集成版来了!支持自定义数据集训练自定义模型

💡该教程为改进YOLO专栏,属于《芒果书》📚系列,包含大量的原创改进方式🚀 💡🚀🚀🚀内含改进源代码 按步骤操作运行改进后的代码即可💡更方便的统计更多实验数据,方便写作 YOLOv8改进《目标对象计数》多任务实验:深度集成版来了!支持自定义数据集训练自定…

匿名内部类与Lambda表达式

深入了解Java的匿名内部类 Java作为一种面向对象的编程语言&#xff0c;提供了许多灵活的特性&#xff0c;其中之一就是匿名内部类。匿名内部类是一种没有名字的局部内部类&#xff0c;通常用于创建只需在一个地方使用的类的实例。 什么是匿名内部类&#xff1f; 匿名内部类是…

学习Java第70天,过滤器Filter简介

过滤器概述 Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一 Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口 Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和…

Unity2023.3(Unity6)版本开始将可以发布WebGPU

翻译一段官网上的话&#xff1a; 利用Unity 2023.3(正式发布时应该称为Unity6)中最新的WebGPU图形API集成&#xff0c;尝试最大限度的提升您的网络游戏的真实感。 通过与谷歌的战略合作&#xff0c;Unity实时3D平台的强大的图形功能现在为图形丰富的网络游戏进行微调&#xff0…

知识库SEO:提升网站内容质量与搜索引擎排名的策略

随着搜索引擎算法的不断更新和优化&#xff0c;单纯依靠关键词堆砌和外部链接的时代已经过去。现在的SEO&#xff08;搜索引擎优化&#xff09;已经转向了以提供高质量、有价值内容为核心的阶段。知识库SEO便是这个新阶段的重要策略之一。 | 一、知识库SEO的概念与意义 1.定义…

python 新手学习 - 简单实用的 Python 周期任务调度工具

如果你想周期性地执行某个 Python 脚本&#xff0c;最出名的选择应该是 Crontab 脚本&#xff0c;但是 Crontab 具有以下缺点&#xff1a; 1.不方便执行秒级任务。 2.当需要执行的定时任务有上百个的时候&#xff0c;Crontab 的管理就会特别不方便。 还有一个选择是 Celery&a…