图解数据分析数据清洗与预处理腾讯云开发者社区

在现实世界中,数据一般都是异构的、有缺失的、有量纲的。有些数据是从多个不同的数据源中获取的,这些异构数据,在各自的系统中都是正确无误的,只不过很有“个性”。

例如,有的系统中使用0和1,代表性别;而有些系统使用f和m代表性别。

所谓量纲,简单来说,就是说数据的单位。有些数据是有量纲的,比如身高;而有些数据是没有量纲的,例如,男女比例。不同评价指标往往具有不同的量纲,数据之间的差别可能很大,不进行处理会影响到数据分析的结果。

为了消除指标之间的量纲和取值范围差异对数据分析结果的影响,需要对数据进行标准化处理。就是说,把数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。

归一化是数据标准化中最简单的方式,目的是把数变为[0,1]之间的小数,把有量纲的数据转换为无量纲的纯数量。归一化能够避免值域和量纲对数据的影响,便于对数据进行综合分析。

举个简单的例子,在一次考试中,小明的语文成绩是100分、英语成绩是100分,单单从这考试成绩来评价,小明的语文和英语学的一样好。但是,如果你知道语文总分是150分,而英语总分只有120分,你还认为小明的语文和英语成绩是一样的吗?

对小明的成绩做简单的归一化:

采用离差归一化方法,公式是:y=(x-min)/range,这里设min=0,那么range=max-min=max,由此推算出小明的语文成绩是4/6,英语成绩是5/6。因此,判定小明的英语成绩好于语文成绩。还原到真实的场景中,各科的考题难度不尽相同,设班级中语文的最低分数是min语文=60,英语的最低分数是min英语=85,推算出小明的语文成绩是0.44=(100-60)/(150-60),英语成绩是0.43=(100-85)/(120-85),据此,可以判断小明的英语成绩稍差于语文成绩。

归一化的使得具有不同值域、不同量纲的数据之间具有可比性,使数据分析的结果更加全面,更接近事实。

异常值在统计学上的全称是疑似异常值,也称作离群点(outlier),异常值的分析也称作离群点分析。

异常值分析是检验数据中是否存在不合常理的数据,在数据分析中,既不能忽视异常值的存在,也不能简单地把异常值从数据分析中剔除。重视异常值的出现,分析其产生的原因,常常成为发现新问题进而改进决策的契机。

在上图中,离群点(outlier)跟其他观测点的偏离非常大。注意,离群点是异常的数据点,但是不一定是错误的数据点。

在数据处理过程中,可以对数据做一个描述性分析,进而查看哪些数据是不合理的。常用的统计量是最大值和最小值,用来判断变量的取值是否超出了合理的范围。例如,客户年龄的最大值是199,该值存在异常。

[1]3σ原则

在介绍Z-score方法之前,先了解一下3σ原则——如果数据服从正态分布,在3σ原则下,异常值被定义为『一组测定值中,与平均值的偏差超过三倍标准差的值』。

在正态分布下,距离平均值3σ之外的值出现的概率为P(|x-μ|>3σ)<=0.003,属于极个别的小概率事件。在3σ原则下,如果观测值与平均值的差值超过3倍标准差,那么可以将其视为异常值。

[2]Z-Score

如果数据不服从正态分布,则可以用『与平均值的距离是标准差的多少倍』来描述,这个倍数就是Z-scor。

Z-Score以标准差(σ)为单位,去度量某一原始分数(X)偏离平均数(μ)的距离。Z-Score需要根据经验和实际情况来决定,通常把远离标准差3倍距离以上的数据点视为离群点。

Python代码的实现如下:

importnumpyasnpimportpandasaspddefdetect_outliers(data,threshold=3):mean_d=np.mean(data)std_d=np.std(data)outliers=[]foryindata_d:z_score=(y-mean_d)/std_difnp.abs(z_score)>threshold:outliers.append(y)returnoutliers(3)IQR异常检测四分位点内距(Inter-QuartileRange,IQR),是指在第75个百分点与第25个百分点的差值,或者说,上四分位数与下四分位数之间的差。

IQR是统计分散程度的一个度量,分散程度通过需要借助箱线图(BoxPlot)来观察。通常把小于Q1-1.5_IQR或者大于Q3+1.5_IQR的数据点视作离群点。

箱线图可以直观地看出数据集的以下重要特性:

使用Python实现,参数sr是Series类型的变量:

defdetect_outliers(sr):q1=sr.quantile(0.25)q3=sr.quantile(0.75)iqr=q3-q1#Interquartilerangefence_low=q1-1.5*iqrfence_high=q3+1.5*iqroutliers=sr.loc[(srfence_high)]returnoutliers2.2异常值处理在数据处理时,异常值的处理方法,需视具体情况而定。有时,异常值也可能是正常的值,只不过异常的大或小,所以,很多情况下,要先分析异常值出现的可能原因,再判断如何处理异常值。处理的异常值的常用方法有:

不是所有的数据都是完整的,有些观测值可能会缺失。对于缺失值,通常的处理方式是删除缺失值所在的数据行、填充缺失值、插补缺失值。

本教程系列的代码可以在ShowMeAI对应的github中下载,可本地python环境运行,能访问Google的宝宝也可以直接借助googlecolab一键运行与交互操作学习哦!

