图解数据分析(5) | 核心步骤2 - 数据清洗与预处理(数据科学家入门·完结)

数据清洗与预处理:数据分析中的基础步骤 在数据分析的旅程中,数据清洗与预处理是确保数据质量和分析准确性的基础步骤。本文将深入探讨这些步骤,帮助初学者理解其重要性和应用方法。 阅读详情

ShowMeAI研究中心


数据分析分核心步骤分为:业务认知与数据探索、数据预处理、业务认知与数据探索等三个核心步骤。本文介绍第二个步骤——数据预处理。

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

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

  • 在使用数据之前,首先要对数据做规整处理,使用一致的单位、使用统一的文本来描述对象等。
  • 有些数据中包含大量重复的数据、缺失的数据、或者离群的数据,在开始分析数据之前,必须好好检查数据是否有效,并对数据做预处理操作。
  • 判断离群数值,并对其分析,有时会导致重大发现的产生。

一、数据规整

1.1 量纲

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

1.2 数据标准化

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

1.3 数据归一化

归一化是数据标准化中最简单的方式,目的是把数变为 [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)跟其他观测点的偏离非常大。注意,离群点是异常的数据点,但是不一定是错误的数据点。

2.1 离群点检测

数据分析的数学基础

(1)描述性分析方法

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

(2)Z-Score方法

