文章图片
文章图片
文章图片
你一定听说过这句著名的数据科学名言:
如果你没有听过 , 那么请记住:数据清洗是数据科学工作流程的基础 。机器学习模型会根据你提供的数据执行 , 混乱的数据会导致性能下降甚至错误的结果 , 而干净的数据是良好模型性能的先决条件 。当然干净的数据并不意味着一直都有好的性能 , 模型的正确选择(剩余 20%)也很重要 , 但是没有干净的数据 , 即使是再强大的模型也无法达到预期的水平 。
在数据科学项目中 ,80% 的时间是在做数据处理 。
在本文中将列出数据清洗中需要解决的问题并展示可能的解决方案 , 通过本文可以了解如何逐步进行数据清洗 。
缺失值当数据集中包含缺失数据时 , 在填充之前可以先进行一些数据的分析 。因为空单元格本身的位置可以告诉我们一些有用的信息 。例如:
- NA值仅在数据集的尾部或中间出现 。这意味着在数据收集过程中可能存在技术问题 。可能需要分析该特定样本序列的数据收集过程 , 并尝试找出问题的根源 。
- 如果列NA数量超过 70–80% , 可以删除该列 。
- 如果 NA 值在表单中作为可选问题的列中 , 则该列可以被额外的编码为用户回答(1)或未回答(0) 。
import missingno as msno
msno.matrix(df)
对于缺失值的填补计算有很多方法 , 例如:
- 平均 , 中位数 , 众数
- kNN
- 零或常数等
异常值异常值是相对于数据集的其他点而言非常大或非常小的值 。它们的存在极大地影响了数学模型的性能 。让我们看一下这个简单的示例:
在左图中没有异常值 , 我们的线性模型非常适合数据点 。在右图中有一个异常值 , 当模型试图覆盖数据集的所有点时 , 这个异常值的存在会改变模型的拟合方式 , 并且使我们的模型不适合至少一半的点 。
对于异常值来说我们有必要介绍一下如何确定异常 , 这就要从数学角度明确什么是极大或极小 。
大于Q3+1.5 x IQR或小于Q1-1.5 x IQR都可以作为异常值 。IQR(四分位距) 是 Q3 和 Q1 之间的差 (IQR = Q3-Q1) 。
【Python|使用 Python 进行数据清洗的完整指南】可以使用下面函数来检查数据集中异常值的数量:
def number_of_outliers(df):
df = df.select_dtypes(exclude = 'object')
Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1
return ((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).sum()
处理异常值的一种方法是可以让它们等于 Q3 或 Q1 。下面的lower_upper_range 函数使用 pandas 和 numpy 库查找其外部为异常值的范围 ,然后使用clip 函数将值裁剪到指定的范围 。
def lower_upper_range(datacolumn):
sorted(datacolumn)
Q1Q3 = np.percentile(datacolumn[2575
)
IQR = Q3 - Q1
lower_range = Q1 - (1.5 * IQR)
upper_range = Q3 + (1.5 * IQR)
return lower_rangeupper_range
for col in columns:
lowerboundupperbound = lower_upper_range(df[col
)
df[col
=np.clip(df[col
a_min=lowerbounda_max=upperbound)
数据不一致异常值问题是关于数字特征的 , 现在让我们看看字符类型(分类)特征 。数据不一致意味着列的唯一类具有不同的表示形式 。例如在性别栏中 , 既有m/f , 又有male/female 。 在这种情况下 , 就会有4个类 , 但实际上有两类 。
这种问题目前没有自动处理的办法 , 所以需要手动进行分析 。pandas 的unique函数就是为了这个分析准备的 , 下面看一个汽车品牌的例子:
df['CarName'
- |只需打开一个开关,手机就能开启“双系统”,同时使用互不干扰
- 微信|使用微信要注意:有一个“陷阱”很多人都不知道,早点告诉家里人
- 国行|3个月主力使用后,折叠屏折痕是否惨不忍睹?机主用视频做了对比
- 红米手机|红米K50使用3天后上手体验,聊聊优缺点和一些使用感受
- 华为鸿蒙系统|华为大喜!俄罗斯BQ手机被禁止使用安卓,或转投鸿蒙系统!
- Python|华为麒麟芯片保持研发进度,mate50系列不用,也会在以后用上
- Python|俄罗斯国产笔记本问世:自研8核ARM处理器
- 手机行业|赖床必备神器,ORICO折叠电脑桌使用分享,跟你想得很不一样
- meta|美国的社交媒体改革正在盲目进行中!
- vivo|vivo首款平板vivoPad将至!内存8GB起步,给你畅快使用体验