乐趣区

关于pandas:全自动化数据洞察数据分布对比可视化⛵

本文介绍如何应用 Pandas Profiling 的比拟报告性能,剖析两个数据集的散布差别,实现数据摸索剖析 (EDA) 的残缺流程,为后续剖析做筹备。


💡 作者:韩信子 @ShowMeAI
📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40
📘 本文地址:https://www.showmeai.tech/article-detail/411
📢 申明:版权所有,转载请分割平台与作者并注明出处
📢 珍藏 ShowMeAI 查看更多精彩内容

💡 引言

可视化是 EDA 的根底。当面对一个新的、未知的数据集时,视觉查看使咱们可能理解可用的信息,绘制一些无关数据的模式,并诊断出咱们可能须要解决的几个问题。在这方面,📘Pandas Profiling 始终是每个数据科学家工具箱中不可或缺的瑞士刀,能够帮忙咱们疾速生成数据摘要报告,包含数据概览、变量属性、数据分布、反复值和其余指标。它可能在可视化中出现这些信息,以便咱们更好地了解数据集。但如果咱们可能比拟两个数据集呢,有没有疾速的形式能够实现?

在本篇博客文章中,ShowMeAI 将介绍如何利用 Pandas Profiling 的比拟报告性能来晋升数据摸索剖析 (EDA) 流程。咱们会介绍到如何应用 Pandas Profiling 比拟报告性能来比拟两个不同的数据集,这能够帮忙咱们更快地比照剖析数据,获取散布差别,为后续做筹备。

咱们本次用到的数据集是 🏆Kaggle 的 HCC 数据集,大家能够通过 ShowMeAI 的百度网盘地址下载。

🏆 实战数据集下载(百度网盘):公众号『ShowMeAI 钻研核心』回复『实战 』,或者点击 这里 获取本文 [[42]Pandas Profiling:应用高级 EDA 工具比照剖析 2 个数据集](https://www.showmeai.tech/art…)『HCC 数据集

ShowMeAI 官网 GitHub:https://github.com/ShowMeAI-Hub

对于更多数据自动化摸索工具,能够参考 ShowMeAI 过往文章 📘自动化数据分析 (EDA) 工具库大全

💡 全自动数据 EDA 工具 Pandas Profiling 性能回顾

咱们回顾一下 Pandas Profiling 的装置与应用形式:

# 通过 pip 装置
pip install pandas-profiling==3.5.0

如果咱们须要对 hcc 数据集进行剖析,参考代码如下:

import pandas as pd
from pandas_profiling import ProfileReport


# Read the HCC Dataset
df = pd.read_csv("hcc.csv")


# Produce the data profiling report
original_report = ProfileReport(df, title='Original Data')
original_report.to_file("original_report.html")

咱们会失去十分清晰的数据分析后果报告,如下是报告的头部信息:

Alerts局部对数据进行剖析后,给出了 4 种次要类型的潜在剖析后果,蕴含可能有的危险和解决形式:

  • Duplicates:数据中有 4 个反复行;
  • Constant :’O2’ 是常量字段,求职999
  • High Correlation:有强相关性的几个特色;
  • Missing :“Ferritin”字段存在缺失值。

💡 数据处理

这对这些问题咱们能够做一些解决。

💦 删除反复行

在数据集中,有些特色十分具体,波及到集体的生物测量值,比方血红蛋白、MCV、白蛋白等。所以,很难有多个患者报告所有特色的雷同准确值。因而,咱们能够从数据中删除这些反复项。

# Drop duplicate rows
df_transformed = df.copy()
df_transformed = df_transformed.drop_duplicates()

💦 删除不相干的特色

在数据分析过程中,有些特色可能不具备太多价值,比方 O2 常数值。删除这些特色将有助于模型的开发。

# Remove O2
df_transformed = df_transformed.drop(columns='O2')

💦 缺失数据插补

数据插补是用于解决缺失数据的办法。它容许咱们在不删除察看值的状况下填补缺失值。均值插补是最常见和最简略的统计插补技术,它应用特色的均值来填充缺失值。咱们将应用均值插补来解决 HCC 数据集中的缺失数据。

# Impute Missing Values
from sklearn.impute import SimpleImputer
mean_imputer = SimpleImputer(strategy="mean")
df_transformed['Ferritin'] = mean_imputer.fit_transform(df_transformed['Ferritin'].values.reshape(-1,1))

💡 数据并行比照剖析

上面咱们就进入高级性能局部了!咱们在对 1 份数据分析后,如果心愿有另外一份数据可能比对剖析,怎么做呢。上面咱们以解决前后的数据为例,来解说这个剖析的实现形式:

transformed_report = ProfileReport(df_transformed, title="Transformed Data")
comparison_report = original_report.compare(transformed_report)
comparison_report.to_file("original_vs_transformed.html") 

最初的比照报告如下:

咱们能够从数据集概述中立刻理解什么?

  • 转换后的数据集蕴含更少的分类特色(”O2″ 已被删除)
  • 165 个察看值(而原来的 171 个包含反复项)
  • 没有缺失值(与原始数据集中的 79 个缺失察看值造成比照)

这种转变如何影响咱们的数据品质?这些决定是否很好?咱们发现在删除重复记录方面,没有特地的影响,数据缺失和数据分布有一些变动,如下图所示:

从上述图解中,能够看出一些信息,比方对于“铁蛋白”字段,插补数据的均值估算值导致原始数据散布被扭曲。这样解决可能是有问题的,咱们应该防止应用均值估算来替换缺失值。在这种状况下,应该应用其余办法来解决缺失值,例如删除缺失值或应用其余统计办法来估算缺失值。

也能够通过相互作用和相关性的可视化来察看到这一点,在“铁蛋白”与其余特色之间的关系中,会呈现不统一的相互作用模式和更高的相干值。

上图为铁蛋白与年龄之间的相互作用,估算值显示在对应于平均值的垂直线上。

上图为相关性状况比照,铁蛋白相干值仿佛在数据插补后减少。

💡 总结

在本篇内容中,ShowMeAI 解说了 pandas-profiling 工具对不同数据进行比照剖析的办法,咱们用解决前后的数据做了一个简略的解说,理论这个办法也能够用到训练集和测试集的比照中,用于发现数据漂移等问题。

对于数据漂移,能够参考 ShowMeAI 的文章 📘机器学习数据漂移问题与解决方案

参考资料

  • 📘 Pandas Profiling
  • 📘 自动化数据分析 (EDA) 工具库大全:https://showmeai.tech/article-detail/284
  • 📘 机器学习数据漂移问题与解决方案:https://showmeai.tech/article-detail/331

举荐浏览

🌍 数据分析实战系列 :https://www.showmeai.tech/tutorials/40
🌍 机器学习数据分析实战系列 :https://www.showmeai.tech/tutorials/41
🌍 深度学习数据分析实战系列:https://www.showmeai.tech/tutorials/42
🌍 TensorFlow 数据分析实战系列:https://www.showmeai.tech/tutorials/43
🌍 PyTorch 数据分析实战系列:https://www.showmeai.tech/tutorials/44
🌍 NLP 实战数据分析实战系列:https://www.showmeai.tech/tutorials/45
🌍 CV 实战数据分析实战系列:https://www.showmeai.tech/tutorials/46
🌍 AI 面试题库系列:https://www.showmeai.tech/tutorials/48

退出移动版