数据预处理 #数据挖掘 #python

数据分析中的预处理步骤是数据分析流程中的重要环节,它的目的是清洗、转换和整理原始数据,以便后续的分析能够准确、有效。预处理通常包括以下几个关键步骤:

  1. 数据收集:确定数据来源,可能是数据库、文件、API或网络抓取,确保数据的质量和完整性。

  2. 数据清洗(Data Cleaning)

    • 缺失值处理:填充、删除或估算缺失的数据。
    • 异常值检测:识别并可能修复或排除不合理的数值。
    • 重复值检查:删除重复记录,保持数据唯一性。
    • 数据类型转换:将数据调整为正确的格式,如日期时间格式化、数值类型等。
  3. 数据集成(Data Integration):如果数据来自多个源,需要合并和统一数据格式。

  4. 数据转换(Data Transformation)

    • 标准化或归一化:使数据具有可比性,例如Z-score标准化或Min-Max缩放。
    • 编码分类变量:如One-Hot Encoding或Label Encoding。
    • 特征工程:创建新的特征,比如从文本中提取关键词或计算衍生指标。
  5. 数据降维(Dimensionality Reduction):如果数据维度过高,可能使用PCA(主成分分析)或LDA(潜在狄利克雷分配)等方法减少冗余。

  6. 数据划分(Data Splitting):将数据集分为训练集、验证集和测试集,用于模型的训练和评估。

  7. 数据采样(Sampling):对于大规模数据,可能需要进行随机抽样或分层抽样以平衡类别分布。

  8. 数据可视化(Exploratory Data Analysis, EDA):初步了解数据的分布、关联性和模式。

完成这些预处理步骤后,数据就准备好了供机器学习模型进行训练和预测。预处理的质量直接影响到分析结果的可靠性。


接下来进行一个小小案例讲解:

  • 1、缺失值处理
#1、
#读取数据
import pandas as pd
data = pd.read_excel('学生信息表.xlsx')
#查看属性缺失值情况
data.info()
data.isnull()
#删除“籍贯”为空的行
data = data.dropna(subset=["籍贯"])
#使用平均年龄填充“年龄”属性为空的数据
data['年龄'].fillna(data['年龄'].mean(),inplace=True)
#使用性别的众数填充“性别”属性为空的列
data.fillna({'性别':data['性别'].mode()[0]},inplace=True)
  • (1)读取“学生信息表.xlsx”。
  • (2)使用info()方法查看每一属性的缺失值情况。
  • (3)删除“籍贯”属性为空的行。
  • (4)使用平均年龄填充“年龄”属性为空的数据。
  • (5)使用性别的众数填充“性别”属性为空的列。
  • 2、非数值数据处理
  • #2、
    #将“性别”属性设置为哑变量,删除“性别_女”,并将“性别_男”改为“性别”
    data = pd.get_dummies(data,columns=['性别'])
    data = data.drop(columns = '性别_女')
    data = data.rename(columns={'性别_男':'性别'})
    #对“籍贯”属性进行编号处理
    from sklearn.preprocessing import LabelEncoder
    le = LabelEncoder()
    label = le.fit_transform(data['籍贯'])
    data['籍贯'] = label
  • (1)将“性别”属性设置为哑变量,删除“性别_女”,并将“性别_男”改为“性别”。
  • (1为性别男,0为性别女)
  • (2)对“籍贯”属性进行编号处理。
  • (0为云南;1为江苏;2为浙江;3为湖北)
  • 3、异常值的处理
  • #3、
    #箱线图观察“年龄”属性有无异常值
    data.boxplot(column ='年龄' )
    #对异常值进行标注,标注在out1属性中
    import numpy as np
    data['out1'] = np.where(data['年龄'] < 30,0,1)
    #使用2倍标准差法标注异常值,标注在out2属性中
    data['out2'] = abs((data['年龄']-data['年龄'].mean())/data['年龄'].std()) > 2
  • (1)箱线图观察“年龄”属性有无异常值;
  • (2)对异常值进行标注,标注在out1属性中;
  • (3)使用2倍标准差法标注异常值,标注在out2属性中。
  • 4、数据标准化
  • #4、
    #生成数据
    data2 = pd.DataFrame({'酒精含量(%)': [50, 60, 40, 80, 90], '苹果酸含量(%)': [2, 1, 1, 3, 2]})
    print(data2)
    #对各列进行z-score标准化
    from sklearn.preprocessing import StandardScaler
    data2_new1 = StandardScaler().fit_transform(data2)
    print(data2_new1)
    #对各列进行min-max标准化
    from sklearn.preprocessing import MinMaxScaler
    data2_new2 = MinMaxScaler().fit_transform(data2)
    print(data2_new2)
  • 如下数据:
  • (1)对以上数据的各列进行z-score标准化;
  • (2)对以上数据的各列进行min-max标准化。
  • 5、生成多项式特征
  • #5、
    #生成多项式特征
    from sklearn.preprocessing import PolynomialFeatures
    data3 = np.array([[2,3],[2,4]])
    print(data3)
    pf1=PolynomialFeatures(degree=2)
    print(pf1.fit_transform(data3))
    pf2=PolynomialFeatures(degree=2,include_bias=False)
    print(pf2.fit_transform(data3))
    pf3=PolynomialFeatures(degree=2,include_bias=False,interaction_only=True)
    print(pf3.fit_transform(data3))
    
  • 现在有(a,b)两个特征,生成二次多项式则为(1,a, b , ab, a^2, b^2),并用以下数据做测试:data3:

