Machine learning 中Missing Values可视化--missingo

736 阅读2分钟

快速可视化数据集中缺失值的好工具是专门的库-missuno。我们将在下面演示它。

1安装

pip install missingno

2查看缺失值

for col in train_events.columns:
    percent_nan = train_events[col].isnull().mean() * 100
    msg = f"column: {col:>10}\t Percent of NaN value: {percent_nan:.2f}%"
    print(f"\n---> {msg}")
    ```


---> column:  series_id	 Percent of NaN value: 0.00%

---> column:      night	 Percent of NaN value: 0.00%

---> column:      event	 Percent of NaN value: 0.00%

---> column:       step	 Percent of NaN value: 33.93%

---> column:  timestamp	 Percent of NaN value: 33.93%

---> column:       year	 Percent of NaN value: 33.93%

---> column:      month	 Percent of NaN value: 33.93%

---> column:        day	 Percent of NaN value: 33.93%

---> column:       hour	 Percent of NaN value: 33.93%
# 3使用方法
1. bar方法
```py
import missingno as msno
msno.bar(train, color=(0.4,0.4,0.6))

image.png

  1. matrix()
msno.matrix(train_events, color=(0.3,0.3,0.5))

image.png 根据图表中白线的数量,我们可以推断数据集中的缺失值情况。观察到白线越多,说明数据集中的缺失值越多。图表左侧的纵坐标显示了样本数量的起始和结束值,即数据集包含了14508条数据。右下角的数字3表示数据集中有3列没有缺失值,而右侧的数字9表示数据集总共有9列数据。

  1. heatmap()
  • 缺失变量的相关关系
  • 相关热missingno图衡量无效相关性:一个变量的存在或不存在对另一个变量的存在的影响程度:
msno.heatmap(train_events)

image.png

  1. dendrogram():
msno.train_events(train_events)

image.png

树状图通过一种分层聚类算法(由Scipy提供)可以更全面地揭示变量之间的关联关系,进一步展示出比相关热图中可见的成对趋势更深入的趋势。

在树状图的构建过程中,变量根据它们之间的无效相关性(以二进制距离衡量)被彼此分类。在每一步的分割中,选择能够最小化剩余簇之间距离的组合方式。当变量集合越单调时,它们的总距离越接近于零,同时它们的平均距离(y轴)也越接近于零。

官方文档