【数据挖掘与数据仓库实战】数据预处理:题目:实现数据去重、离群点检测、缺失值处理等数据预处理。

一、实验目的和要求 

题目:实现数据去重、离群点检测、缺失值处理等数据预处理。

要求:

用(但不限于)Bengaluru_House_Data.csv数据集、weight-height.csv数据集(kaggle下载)进行离群点检测与处理实验;

用weather_data.csv 、titanic_train.csv数据集(kaggle下载)进行缺失值处理实验;设计实验方案、编制相关程序并提交实验报告。

二、实验类型

实践型实验

三、主要仪器设备 

1.电脑一台Mac系统),搭载STS运行jupyter

四、实验原理

1.数据去重

数据去重是为了移除数据集中重复的记录,避免在后续分析中引入偏差。

方法:

使用 pandas 的 drop_duplicates() 方法。

可以选择保留第一个或最后一个重复项,或者完全移除所有重复项。

2.离群点检测与处理

离群点可能会影响数据分析的结果,因此需要检测和处理这些异常值。

方法:

IQR 方法:基于四分位数范围(IQR)检测离群点。

Z-Score 方法:基于标准差检测离群点。

可视化:使用箱线图(Boxplot)或散点图可视化离群点。

3.缺失值处理

处理数据中的缺失值,以确保数据的完整性和分析的准确性。

方法:

删除缺失值:直接移除包含缺失值的行或列。

填充缺失值:

使用均值、中位数或众数填充数值型或分类型列。

使用前向填充(ffill)或后向填充(bfill)。

使用插值方法(如线性插值)。

预测缺失值:使用机器学习模型预测缺失值。

五、实验内容及实验数据记录

(一)用Bengaluru_House_Data.csv数据集进行离群点检测与处理实验;

1. 数据预处理

加载数据集,并检查数据的基本信息和缺失值情况。

2.使用 IQR 方法检测 price 和 total_sqft 列的离群点。

3.处理离群点

(二)用weight-height.csv数据集进行离群点检测与处理实验

1. 数据预处理

加载数据集,并检查数据的基本信息和缺失值情况。

2.离群点检测(使用 IQR 方法)并输出离群点个数

3.删除离群点并可视化

(三)用weather_data.csv进行缺失值处理实验

1.数据预处理

加载数据集,查看数据基本信息。

2.可视化缺失值

3.对数值型列进行线性插值,对分类列使用前向填充

(四)用titanic_train.csv数据集进行缺失值处理实验

1.数据预处理

2.使用中位数填充 Age 列

3.使用模型预测缺失值(随机森林回归)

4.可视化比较Age列不同方法

5.处理 Embarked 列的缺失值

6.可视化比较 Embarked 列不同方法

7.处理 Cabin 列的缺失值,填充默认值 'Unknown'

六、心得体会

通过本次的实验,系统实践了数据去重、离群点检测、缺失值处理等数据预处理,采用对比了多种方法。

在数据预处理阶段,数据去重、离群点检测与处理以及缺失值处理是三个核心环节,它们对提升数据质量和分析结果的准确性至关重要。通过实践,我深刻体会到这些环节不仅需要技术手段,还需要对数据的特性和业务逻辑有深入的理解。

数据去重是数据清洗的第一步,看似简单,但稍有不慎就可能误删重要信息。因此,在去重前,必须明确哪些字段是唯一标识记录的关键字段,避免因错误操作导致数据丢失或信息不完整。去重后,还需重新检查数据的完整性和一致性,确保数据质量不受影响。

离群点检测与处理更具挑战性。离群点可能对数据分析和模型训练产生极大影响,因此需要准确检测并合理处理。实践中,我尝试了多种方法,如 IQR 方法、Z-Score 方法等,每种方法都有其适用场景。处理离群点时,不能简单地删除,因为它们可能包含有价值的信息。结合业务知识和数据特性进行综合判断是关键。此外,可视化工具(如箱线图)在离群点检测中非常有用,能直观展示数据分布和离群点位置。

缺失值处理是数据预处理中最常见且复杂的问题。数据缺失可能导致模型训练失败或分析结果不准确,因此需要谨慎处理。实践中,我尝试了多种方法,如删除缺失值、填充缺失值(均值、中位数、众数等)以及使用模型预测缺失值。选择合适的方法需根据数据特性和缺失值性质决定。填充后,还需重新检查数据的统计特性,确保填充值未对数据分布产生过大影响。

在实验中也遇到了一些问题,比如说在第二个问题中,处理一个输出时一直报错,最后利用AI发现问题可能出现在data.mean()计算时。DataFrame.mean()方法默认只对数值型列进行计算,但如果数据集中包含非数值型列(如Gender列通常是字符串类型),则会导致问题。为了解决这个问题,需要确保只对数值型列进行填充操作。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值