pf1:

pf2:

pf3:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix Centos8 安装笔记

Zabbix 安装笔记 安装环境 Centos 8 正常发行版 安装版本 Zabbix 7 (LTS) 安装步骤 1、关闭防火墙 systemctl stop firewalld && systemctl disable firewalld && setenforce 0 && sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/c…

【C#】开发过程中记录问题

1.DateTimePicker控件获取时间 拖动控件&#xff0c;设置属性format为custom格式。例如我想获得20240101这种类型的string类型的数据&#xff1a; string DateTime DateTimePicker.Value.ToString("yyyyMMdd");2.ComboBox下拉列表控件 默认为DropDown&#xff0c;…

【Apache Doris】周FAQ集锦:第 6 期

【Apache Doris】周FAQ集锦&#xff1a;第 6 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

聚焦新版综合编程能力面试考查汇总

目录 一、业务性编程和广度能力考查 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;必要性分析 二、高频考查样题&#xff08;编程扩展问法&#xff09; 考题1: 用java 代码实现一个死锁用例&#xff0c;说说怎么解决死锁问题&#xff1f;&#xff08;高…

大模型应用:LangChain-Golang核心模块使用

1.简介 LangChain是一个开源的框架&#xff0c;它提供了构建基于大模型的AI应用所需的模块和工具。它可以帮助开发者轻松地与大型语言模型(LLM)集成&#xff0c;实现文本生成、问答、翻译、对话等任务。LangChain的出现大大降低了AI应用开发的门槛&#xff0c;使得任何人都可以…

grep命令知多少

引言 1. grep命令的重要性 在Linux系统中&#xff0c;grep是一个不可或缺的文本处理工具&#xff0c;它允许用户快速搜索文件中的文本模式。这个命令的名称来源于Global Regular Expression Print&#xff0c;即全局正则表达式打印&#xff0c;它源自UNIX早期的ed文本编辑器。…

【MongoDB】如何在Debian 10 Linux上安装MongoDB

如何在Debian 10 Linux上安装MongoDB 来源:https://linuxize.com/post/how-to-install-mongodb-on-debian-10/ 文章目录 安装MongoDB配置MongoDB创建MongoDB管理员用户结论MongoDB是一个免费且开源的文档型数据库。它属于NoSQL数据库家族,与传统的基于表的SQL数据库(如MySQL…

青少年编程与数学 01-001开始使用计算机 02课题、计算机操作系统3_3

青少年编程与数学 01-001开始使用计算机 02课题、计算机操作系统3_3 四、Linux操作系统安装&#xff08;一&#xff09; 准备工作&#xff08;二&#xff09;设置BIOS/UEFI&#xff08;三&#xff09; 安装Linux&#xff08;四&#xff09;磁盘分区&#xff08;五&#xff09;安…

代码随想录算法训练营第三十九天 | 62.不同路径、63. 不同路径 II、343. 整数拆分、96.不同的二叉搜索树

