当前位置: 首页 > article >正文

数据预处理流程与关键步骤解析

数据预处理流程图(Markdown格式):

开始
数据清洗
是否需要特征工程
特征工程
数据集成
数据变换
数据标准化/归一化
是否有异常值
异常值处理
去噪化
结束

1. 数据清洗(Data Cleaning)

目标: 处理缺失值、重复值和异常值。

常用函数:

  • 删除/填充缺失值: sklearn.impute.SimpleImputer
  • 处理重复值: pandas.DataFrame.duplicated

使用场景:

在数据分析中,数据集可能包含缺失值或重复值。例如,在鸢尾花数据集中,假设某些特征值缺失。

示例代码:

import pandas as pd
from sklearn.impute import SimpleImputer# 创建示例数据集(带缺失值)
data = {'sepal_length': [5.1, 3.5, np.nan, 6.7],'sepal_width': [3.6, 2.3, np.nan, 3.3],'petal_length': [1.4, 0.2, 1.3, 2.5],'species': ['setosa', 'versicolor', 'virginica', 'setosa']
}
df = pd.DataFrame(data)# 使用SimpleImputer填充缺失值(mean策略)
imputer = SimpleImputer(strategy='mean')
df_filled = imputer.fit_transform(df[['sepal_length', 'sepal_width']])print("原始数据:\n", df)
print("\n填充后数据:\n", df_filled)

2. 特征工程(Feature Engineering)

目标: 创建新的特征或从现有数据中提取有用信息。

常用函数:

  • 多项式特征生成: sklearn.preprocessing.PolynomialFeatures
  • 文本特征向量化: sklearn.feature_extraction.text.CountVectorizer

使用场景:

在自然语言处理任务中,需要将文本数据转换为数值特征。例如,在情感分析任务中,可以使用CountVectorizer提取单词频率。

示例代码:

from sklearn.feature_extraction.text import CountVectorizer# 创建示例文本数据集
texts = ["This is a positive review","This is a negative review","This is an amazing product","This is a terrible product"
]# 使用CountVectorizer提取特征
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)print("特征名称:", vectorizer.get_feature_names())
print("\n文本向量化结果:\n", X.toarray())

3. 数据标准化(Normalization)和归一化(Standardization)

目标: 标准化数据范围,使其具有相同的尺度。

常用函数:

  • 标准化: sklearn.preprocessing.MinMaxScaler
  • 归一化: sklearn.preprocessing.StandardScaler

使用场景:

在机器学习模型中,不同特征的尺度差异可能会影响模型性能。例如,在K-means聚类算法中,通常需要对数据进行标准化处理。

示例代码:

from sklearn.preprocessing import MinMaxScaler, StandardScaler# 创建示例数据集(带不同尺度的特征)
data = {'age': [20, 30, 40, 50],'income': [20000, 30000, 40000, 50000]
}
df = pd.DataFrame(data)# 使用MinMaxScaler进行标准化
scaler_minmax = MinMaxScaler()
scaled_minmax = scaler_minmax.fit_transform(df)print("标准化结果:\n", scaled_minmax)# 使用StandardScaler进行归一化
scaler_standard = StandardScaler()
scaled_standard = scaler_standard.fit_transform(df)print("\n归一化结果:\n", scaled_standard)

4. 数据编码(Encoding)

目标: 将非数值型数据转换为数值型数据。

常用函数:

  • 类别变量编码: sklearn.preprocessing.LabelEncoder
  • 独热编码: sklearn.preprocessing.OneHotEncoder

使用场景:

在分类任务中,类别特征需要被编码为数值。例如,在Titanic生存预测问题中,乘客的性别(男/女)可以使用LabelEncoder进行编码。

示例代码:

from sklearn.preprocessing import LabelEncoder# 创建示例数据集(带类别变量)
data = {'gender': ['male', 'female', 'female', 'male'],'age': [20, 30, 40, 50]
}
df = pd.DataFrame(data)# 使用LabelEncoder进行编码
label_encoder = LabelEncoder()
df['gender_encoded'] = label_encoder.fit_transform(df['gender'])print("原始数据:\n", df)
print("\n编码后结果:\n", df['gender_encoded'])

5. 数据分割(Splitting Data)

目标: 将数据集划分为训练集和测试集。

常用函数:

  • 数据分割: sklearn.model_selection.train_test_split

使用场景:

在模型训练过程中,通常需要将数据集划分为训练集和测试集,以评估模型的泛化能力。

示例代码:

from sklearn.model_selection import train_test_split# 创建示例数据集
X = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [0, 1, 0, 1]# 使用train_test_split分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)print("训练集特征:\n", X_train)
print("\n测试集特征:\n", X_test)
print("\n训练集标签:\n", y_train)
print("\n测试集标签:\n", y_test)

总结

以上是常见的数据预处理方法及其在不同任务中的应用示例。通过合理地对数据进行预处理,可以显著提高机器学习模型的性能和准确性。

相关文章:

数据预处理流程与关键步骤解析

