在真实世界数据集的情况下,数据集中的某些值丢失是非常常见的。我们将这些缺失值表示为NaN(非数字)值。但是要构建一个好的机器学习模型,我们的数据集应该是完整的。这就是为什么我们使用一些插补技术来用一些可能的值替换NaN值。但在此之前,我们需要很好地理解NaN值在数据集中的分布情况。
Missingno库提供了一种非常好的方式来可视化NaN值的分布。Missingno是一个Python库,与Pandas兼容。
安装库
pip install missingno
示例
# Program to visualize missing values in dataset
# Importing the libraries
import pandas as pd
import missingno as msno
# Loading the dataset
df = pd.read_csv("kamyr-digester.csv")
# Visualize missing values as a matrix
msno.matrix(df)
输出
使用这个矩阵,您可以非常快速地找到数据集中的缺失模式。在我们的示例中,列AAWhiteSt-4和SulphidityL-4具有类似的缺失值模式,而UCZAA显示不同的模式。
条形图
# Program to visualize missing values in dataset
# Importing the libraries
import pandas as pd
import missingno as msno
# Loading the dataset
df = pd.read_csv("kamyr-digester.csv")
# Visualize the number of missing
# values as a bar chart
msno.bar(df)
输出
这个条形图让你了解每列中有多少缺失值。在我们的示例中,AAWhiteSt-4和SulphidityL-4包含最多的缺失值,其次是UCZAA。
热力图
# Program to visualize missing values in dataset
# Importing the libraries
import pandas as pd
import missingno as msno
# Loading the dataset
df = pd.read_csv("kamyr-digester.csv")
# Visualize the correlation between the number of
# missing values in different columns as a heatmap
msno.heatmap(df)
输出
热图显示每2列之间缺失的相关性。在我们的例子中,AAWhiteSt-4和SulphidityL-4之间的相关性为1,这意味着如果它们中的一个存在,那么另一个也存在。
接近-1的值意味着如果一个变量出现,则另一个变量很可能缺失。
接近0的值意味着两个变量的缺失值的出现之间没有相关性。
接近1的值意味着如果一个变量出现,则另一个变量很可能存在。
参考:https://github.com/ResidentMario/missingno