62.不同路径 题目链接&#xff1a;https://leetcode.cn/problems/unique-paths/ 文档讲解&#xff1a;https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE… 视频讲解&#xff1a;https://www.bilibili.com/video/BV1ve4y1x7Eu/ 思路 确定dp数组以及下标的含…

FFmpeg YUV编码为H264

使用FFmpeg库把YUV420P文件编码为H264文件&#xff0c;FFmpeg版本为4.4.2-0。 需要yuv测试文件的&#xff0c;可以从我上传的MP4文件中用ffmpeg提取&#xff0c;命令如下&#xff1a; ffmpeg -i <输入MP4文件名> -pix_fmt yuv420p <输出YUV文件名>例如&#xff1…

2_2、MFC对话框应用

对话框应用 模态与非模态对话框模态对话框弹出模态对话框创建模态对话框 非模态对话框 属性页对话框向导对话框一般属性页对话框 消息对话框函数原型函数返回值调用 文件对话框字体对话框获取字体对话框中所选字体选取字体样式并显示在编辑框中 颜色对话框获取取颜色对话框中所…

word空白页删除不了怎么办?

上方菜单栏点击“视图”&#xff0c;下方点击“大纲视图”。找到文档分页符的位置。将光标放在要删除的分节符前&#xff0c;按下键盘上的“Delet”键删除分页符。

L52--- 144. 二叉树的后序遍历(深搜)---Java版

1.题目描述 2.思路 (1)二叉树后序遍历&#xff1a;左右根 (2)根节点的压入: 根节点首先被压入stack中&#xff0c;然后被弹出并压入output中。 遍历过程: stack用于存储需要遍历的节点。 output用于反转遍历顺序。 入栈顺序: 左子节点先入栈&#xff0c;右子节点后入栈。这…

基于C#开发web网页管理系统模板流程-总集篇

第一篇 基于C#开发web网页管理系统模板流程-登录界面和主界面_c#的网页编程-CSDN博客 第二篇 基于C#开发web网页管理系统模板流程-主界面管理员录入和编辑功能完善_c#网页设计-CSDN博客 第三篇 基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计…

北京汽车美容元宇宙,未来已来

随着科技的不断进步和市场需求的日益增长&#xff0c;元宇宙的概念正在逐渐渗透到我们生活的方方面面。北京&#xff0c;这座科技创新的前沿城市&#xff0c;正见证着汽车美容元宇宙的悄然兴起&#xff0c;为传统汽车美容行业注入了新的活力和想象空间。 在政策的积极推动和市…

从面试角度了解前端基础知识体系

目录 前端专业知识相关面试考察点 HTML 与 CSS Javascript 网络相关 浏览器相关 安全相关 算法与数据结构 计算机通用知识 前端项目经验相关面试考察点 前端框架与工具库 Node.js 与服务端 性能优化 前端工程化 开发效率提升 监控、灰度与发布 多人协作 结束语…

目标检测数据集 - PCB板表面缺陷检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;PCB 板表面缺陷检测数据集&#xff0c;真实采集高质量 PCB 板表面含缺陷图片数据&#xff0c;数据集含多款不同 PCB 板高清表面图片数据&#xff0c;包括俯拍正拍、旋转拍摄姿态。数据标注标签包括 missing_hole、mouse_bite、open_circuit、short、spur…

【Python推导式秘籍】:一行代码的艺术,高效数据处理之道

文章目录 &#x1f68b;Python推导式&#x1f680;一、列表推导式&#x1f308;1. 了解推导式❤️2. 实践&#x1f4a5;3. 总结 &#x1f680;二、字典推导式&#x1f308;1. 了解字典推导式❤️2. 实践&#x1f4a5;3. 总结 &#x1f680;三、集合推导式&#x1f308;1. 了解集…

AI实践与学习5-AI解题场景RAG应用预研demo

背景 AI解题场景现状&#xff0c;教研测评文档&#xff1a;xxx 解题正确率仍需进一步提高&#xff0c;提示词优化方案基本无力o目前配置的易错题CoT示例支持的长度有限&#xff0c;后续题量大的时候配置具有局限性。某些英语翻译题型BAD CASE反映大模型的输出格式不太符合要求…

java:spring【AnnotationMetadata】的简单使用例子

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89435385 # 项目代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start…