福永三合一网站设计,东莞公司网站制作公司,php网站开发百度云,济南抖音seo#x1f388;个人主页#xff1a;甜美的江 #x1f389;欢迎 #x1f44d;点赞✍评论⭐收藏 #x1f917;收录专栏#xff1a;机器学习 #x1f91d;希望本文对您有所裨益#xff0c;如有不足之处#xff0c;欢迎在评论区提出指正#xff0c;让我们共同学习、交流进步… 个人主页甜美的江 欢迎 点赞✍评论⭐收藏 收录专栏机器学习 希望本文对您有所裨益如有不足之处欢迎在评论区提出指正让我们共同学习、交流进步 数据清洗之识别缺失点 一 缺失值的概念及危害1.1 缺失值的概念1.2 缺失值的危害 二 识别缺失值2.1 可视化检查2. 2 统计描述2.3 编程检查 引言 在机器学习领域数据的质量直接关系到模型的性能和可靠性。而在实际应用中我们往往面临一个普遍存在的问题——缺失值。缺失值可能因为各种原因而产生如传感器故障、数据采集错误或者主观选择性填写。因此深入了解并识别缺失值成为数据清洗的重要步骤之一。 本文将探讨缺失值的概念及其危害并介绍在数据清洗中如何通过可视化检查、统计描述以及编程检查等方法来有效地识别缺失值从而为后续的数据处理和建模奠定基础。 一 缺失值的概念及危害
当涉及到数据清洗时缺失值是一个非常重要的概念。缺失值指的是数据集中某些字段或变量中的数据项缺失或未填充的情况。 这些缺失值可能出现在数据收集、传输、存储或处理的任何阶段其存在可能会带来许多危害。 以下是关于缺失值的概念以及其危害的详细介绍
1.1 缺失值的概念
定义
缺失值是指在数据集中某些字段或变量中缺少数据值或者未填充的值。这些缺失值通常用特殊的标识符如NaN、NULL、NA等来表示。
类型 缺失值可以是完全随机的也可以是有规律的如某个特定的条件下出现缺失。常见的缺失值类型包括单个值缺失、整行数据缺失、连续值序列缺失等。
1.2 缺失值的危害
1 影响数据质量 缺失值会降低数据集的质量和可用性使数据分析和建模的结果变得不准确和不可靠。 2 偏倚分析结果 当数据中存在缺失值时可能会导致分析结果产生偏差从而影响对数据的正确理解和决策制定。 3 减少数据样本量 在数据清洗过程中删除包含缺失值的数据项或者变量会导致数据样本量减少进而降低模型的训练效果和泛化能力。 4 失去信息 缺失值可能包含重要的信息因此简单地删除缺失值可能会导致信息的丢失从而影响数据分析的完整性和准确性。 5 影响统计分析 缺失值会影响统计分析的结果例如均值、方差等统计指标会因缺失值而产生偏差。 6 导致误解 缺失值的存在可能导致对数据的误解使得对现实世界情况的理解出现偏差或错误。
二 识别缺失值
在处理缺失值之前我们需要先找出缺失值而找出缺失值主要有以下三种方法
2.1 可视化检查
在数据清洗中通过可视化方法来识别缺失值是一种直观且有效的方式。
以下是一些常用的可视化检查方法
1 热力图Heatmap 方法 使用热力图可以直观地显示整个数据集中缺失值的分布情况。通常热力图中缺失值的部分会以不同颜色或阴影表示。 工具 可以使用Python中的Seaborn或Matplotlib库来创建热力图。 import seaborn as sns
import matplotlib.pyplot as pltsns.heatmap(data.isnull(), cbarFalse, cmapviridis)
plt.show()2 缺失值比例柱状图 方法 绘制柱状图显示每个变量中缺失值的比例。这可以帮助识别哪些变量受到缺失值的影响较大。 工具 使用Matplotlib或Seaborn库创建柱状图。 import matplotlib.pyplot as pltmissing_percentage (data.isnull().sum() / len(data)) * 100
missing_percentage missing_percentage[missing_percentage 0]
missing_percentage.sort_values(inplaceTrue)plt.bar(missing_percentage.index, missing_percentage)
plt.xlabel(Variables)
plt.ylabel(Missing Percentage)
plt.xticks(rotation45)
plt.show()3 缺失值的分布直方图 方法 对于特定变量绘制其缺失值的分布直方图以了解缺失值在该变量上的分布情况。 工具 使用Matplotlib或Seaborn库创建直方图。 import matplotlib.pyplot as pltplt.hist(data[Variable_with_missing], bins20, colorskyblue, edgecolorblack)
plt.xlabel(Variable_with_missing)
plt.ylabel(Frequency)
plt.title(Distribution of Missing Values)
plt.show()4 缺失值的模式图 方法 绘制缺失值的模式图以显示数据集中缺失值的模式。 这有助于识别是否存在特定的缺失值模式。 工具 可以使用Seaborn的clustermap方法。 import seaborn as snssns.clustermap(data.isnull(), cmapviridis)
plt.show()这些可视化方法能够帮助数据科学家和分析师更好地理解数据集中的缺失值分布情况从而采取有针对性的数据清洗策略。
示例
代码
import matplotlib.pyplot as plt
import pandas as pd# 读取数据集
height_data pd.read_csv(rD:\jupter notebook\base\机器学习\数据预处理\数据清洗\data\height_data.csv)# 打印缺失值的数量
missing_values height_data[Height].isnull().sum()
print(fTotal Missing Values: {missing_values})# 显示缺失的ID
missing_ids height_data[height_data[Height].isnull()][ID].tolist()
print(fMissing IDs: {missing_ids})# 创建直方图
plt.hist(height_data[ID], bins10, colorskyblue, edgecolorblack, alpha0.7, labelAll IDs)
plt.hist(missing_ids, bins10, colorred, edgecolorblack, alpha0.7, labelMissing IDs)
plt.xlabel(ID)
plt.ylabel(Frequency)
plt.title(Distribution of IDs with Missing Values)
plt.legend()
plt.show()
数据集内容如下
ID,Height
1,170
2,165
3,180
4,NaN
5,175
6,172
7,168
8,NaN
9,185
10,170
运行结果
在这个示例中使用plt.hist()函数分别绘制了所有ID和缺失ID的直方图并在图例中添加了标签。在图表上缺失ID的数据用红色表示。此外代码还打印了缺失值的总数量以及缺失的具体ID从直方图上可以明显地看出一共有两个数据缺失缺失数据的ID分别是48。
代码分析给小白看的
import matplotlib.pyplot as plt导入matplotlib库用于绘制图表。 import pandas as pd导入pandas库用于数据处理。 height_data pd.read_csv(
rD:\jupter notebook\base\机器学习\数据预处理\数据清洗\data\height_data.csv)使用pandas的read_csv()函数从指定路径读取名为height_data.csv的数据集文件并将其存储在名为height_data的DataFrame中。 missing_values height_data[Height].isnull().sum()使用isnull()函数检查Height列中的缺失值并使用sum()函数计算缺失值的数量将结果存储在变量missing_values中。 print(fTotal Missing Values: {missing_values})打印缺失值的总数量。 missing_ids height_data[height_data[Height].isnull()][ID].tolist()使用布尔索引选择Height列中存在缺失值的行并提取这些行中的ID列然后将其转换为列表形式存储在变量missing_ids中。 print(fMissing IDs: {missing_ids})打印缺失的ID。 plt.hist(height_data[ID], bins10, colorskyblue,edgecolorblack, alpha0.7, labelAll IDs)使用plt.hist()函数创建一个直方图绘制所有ID的分布情况 height_data[‘ID’]是要绘制直方图的数据列 bins10指定直方图的柱子数量为10个 colorskyblue’设置直方图的颜色为天蓝色 edgecolorblack’设置直方图的边框颜色为黑色 alpha0.7设置透明度为0.7 labelAll IDs’设置图例标签为All IDs plt.hist(missing_ids, bins10, colorred,edgecolorblack, alpha0.7, labelMissing IDs)再次使用plt.hist()函数创建一个直方图绘制缺失ID的分布情况 missing_ids是要绘制直方图的数据其余参数设置与上一步类似 labelMissing IDs’设置图例标签为Missing IDs plt.xlabel(ID)和plt.ylabel(Frequency)分别设置X轴和Y轴的标签。 plt.title(Distribution of IDs with Missing Values)设置图表的标题为Distribution of IDs with Missing Values表示具有缺失值的ID的分布情况。 plt.legend()添加图例用于区分不同的直方图。 plt.show()显示创建的图表。 这段代码的主要功能是可视化身高数据集中ID的分布情况并通过不同颜色的直方图区分具有缺失值的ID。同时代码还打印了缺失值的总数量和缺失的ID。
2. 2 统计描述
在数据清洗过程中识别缺失值的统计描述方法有助于了解数据集中缺失值的分布、缺失模式和缺失值的数量。以下是一些常用的统计描述方法
1 缺失值数量统计
简单地计算每个变量中缺失值的数量这可以通过使用isnull()和sum()函数实现。
示例代码
missing_count data.isnull().sum()
print(missing_count)2 缺失值比例统计
计算每个变量中缺失值的比例通常以百分比的形式呈现。 示例代码
missing_percentage (data.isnull().sum() / len(data)) * 100
print(missing_percentage)3 缺失值的汇总统计
使用describe()函数生成有关数据集中缺失值的统计摘要包括均值、标准差、最小值、25th、50th中位数、75th百分位数和最大值。 示例代码
missing_summary data.describe(includeall, datetime_is_numericTrue)
print(missing_summary)4 缺失值的累积统计
对数据集进行累积求和生成一个累积缺失值的统计图有助于识别哪些部分的数据更容易受到缺失值的影响。
示例代码
cumulative_missing data.isnull().cumsum()
print(cumulative_missing)5 缺失模式统计
通过统计不同缺失模式的出现频率可以发现是否存在某些变量同时缺失的趋势。
示例代码
missing_pattern_count data.apply(tuple, axis1).duplicated().sum()
print(fNumber of rows with the same missing pattern: {missing_pattern_count})这些统计描述方法为数据清洗提供了一个全面的视角使数据科学家能够更好地理解数据集中缺失值的性质为后续的处理和填充提供指导。
2.3 编程检查
识别缺失值是数据清洗中的一个关键步骤它有助于我们理解数据集的完整性并采取适当的处理措施。以下是一些常用的编程检查方法
1 使用isnull()函数
在Python中我们可以使用isnull()函数来检查数据集中的缺失值。 这个函数会返回一个布尔值的DataFrame其中缺失值对应的位置为True非缺失值为False。 示例代码
import pandas as pd# 创建一个示例DataFrame
data pd.DataFrame({A: [1, 2, None, 4],B: [None, 5, 6, 7]})# 使用isnull()函数检查缺失值
missing_values data.isnull()
print(missing_values)运行结果
2 使用any()函数
any()函数用于检查DataFrame中每列是否存在至少一个True值即是否存在缺失值。 示例代码
# 检查是否存在缺失值
any_missing missing_values.any()
print(any_missing)3 使用sum()函数
sum()函数可以对布尔值的DataFrame进行求和统计每列中True值缺失值的数量。 示例代码
# 统计每列缺失值的数量
missing_count missing_values.sum()
print(missing_count)4 使用info()函数
info()函数可以提供关于DataFrame的简明摘要信息其中包括每列的非空值数量。 通过比较非空值数量和数据集总行数可以快速识别出缺失值的存在。 示例代码
# 查看DataFrame的摘要信息
data.info()三 总结
数据清洗中的缺失值处理是构建可靠机器学习模型的关键步骤。通过深入了解缺失值的概念及其危害以及采用可视化检查、统计描述和编程检查等方法我们能够全面地识别数据中的缺失点。这为后续的数据填充、插补或删除等操作奠定了基础确保数据的完整性和可靠性从而提高模型的准确性和鲁棒性。在实际应用中仔细识别缺失点将为我们构建更加健壮和可信赖的机器学习模型提供重要支持。 这篇文章到这里就结束了 谢谢大家的阅读 如果觉得这篇博客对你有用的话别忘记三连哦。 我是甜美的江让我们我们下次再见