数据预处理流程图(Markdown格式): #mermaid-svg-b3mhJcpFWaJ9qMZ8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-b3mhJcpFWaJ9qMZ8 .error-icon{fill:#552222;}#mermaid-svg-b3m…...

字节DAPO算法:改进DeepSeek的GRPO算法-解锁大规模LLM强化学习的新篇章(代码实现)

DAPO算法:解锁大规模LLM强化学习的新篇章 近年来,大规模语言模型(LLM)在推理任务上的表现令人瞩目,尤其是在数学竞赛(如AIME)和编程任务中,强化学习(RL)成为…...

计算机操作系统(四) 操作系统的结构与系统调用

计算机操作系统(四) 操作系统的结构与系统调用 前言一、操作系统的结构1.1 简单结构1.2 模块化结构1.3 分层化结构1.4 微内核结构1.5 外核结构 二、系统调用1.1 系统调用的基本概念1.2 系统调用的类型 总结(核心概念速记)&#xf…...

Docker安装,并pullMySQL和redis

卸载原Docker 您的 Linux 发行版可能提供非官方的 Docker 软件包,这可能与 Docker 提供的官方软件包冲突。在安装 Docker Engine 正式版之前,您必须先卸载这些软件包。 sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common…...

第三天 开始Unity Shader的学习之旅之第二天的补充

Unity Shader的学习笔记 第三天 开始Unity Shader的学习之旅之第二天的补充 文章目录 Unity Shader的学习笔记前言一、Unity 提供的内置文件和变量1. 内置的包含文件2. UnityCG.cginc中的常用结构体 二、Unity 提供的Cg/HLSL语义1. 从应用阶段传递模型数据给顶点着色器时Unity…...

DeepSeek技术架构解析:MoE混合专家模型

一、前言 2025年初,DeepSeek V3以557万美元的研发成本(仅为GPT-4的1/14)和开源模型第一的排名,在全球AI领域掀起波澜。其核心创新之一——混合专家模型(Mixture of Experts, MoE)的优化设计,不…...

【正点原子】AI人工智能深度学习(RV1126/RK3568/RK3588)-第1期 准备篇

1.1SDK编译后的目录 1、真正的根文件系统镜像存放目录 2、非必须,负责系统升级等,kerneldtbramdisk组成的根文件系统 1.2文件系统分区 1.3开机自启动 1.6设置静态ip地址 1.8RKMedia框架/编译测试SDK自带RKMedia例程 出厂系统以下内容都是默认…...

PCB沉金和镀金的区别

本文通过多方面角度对比两者的区别。 一.成本和工艺复杂度 沉金:成本较高,制作过程中消耗的金盐多。工艺的参数控制上较严格,需防止“黑盘效应”。 黑盘效应:是指在PCB(印刷电路板)的化学镀镍金&#xf…...

靶场(十五)---小白心得思路分析---LaVita

启程: 扫描端口,发现开放22,80端口,发现ws.css可能存在exp,经查发现无可利用的exp PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.4p1 Debian 5deb11u2 (protocol 2.0) | ssh-hostkey: | 3072 c9…...

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek 通义万相制作AI视频流程 4.1 D…...

Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例

我们前文已经深度解读了三角形、梯形、高斯、S型和Z型隶属函数,现在转向Pi型。当然我们先简要回顾不同隶属函数的特点和曲线效果。了解每种隶属函数的特性是为了更好的应用。 一、回顾五种隶属函数的特点 1.从每种隶属函数的结构和特点角度对比。三角形隶属函数&am…...

MySQL 入门大全:常用函数

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

轻量级TLS反向代理工具TLS-reverse-proxy:打造安全通信桥梁

在数字化浪潮席卷全球的今天,数据隐私与传输安全已成为企业及个人的核心关切。TLS(传输层安全协议)作为互联网通信的"隐形卫士",承担着保护数据在传输过程中不被窃取或篡改的重要使命。然而,对于许多传统服务…...

SpringBoot3实战(SpringBoot3+Vue3基本增删改查、前后端通信交互、配置后端跨域请求、数据批量删除(超详细))(3)

目录 一、从0快速搭建SpringBoot3工程、SpringBoot3集成MyBatis、PageHelper分页查询的详细教程。(博客链接) 二、实现前端与后端通信对接数据。(axios工具) &#xff08;1&#xff09;安装axios。(vue工程目录) &#xff08;2&#xff09;封装请求工具类。(request.js) <1&…...

AF3 Rotation 类解读

Rotation 类(rigid_utils 模块)是 AlphaFold3 中用于 3D旋转 的核心组件,支持两种旋转表示: 1️⃣ 旋转矩阵 (3x3) 2️⃣ 四元数 (quaternion, 4元向量) 👉 设计目标: 允许灵活选择 旋转矩阵 或 四元数 封装了常用的 旋转操作(组合、逆旋转、应用到点上等) 像 torch.…...

JVM垃圾回收笔记02-垃圾回收器