THE END
1.数据清洗的具体方法有哪些?数据清洗流程数据清洗的具体方法有哪些? 清洗数据是数据分析和机器学习项目中至关重要的一步,其目标在于识别并纠正数据集中的错误、遗漏或不一致,以提高数据质量和后续分析结果的准确性。以下是一个详细的数据清洗流程,通常包括以下几个步骤: 1.数据收集与理解 收集数据:从各种来源(如数据库、API、文件等)获取数据。https://blog.csdn.net/Shaidou_Data/article/details/143205411
2.通透!十大数据清洗方法!!51CTO博客文本数据清洗 数据类型转换 特征工程 咱们一起来探讨~ 1. 缺失值处理 原理 缺失值处理是指在数据集中存在空值或缺失数据的情况下,通过合适的策略填补或处理这些缺失值,以减少对后续分析和模型训练的影响。常见的缺失值处理方法包括删除缺失值、均值填补、中位数填补、众数填补和插值法。 https://blog.51cto.com/u_15671528/12187385
3.数据清洗的方法有哪些?一般来说,数据中是存在噪音的,那么噪音是怎么清洗的呢?我们就在这篇文章中给大家介绍一下数据清洗的方法。通常来说,清洗数据有三个方法,分别是分箱法、聚类法、回归法。这三种方法各有各的优势,能够对噪音全方位的清理。分箱法是一个经常使用到方法,所谓的分箱法,就是将需要处理的数据根据一定的规则放进http://baijiahao.baidu.com/s?id=1711739383699713605&wfr=spider&for=pc
4.数据清洗的方法包括什么常见问题数据清洗的方法包括什么 数据清洗的方法包括:1、分箱法,就是将需要处理的数据根据一定的规则放进箱子里,然后进行测试;2、回归法,就是利用函数的数据进行绘制图像,然后对图像进行光滑处理;3、聚类法,就是将抽象的对象进行集合分组,成为不同的集合,找到在集合意外的孤点。https://m.php.cn/faq/478619.html
5.值得收藏!数据清洗的十类常用方法数据清洗是数据治理过程中的一个重要环节,它指的是对原始数据进行筛选、修复、转换和处理,以确保数据的准确性、完整性和一致性。 在数据清洗过程中,不仅需要明确数据清洗的对象,还需要根据具体的情况选择合适的数据清理方法。以下是不同对象所对应不同的数据清洗方法。 https://www.fanruan.com/bw/doc/178453
6.数据分析中的数据预处理包括哪些步骤一、数据清洗 数据清洗是数据预处理的第一步,主要是为了处理原始数据中存在的错误、缺失、重复、异常等问题。具体步骤如下: 1.去重:检查数据集中是否存在重复的数据记录,如有重复,删除其中的一条或多条记录。 2.处理缺失值:数据集中可能存在某些数据缺失的情况,可以通过删除缺失值、替换缺失值或使用插值方法进行处https://www.linkflowtech.com/news/1073
7.数据处理方法有哪些?数据处理的三种方法各位老铁们好,相信很多人对数据处理方法有哪些都不是特别的了解,因此呢,今天就来为大家分享下关于数据处理方法有哪些以及数据处理的三种方法的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧! 一、数据处理的常用方法有 1、列表法:是将实验所获得的数据用表格的形式进行排列的数据处理方法。列表法的https://www.duote.com/tech/202401/534651.html
8.数据清洗的常见问题有哪些?数据清洗的常见问题有哪些? 收藏 数据清洗是数据处理流程中不可或缺的一步,其目的是对原始数据进行筛选、转换和修正,以确保数据质量符合使用要求。然而,在进行数据清洗时,常会遇到一些问题,下面将介绍一些常见的数据清洗问题及解决方法。 缺失数据 在实际数据处理过程中,经常会遇到部分数据缺失的情况,这可能是由于人为https://www.cda.cn/bigdata/202776.html
9.科学网—[转载]制造业生产过程中多源异构数据处理方法综述摘要:随着现代制造业向着自动化、信息化、智能化方向快速发展,生产过程中会产生大量的多源异构数据。对多源异构数据的有效处理和深度挖掘可为生产制造者提供更有效的生产调度、设备管理等策略,从而提高生产质量和效率。针对制造业生产过程中多源异构数据的处理方法与技术等进行系统性的综述,首先明确了制造业生产过程多源异构https://blog.sciencenet.cn/blog-3472670-1287069.html
10.数据清理技术的主要目的包括()数据处理的意义有数据处理是实现数据共享的关键步骤、是检验数据质量的关键环节() A. 是实现空间数据有序化的关键环节 B. 是合理安排工作的环节 C. 是实现数据一致化的准则 D. 是完成数据的步骤 查看完整题目与答案 电子商务中下列不属于数据清洗的是() A. 一致性检查 B. 无效值处理 C. 成对删https://www.shuashuati.com/ti/5c1a68404f6a4076adcda2411f7654b7.html
11.解密代码模型StarCoder&CodeLlamaStarcoder团队对不同类型的编程语言有个性化的处理逻辑,下文我们进一步分析了具体的处理方法。 人工检查 为了筛选出高质量的数据,StarCoder团队通过人工检查的方式进行数据处理。首先从 The Stack 数据集中为每种编程语言随机选择 30,000 个文件,按扩展名对它们进行分类,并为每个扩展名保留最多 1,000 个文件。Starhttps://hub.baai.ac.cn/view/34967