数据预处理面试题及数据清洗工具使用技巧含答案.docxVIP

  • 1
  • 0
  • 约5.21千字
  • 约 13页
  • 2025-12-30 发布于福建
  • 举报

数据预处理面试题及数据清洗工具使用技巧含答案.docx

第PAGE页共NUMPAGES页

2026年数据预处理面试题及数据清洗工具使用技巧含答案

一、选择题(共5题,每题2分,合计10分)

1.在数据预处理阶段,以下哪项不属于数据清洗的主要任务?

A.处理缺失值

B.检测并纠正数据类型错误

C.特征工程(如降维、特征组合)

D.识别并处理异常值

答案:C

解析:数据清洗主要关注数据质量提升,包括缺失值处理、异常值检测、重复值清理、数据类型转换等。特征工程通常属于模型构建前的高级预处理步骤,不属于基础清洗范畴。

2.以下哪种方法最适合处理连续型特征中的缺失值?

A.使用固定值填充(如0或均值)

B.使用众数填充

C.K最近邻(KNN)填充

D.插值法

答案:C

解析:对于连续型特征,KNN填充能利用周围样本的相似性恢复缺失值,效果优于简单填充。固定值填充和众数填充适用于离散型数据;插值法也可用于连续数据,但KNN更适用于高维场景。

3.在Python中,使用Pandas处理大规模数据时,以下哪种方法能有效减少内存占用?

A.`df.info()`

B.`df.astype({col:category})`

C.`df.dropna()`

D.`df.to_csv()`

答案:B

解析:将高基数离散型特征转换为`category`类型能显著降低内存消耗。`df.info()`用于查看数据概况;`df.dropna()`会删除缺失值;`df.to_csv()`用于导出数据。

4.在Spark中,如何高效检测数据中的重复行?

A.`df.groupBy().count().filter(count1)`

B.`df.dropDuplicates()`

C.`df.distinct()`

D.`df.duplicated().any()`

答案:A

解析:Spark中检测重复行需统计每行出现次数并筛选`count1`的记录。`dropDuplicates()`会删除重复行;`distinct()`返回所有唯一行;`duplicated().any()`仅检查是否存在重复,不返回具体重复项。

5.在数据标准化时,以下哪种方法对异常值最敏感?

A.Min-Max标准化

B.Z-score标准化

C.MaxAbs标准化

D.Robust标准化

答案:B

解析:Z-score标准化受异常值影响大,因需计算均值为0、标准差为1的转换,异常值会拉大标准差。Min-Max和MaxAbs对极值不敏感;Robust标准化使用中位数和四分位距,抗干扰性强。

二、简答题(共4题,每题5分,合计20分)

6.简述缺失值处理的三种常见策略及其适用场景。

答案:

1.删除法:

-全部删除:适用于缺失比例极低(如5%)且样本量充足时,但可能导致信息损失。

-列删除:若某列缺失值超过70%,可直接删除该列(如文本特征缺失较多时)。

-行删除:仅当行缺失值较少且不影响整体样本多样性时适用。

2.填充法:

-均值/中位数/众数填充:适用于数值型/类别型数据缺失比例不高(如10%)时,简单易行但会掩盖真实分布。

-模型预测填充:如KNN填充(基于邻近样本)、回归填充(如使用其他特征预测缺失值),适用于高维或缺失值关联性强的数据。

3.标记法:

-为缺失值添加特殊标记(如-1),适用于缺失本身具有业务含义(如用户未填写生日可标记为“未知”)。

7.解释数据异常值的三种典型检测方法,并说明如何处理。

答案:

1.统计方法:

-箱线图(IQR):通过上下四分位数(Q1、Q3)和IQR(Q3-Q1)界定异常值(通常定义为Q1-1.5IQR或Q3+1.5IQR之外)。

-Z-score:绝对值大于3通常视为异常。适用于正态分布数据。

2.聚类方法:

-K-means聚类:异常值通常形成单独的小簇。可结合轮廓系数评估异常簇。

3.孤立森林(IsolationForest):

-通过随机切分构建决策树,异常值因样本稀疏被孤立,适合高维数据。

处理方法:

-删除:适用于异常值比例极低且无业务意义(如传感器故障读数)。

-替换:用均值/中位数/分位数或模型预测值替代。

-分箱:将异常值纳入特殊区间(如将极高收入用户归类为“顶级客户”)。

8.列举Pandas中至少三种数据类型转换的方法,并说明场景。

答案:

1.`astype(str)`/`astype(int)`等:

-场景:统一类型(如将`1.0`转为`1`)、处理数值型特征中的非数字字符(如`100kg`转为`100`)。

2.`pd.to_datetime()`:

-场景:将字符串或时间戳转为`datetime`对象,便于计算时间差或提

文档评论(0)

1亿VIP精品文档

相关文档