文章目录 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相关参数-XX:UseSerialGC 2.吞吐量优先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相关参数-XX:UseParallelGC ~ -XX:UseParallelOldGC-…...

Linux上位机开发实战(编写API库)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们自己编写linux上位机软件的时候&#xff0c;尽量都是通过框架库的形式来开发。这就是所谓的低耦合&#xff0c;高内聚。相似的功能、模块和算法…...

深入浅出JVM性能优化:从理论到实践

一、JVM架构与内存模型深度解析 1.1 JVM运行时数据区全景图 方法区&#xff08;元空间&#xff09;&#xff1a;存储类信息、常量池等元数据堆内存&#xff1a;对象实例存储核心区域 Young Generation&#xff08;新生代&#xff09; Eden区&#xff08;对象诞生地&#xff0…...

Redis Sentinel 详解

Redis Sentinel 详解 1. 什么是 Redis Sentinel&#xff1f;有什么用&#xff1f; Redis Sentinel&#xff08;哨兵&#xff09; 是 Redis 官方提供的高可用性解决方案&#xff0c;主要用于监控、通知和自动故障转移。当 Redis 主节点&#xff08;master&#xff09;发生故障…...

器件功耗模型原理

器件功耗模型原理 谷歌提供了一套通用的器件耗电模型和配置方案&#xff0c;先对器件进行耗电因子拆解&#xff0c;建立器件功耗模型&#xff0c;得到一个器件耗电的计算公式。通过运行时统计器件的使用数据&#xff0c;代入功耗模型&#xff0c;就可以计算出器件的功耗。例如…...

拥抱成长型思维:解锁持续进步的人生密码

我强烈推荐4本可以改变命运的经典著作&#xff1a; 《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅读白话文《了凡四训》在线阅读白话文 一、什么是成长型思维&#xff1f; 成长型思维&#xff08;Growth Mindset&#xff09;由斯坦福大学心理学家卡…...

Ubuntu上查看GPU使用情况并释放内存

先用nvidia-smi查看GPU当前使用情况 再用fuser 命令查找对应显卡上占用 GPU 的进程 最后查到了用kill -9强制杀掉进程&#xff08;PID&#xff09;即可...

解决思科交换机无法访问局域网外设备

问题背景 有时&#xff0c;我们需要远程连接来管理一台思科交换机&#xff0c;例如使用SSH协议。然而交换机运作在链路层&#xff0c;这就需要交换机有一个网络层地址&#xff0c;来接纳基于IP协议的远程访问请求。于是&#xff0c;我们依靠设置一个带有IP地址的交换机虚拟接口…...

Unity Shader编程】之透明物体渲染

以下是针对您提出的关于 Unity Shader 渲染 Pass 的查看方法、多个 Pass 的影响、Pass 的含义&#xff0c;以及 Unity 渲染物体的流程和处理多个透明/半透明/不透明物体的详细解答。 1. Unity Shader 渲染 Pass 的查看方法 查看 Pass 的方法 通过 Shader 代码&#xff1a; 打开…...

fopen和open 等区别是什么?文件描述符与文件描述指针区别

FILE *fp fopen(path, "w"); int fd open(path,) 1.区别 函数定义所属库返回类型fopen高级文件操作函数&#xff0c;提供缓冲机制标准 C 库 (stdio.h)FILE*&#xff08;文件指针&#xff09;open低级文件操作函数&#xff0c;直接调用系统接口Unix/Linux 系统调用…...

什么是张量计算

以下是对张量计算的详细介绍&#xff0c;结合数学、物理学及计算机科学等多领域视角&#xff1a; 一、张量的基本定义与性质 1. 张量的数学定义 张量是向量空间及其对偶空间的笛卡尔积上的多重线性映射&#xff0c;可视为多维数组或几何对象。其核心特征在于&#xff1a; 坐…...

【1】Java 零基础入门学习(小白专用)

【1】Java 零基础入门学习 &#x1f4da;博客主页&#xff1a;代码探秘者 ✨专栏&#xff1a;《JavaSe从入门到精通》 其他更新ing… ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;作者水…...

[c语言日寄]枚举类型

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

替代-UX设计师

初创公司如何在没有设计师的情况下 打造实用的用户体验 一个常见的捷径是使用预构建的组件库&#xff0c;如谷歌的 Material UI它们为你提供了构建块&#xff0c;但它们并没有为你考虑整个用户流程你仍然需要弄清楚所有这些是如何组合在一起的但是&#xff0c;很多时候&#x…...

【氧化镓】​​​​掺杂在β-Ga2O3材料中引入的深能级缺陷

1. 引言 1.1 β-Ga2O3材料的特性与应用前景 β-Ga2O3作为一种新型的宽禁带半导体材料,具有约4.6-4.8 eV的宽带隙、高击穿场强(约8 MV/cm)和优异的热稳定性,适用于高功率和射频电子器件。其独特的物理特性使其在高电压、高频率以及高功率应用场景中具有巨大的潜力。例如,…...