[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代码的实现如下:

import numpy as np
import pandas as pd

def detect_outliers(data,threshold=3):
    mean_d = np.mean(data)
    std_d = np.std(data)
    outliers = []

    for y in data_d:
        z_score= (y - mean_d)/std_d 
        if np.abs(z_score) > threshold:
            outliers.append(y)
    return outliers

(3)IQR异常检测

四分位点内距(Inter-Quartile Range,IQR),是指在第75个百分点与第25个百分点的差值,或者说,上四分位数与下四分位数之间的差。

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

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

  • 中心位置:中位数所在的位置就是数据集的中心,从中心位置向上或向下看,可以看出数据的倾斜程度。

  • 散布程度:箱线图分为多个区间,区间较短时,表示落在该区间的点较集中;

  • 对称性:如果中位数位于箱子的中间位置,那么数据分布较为对称;如果极值离中位数的距离较大,那么表示数据分布倾斜。

  • 离群点:离群点分布在箱线图的上下边缘之外。

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

def detect_outliers(sr):
    q1 = sr.quantile(0.25)
    q3 = sr.quantile(0.75)
    iqr = q3-q1 #Interquartile range
    fence_low  = q1-1.5*iqr
    fence_high = q3+1.5*iqr
    outliers = sr.loc[(sr < fence_low) | (sr > fence_high)]
    return outliers

2.2 异常值处理

在数据处理时,异常值的处理方法,需视具体情况而定。有时,异常值也可能是正常的值,只不过异常的大或小,所以,很多情况下,要先分析异常值出现的可能原因,再判断如何处理异常值。处理的异常值的常用方法有:

  • 删除含有异常值的记录。

  • 插补,把异常值视为缺失值,使用缺失值的处理方法进行处理,好处是利用现有数据对异常值进行替换,或插补。

  • 不处理,直接在含有异常值的数据集上进行数据分析。

三、缺失值的处理

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

一键运行所有代码

图解数据分析系列 配套的所有代码,可前往ShowMeAI 官方 GitHub,下载后即可在本地 Python 环境中运行。能访问 Google 的宝宝也可以直接借助 Google Colab一键运行与交互学习!

下载数据分析速查表

Awesome cheatsheets | ShowMeAI速查表大全 系列包含『编程语言』『AI技能知识』『数据科学工具库』『AI垂直领域工具库』四个板块,追平到工具库当前最新版本,并跑通了所有代码。点击 官网 或 GitHub 获取~

👇 数据分析相关速查表(部分):

内容速查表(部分)Github代码
Python 3速查表Python 3速查表一键运行速查表代码 - Python
Numpy 速查表Numpy 速查表一键运行速查表代码 - Numpy
Pandas 速查表Pandas 速查表一键运行速查表代码 - Pandas
Matplotlib 速查表Matplotlib 速查表一键运行速查表代码 - Matplotlib
Seaborn 速查表Seaborn 速查表一键运行速查表代码 - Seaborn

拓展参考资料

ShowMeAI图解数据分析系列推荐(数据科学家入门)

ShowMeAI系列教程精选推荐

DeepSeek AI 高效协作指南:从 API 集成到提示词工程实战 在人工智能技术快速发展的今天,大型语言模型(LLM)已成为提升开发与创作效率的关键工具。其核心原理是基于海量数据训练,通过理解上下文和生成连贯文本来辅助人类完成任务。掌握其高效使用方法,能显著提升编程、内容创作与数据分析等场景的生产力。本文聚焦于 DeepSeek 的实战应用,深入探讨 API 集成方案与提示词工程两大关键技术。通过将 AI 能力无缝嵌入 VS Code 等开发环境,并结合角色-任务-约束-输出(RTCF)等结构化提示框架,开发者可将 AI 从被动问答工具转变为主动协作的“数字副脑”。文中融 阅读详情

相关推荐

[Vue][面试]谈谈你对MVC、MVP和MVVM的理解

谈谈你对MVC、MVP和MVVM的理解 答题思路:此题涉及知识点很多,很难说清楚,说透彻,因为MVC,MVP这些我们前端程序员自己甚至都没用过。但是恰恰反映了前端这些年从无到有, 从有到优的变迁过程,因此沿此思路回答将十分清除。 Web1.0时代 在web1.0时代,并没有前端的概念。开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常由多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、C#/Java/PHP代码, 系统整体架构可能如下图所

你好,欢迎光临! 725

hive中简单的表格数据清洗操作(实例+图解+代码 一看就懂 一做就废)

首先导入json 在清洗之前先介绍环境:hive 、beeline、Zeppelin 同时所需的文件在下面的链接中,我祝你心情好????: 链接:https://pan.baidu.com/s/123qr-BuTa7nxLxd1LXvH8A 提取码:cz12

小白 8571

从零构建:STM32与EC800 4G模块的工业物联网数据透传实战

本文详细介绍了如何从零构建STM32与EC800 4G模块的工业物联网数据透传系统。内容涵盖硬件选型、抗干扰电路设计、AT指令稳定性优化、网络连接管理、可靠数据透传协议以及低功耗策略,为开发者提供了一套可直接应用于工业场景的完整实战方案。

uran的专栏 1017

数据分析--数据清洗详解流程

无论是做机器学习还是做数据分析,都离不开获取数据后的第一步-数据清洗工作。据统计,数据清洗工作占据整个工作时间百分之50左右,有的甚至能达到百分之70。下面我将介绍我进行数据清洗得思路流程。 数据清洗整体流程脑图(不断更新中…) 数据准备 本次数据清洗工作我们使用得数据是一个借贷机构开放的用户数据(仅用于个人练习),由于源数据量有将近30万,考虑到运行速度,这里例子从这30万中随机抽取1万条...

sinat_37935727的博客 9757

RK3588平台开发系列讲解(项目篇)常见模型结构

📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。

内核笔记 1759

基于STM32L4XX 、HAL库的TMC2209-LA-T步进电机驱动器驱动程序应用设计

/ R/W=0 表示写。uint32_t gconf_value = (0 << 0) // I_scale_analog: 禁用,使用UART控制电流。uint32_t ihold_irun = (8 << 0) // 保持电流 8/31 最大值。

PP_Cottage的博客 450

python数据分析-数据清洗流程(附脑图和代码实例)

无论是做机器学习还是做数据分析,都离不开获取数据后的第一步-数据清洗工作。据统计,数据清洗工作占据整个工作时间百分之50左右,有的甚至能达到百分之70。下面我将介绍我进行数据清洗得思路流程。

梁先森的博客 1万+

Qt/C++ 音视频开发 - FFmpeg 安卓版

通过将 FFmpeg 集成到 Qt/C++ 项目中,我们可以实现强大且灵活的音视频处理功能。本文介绍了在安卓平台上使用 FFmpeg 的基本步骤,包括初始化、解码、处理和编码等。实际应用代码示例展示了如何在安卓设备上播放视频。

走向CTO的路上... 1193

实用机器学习-2. 数据预处理

一、数据预处理 1. 探索性数据分析 丢掉数据缺失高于30%的列 检查数据类型 类型转换,字符串转成浮点数 eg:货币、面积 检查数字列的最大最小值是否合理 过滤掉不正常值的列 可视化方法 displot subplots/ heaetmap boxplot 2. 数据清洗 流程图 2.1 数据错误 缺值、错误、极端值 好的ML模型对错误容忍度很高,但是会影响精度 把错误的模型部署在线上会影响新收集到的数据质量,模型慢慢变差 2.1.1 数据错误类型 Outliers:数据的值不再正

u013551615的博客 2825

谱方法学习笔记-下(超详细)

《谱方法学习笔记》深入介绍了傅立叶谱方法在解决偏微分方程问题中的理论和实践,提供了清晰的步骤、Matlab代码以及对一维、二维波动方程等不同问题的解析,适合对谱方法感兴趣的学习者。

图灵的猫的博客 2854

安装glibc出现../sysdeps/nptl/pthread.h:744:47:error:argument 1 of type ‘struct __jmp_buf_tag *‘ 解决方案

本文主要介绍了安装glibc出现…/sysdeps/nptl/pthread.h:744:47:error:argument 1 of type ‘struct __jmp_buf_tag *’ 解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

图解数据分析(16) | 数据可视化原则与方法(数据科学家入门·完结)

数据可视化是以图示或图形格式表示的数据,以更直观方式理解与分析数据。本篇内容,我们给大家介绍数据分析中关于可视化的一些核心知识,包括:各类图形及特点,不同图形选择方法。

ShowMeAI研究中心 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

图解数据分析(8) | Numpy - 统计与数据科学计算工具库介绍(数据科学家入门·完结)

n维数组是NumPy的核心概念,大部分数据的操作都是基于n维数组完成的。本系列内容覆盖到1维数组操作、2维数组操作、3维数组操作方法,本篇为系列导入文章,讲解数组的特点、与列表的对比等。......

ShowMeAI研究中心 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

图解数据分析(11) | Numpy - 与高维数组操作(数据科学家入门·完结)

n维数组是NumPy的核心概念,大部分数据的操作都是基于n维数组完成的。本系列内容覆盖到1维数组操作、2维数组操作、3维数组操作方法,本篇讲解Numpy与3维、更高维数组的操作。

ShowMeAI研究中心 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数据清洗与预处理:数据科学入门最关键的收尾实战

数据科学项目中,数据准备环节往往占据近八成时间。数据清洗与预处理是数据分析流程中承上启下的关键步骤,决定了后续探索分析与建模结果的可信度。常见数据质量问题包括缺失值、重复值、异常值和格式混乱,处理时需结合业务含义选择删除、填充或编码策略;同时,类型转换、标准化/归一化、分类变量编码和日期时间解析等预处理操作,能有效提升特征质量。Python与Pandas提供了高效的数据清洗工具,比如用fillna处理缺失值、用StandardScaler做标准化、用get_dummies进行独热编码。掌握这些基础技术,不仅

weixin_29057065的博客 209

python中认识数据分析

📋 数据分析完整流程一个标准的 Python 数据分析项目遵循以下 6 个核心阶段数据获取CSV · API · 数据库数据清洗缺失值 · 异常值探索分析EDA · 统计描述数据可视化图表 · 仪表盘建模分析ML · 统计模型报告输出结论 · 洞察。

belong_my_offer的博客 5474

人工智能时代:Python学习的全面攻略路线图

在人工智能(AI)快速发展的今天,Python以其简洁的语法、强大的库和广泛的社区支持,成为了众多开发者和数据科学家的首选语言。为了帮助初学者及进阶者系统地学习Python,并在AI领域中提升技能,本文将提供一份全面的学习路线图,从基础知识到深入应用,涵盖各个阶段的学习内容和资源。

码上飞扬的博客 1421

AI训练师图解_02_能力培养_成为一名合格的AI训练师

文章摘要 本章系统阐述了AI训练师所需的核心能力体系,包括计算机操作、数学基础、编程技能、特征工程和数据处理五大关键领域。计算机操作是基础能力,涵盖操作系统使用到云计算应用;数学知识(线性代数、概率统计等)构成算法理论基础;编程技能(Python等)是实现AI模型的技术手段;特征工程体现数据价值挖掘能力;数据处理则贯穿数据采集、清洗、标注和管理全流程。这些能力的有机结合,使AI训练师能够有效完成从数据到智能模型的转化工作,在人工智能应用中发挥关键作用。

热爱科技,物联,程序开发等 355

机器学习基础篇-数据清洗

Capture 1 在机器学习的工作流中,数据清洗环节尤为重要。接下来首先让我们看一下数据预处理的流程图。 总的来说,主要包含下面三大块: 收集数据 标注数据 提升数据质量 Capture 2 Data Errors 所谓数据错误,就是你收集到的数据和实际的数据之间存在不一致。 数据实际上是存在的,但是在数据表里是missing了 数据的极值超出其所属的范围,例如房价不能小于0,但是在数据表却存在负数。 虽然数据存在存在错误无可避免,但是一个好的机器学习模型能够容忍这些错误的存在,同样能够训练+收

你好,今天的你 2214

数据预处理经历了哪些流程和步骤?

需要说明的是,数据清理、数据集成、数据变换、数据规约都是数据预处理的主要步骤,它们没有严格意义上的先后顺序,在实际应用时并非全部会被使用,具体要视业务需求而定。该步骤会通过一系列的方法对“脏”数据进行处理,包括删除重复数据、填充缺失数据、检测异常数据等,以达到清除冗余数据、规范数据、纠正错误数据的目的。数据预处理针对各种数据问题提供了相应的解决方法,并将这些方法按照不同的功能划分到处理过程中的每个步骤,以逐步实现提高数据质量、整合多源数据、调整数据形式、保留重要数据的目标。数据变换的示意图如下 所示。

zy1992As的博客 3485

关于数据清洗的步骤及方法的理解

数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。在实际操作中,数据清洗通常会占据分析过程的50%—80%的时间。国外有些学术机构会专门研究如何做数据清洗,相关的书籍也不少。 我将在这篇文章中,尝试非常浅层次的梳理一下数据清洗过程,供各位参考。 照例,先上图: 预处理阶段 预处理阶段主要做两件事情: 一是将数据导入处理工具。通常来说,建议使用数据库,单机跑数搭建MySQL环境即可。如果数据量大(千万级以上),可以使用文本文件存储+Python操作的.

zjjcchina的博客 1万+

数据清洗的一些梳理

(欢迎转载到个人朋友圈,转载时请带原文链接,公众号和其他媒体转载前请私信联系本人获取授权) 首先对@MayaG表示感谢,这篇文章是被你提的问题激发出的灵感,非常感谢~ 数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。在实际操作中,数据清洗通常会占据分析过程的50%—80%的时间。国外有些学术机构会专门研究如何做数据清洗,相关的书籍也不少。 (美亚搜

GarfieldEr007的专栏 2万+

风控建模(七):催收评分卡的流程—上(所有评分模型与机器学习模型同样适用)

关注公众号“ 番茄风控大数据”,获取更多数据分析与风控大数据的实用干货。   说了那么久的建模,今天应该跟大家分享一下实际建模的流程步骤了。   整套建模代码我分别用sas跟python都整理了一遍,而且现在也打算用神经网络试一下建模,看下模型的各项验证指标能提升多少。   建模的流程 , 目前综合各大公司的开发流程的来看,大同小异,今天这篇主要分上中下篇或者上下篇,具体看码字的篇幅,跟大家介绍下...

weixin_45545159的博客 4265

数据清洗的一般方法和步骤

在正式分析数据前,我们通常需要先预处理一下数据,比如筛选有效样本,定义变量格式,处理缺失值等,这些操作也就是是数据清洗的过程,目的是把数据整理成比较清洁的形式,便于后续处理。R的tidyv...

R语言学堂 4800

《数据清洗》 第一章 数据清洗概述 总结

1.1数据清洗的背景 1.1.1数据质量概述 数据质量是指在业务环境下,数据符合数据消费者的使用目的,能满足业务场景具体需求的程度。在不同的业务场景中,数据消费者对数据质量有各自不同的观点。从适用性角度来说,数据质量是一个相对的概念。不同的决策者对数据质量的高低要求也是不同的。对于一个无关的数据,即使质量很高,对决策也起不到任何作用。 数据质量的显著特点如下: 1)“业务需求”会随时间变化,数据质量也会随时间发生变化。 2)数据质量可以借助信息系统度量,但独立于信息系统存在。’ 3)数据质量存在于数据的整个

weixin_45832778的博客 4103
上一篇: 图解数据分析(4) | 核心步骤1 - 业务认知与数据初探(数据科学家入门·完结)
下一篇: 图解数据分析(6) | 核心步骤3 - 业务分析与数据挖掘(数据科学家入门·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值