数据挖掘-数据预处理

news2024/12/26 23:30:36

来自🥬🐶程序员 Truraly | 田园 的博客,最新文章首发于:田园幻想乡 | 原文链接 | github (欢迎关注)

文章目录

    • 3.3.1 数据的中心趋势
      • 平均数和加权平均数
      • 众数,中位数和均值
      • 描述数据的离散程度 & 箱线图
      • 其他描述数据的方法
    • 3.4 数据清洗
      • 3.4.1 缺失值
      • 3.4.2 数据清洗
    • 3.5 数据集成和转换
      • 3.5.3 数据转换
    • 3.6 数据规约和数据变换
      • 3.6.2 数据离散化


数据类型:

  1. 名称型:区别性 比如:性别
  2. 顺序型:区别性,顺序性 比如:身高
  3. 间隔型:区别性,顺序性,可加减 比如:温度
  4. 比率型:区别性,顺序性,可加减,可乘除 比如:百分比

为什么要预处理数据:

  1. 数据不完整,比如缺失值
  2. 数据不一致,比如单位不一致
  3. 有噪声,比如错误数据

3.3.1 数据的中心趋势

平均数和加权平均数

首先这里有一组数据

1,,53,22,39,73,9,14

(算数)平均值:

x ‾ = 1 n ∑ i = 1 n x i \overline{x}=\frac{1}{n}\sum_{i=1}^{n}x_{i} x=n1i=1nxi

加权平均值:

x ‾ = ∑ i = 1 n w i x i ∑ i = 1 n w i \overline{x}=\frac{\sum_{i=1}^{n}w_{i}x_{i}}{\sum_{i=1}^{n}w_{i}} x=i=1nwii=1nwixi

其中: w i 是权重 x i 是数据 其中: w_{i} 是权重 x_{i} 是数据 其中:wi是权重xi是数据

众数,中位数和均值

参考资料:偏态分布的左偏右偏如何理解?| 知乎

众数:出现次数最多的数

中位数:将数据从小到大排列,中间的数

均值:平均数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图情况为左偏态,反之为右偏态,中间为正态

描述数据的离散程度 & 箱线图

参考资料:箱形图 | 百度

  • 最小值(0 分位数)Q0
  • 最大值(1 分位数)
  • 中位数(0.5 分位数)Q2 (n+1)/2 位
  • 四分位数(0.25 分位数,0.75 分位数)Q1 Q3 (n+1)/4 位 (3n+3)/4 位

中间四分位数极差:IQR = Q3 - Q1

上限:Q3 + k * IQR

下限:Q1 - k * IQR

k 为一个常数,经验值为 1.5,区间外的数据为离群点,可根据情况忽视或者删除

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

EG:

1 2 2 5 6 9 9
Q0 = 1
Q1 = 2
M = 5
Q3 = 9


1 2 2 5 6 7 8 9 9
Q0 = 1
Q1 = 第2.5位 = 2
M = 第5位 = 6
Q3 = 第7.5位 = 8*0.5+9*0.5 = 8.5

1 2 3 4 5 6 7 8
Q0 = 1
Q1 = 第2.25位 = 2*0.75+3*0.25 = 2.25
M = 第4.5位 = 4.5
Q3 = 第6.75位 = 6*0.25+7*0.75 = 6.75

其他描述数据的方法

直方图:横轴为数据,纵轴为频数

分位图:横轴为数据,纵轴为累计频数

Q-Q 图:横轴为理论分位数,纵轴为样本分位数

散点图:横轴为数据,纵轴为数据

3.4 数据清洗

3.4.1 缺失值

缺失值的处理:

  1. 整条数据删除
  2. 人工填写
  3. 填写统一值
  4. 使用均值或者中位数填写(减少数据的方差)
  5. 使用类似数据的均值或者中位数填写(进一步减少影响)

3.4.2 数据清洗

针对数据的噪声,比如错误数据,重复数据,不一致数据

使用分箱方法,将数据分为多个箱子,然后将箱子中的数据替换为箱子的均值,这样可以减少噪声的影响(数据平滑)

  • 等宽分箱:将数据分为相同宽度的箱子,比如 0-10,10-20,20-30,依次将数据放入对应的箱子(箱子内数据不一致)。宽度一般为

w = m a x ( d a t a ) − m i n ( d a t a ) N w=\frac{max(data)-min(data)}{N} w=Nmax(data)min(data)

  • 等频分箱:将数据平等分为 n 份,每份数据个数相同

EG:

4 8 9 15 21 21 24 25 26 28 29 34
等宽分箱:
w = (34-4)/3 = 10
[4,14) | [14,24) | [24,34]
4 8 9 | 15 21 21 | 24 25 26 28 29 34

等频分箱:
w = 12/3 = 4 箱
4 8 9 15 | 21 21 24 25 | 26 28 29 34

3.5 数据集成和转换

3.5.3 数据转换

数据规范化:

  1. 最大最小规范化:将数据转换到某一区间。比如[0,1],公式为:

X ∗ = X − X m i n X m a x − X m i n X^{*}=\frac{X-X_{min}}{X_{max}-X_{min}} X=XmaxXminXXmin

  1. Z-Score 规范化:将数据转换为均值为 0,标准差为 1 的数据。公式为:

X ∗ = X − X ‾ S X^{*}=\frac{X-\overline{X}}{S} X=SXX

其中:
X ‾ 为均值 \overline{X} 为均值 X为均值

S 为标准差

S = 1 n ∑ i = 1 n ( X i − X ‾ ) 2 S=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(X_{i}-\overline{X})^{2}} S=n1i=1n(XiX)2

3.6 数据规约和数据变换

数据立方体聚合:将数据按照维度进行聚合,比如按照时间维度,地理维度,产品维度等

线性回归分析:使用线性方程拟合数据,然后使用方程代替数据

采样方法:对于类似的一个数据簇,可以使用其中一部分数据代替整个簇,要注意在整体中每个簇代替的数据比例要相同

3.6.2 数据离散化

数据离散化:将连续数据转换为离散数据,比如将年龄分为 0-10,10-20,20-30 等

数据离散化的方法:

  1. 基于信息增益的方法:使用熵来衡量数据的离散程度,熵越大,数据越离散,熵越小,数据越集中。使用信息增益来衡量数据的离散程度,信息增益越大,数据越离散,信息增益越小,数据越集中。信息增益的计算公式为:

I ( S , T ) = E n t r o p y ( S ) − ∑ v ∈ T ∣ S v ∣ ∣ S ∣ E n t r o p y ( S v ) I(S,T) = Entropy(S) - \sum_{v\in T}\frac{|S_{v}|}{|S|}Entropy(S_{v}) I(S,T)=Entropy(S)vTSSvEntropy(Sv)

其中:

E n t r o p y ( S ) = − ∑ i = 1 n p i l o g 2 p i Entropy(S) = -\sum_{i=1}^{n}p_{i}log_{2}p_{i} Entropy(S)=i=1npilog2pi

S 为数据集, T 为数据集的一个属性, S v 为 T 的一个值, p i 为 S v 中第 i 个类别的概率 S 为数据集,T 为数据集的一个属性,S_{v} 为 T 的一个值,p_{i} 为 S_{v} 中第 i 个类别的概率 S为数据集,T为数据集的一个属性,SvT的一个值,piSv中第i个类别的概率

这个东西后面 ID3 决策树会用到

  1. 基于卡方检验的方法:使用卡方检验来衡量数据的离散程度,卡方检验越大,数据越离散,卡方检验越小,数据越集中。卡方检验的计算公式为:

χ 2 = ∑ i = 1 n ( A i − E i ) 2 E i \chi^{2} = \sum_{i=1}^{n}\frac{(A_{i}-E_{i})^{2}}{E_{i}} χ2=i=1nEi(AiEi)2

其中:

A i 为实际值, E i 为期望值 A_{i} 为实际值,E_{i} 为期望值 Ai为实际值,Ei为期望值

  1. 基于自然分区的方法:使用人工的方式将数据分为多个区间,比如年龄分为 0-10,10-20,20-30 等

————————————————

版权声明:本文为 田园幻想乡 的原创文章,遵循 CC 4.0 BY-NA-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:http://truraly.fun/课程笔记/数据挖掘/【3】数据预处理.html

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

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

相关文章

推荐3款将相片变为动漫风格的免费AI工具推荐

toonme ToonMe是一款功能强大的在线和移动端应用,专门用于将照片转换成卡通风格图像。该工具利用先进的AI技术,能够快速识别照片中的面部特征,并进行智能处理,生成高清晰度的卡通肖像。 功能特点 ToonMe通过其内置的人工智能算法…

AJAX-XMLHttpRequest 详解

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 前言 XMLHttpRequest 概述 主要用途 工作流程 示例代码 GET 请求示例 POST 请求示例 注意事项 工作…

Java集合——Array、ArrayList、LinkedList

1. ArrayList和Array的区别 1. 大小和自动扩容 Array:创建时指定大小,大小固定。若数组被创建,其大小不能更改 ArrayList:动态数组实现,可以动态增长或缩小。在不断添加元素时,ArrayList会自动进行扩容 …

模式Hash和history

vuerouter有两种路由模式Hash和history。区别:Hash为默认模式,url中包含一个#符号的哈希部分。优势:兼容性好,不需要后端服务器的特殊配置。缺点:不够美观,搜索引擎优化较差。History模式使用的浏览器的His…

Cmake生成的Xcode工程相对路径与绝对路径的问题

Cmake生成的Xcode工程相对路径与绝对路径的问题 文章目录 Cmake生成的Xcode工程相对路径与绝对路径的问题前言修改.pbxproj文件验证工程小结 前言 由于Cmake的跨平台的自动化构建的方便性以及他广泛应用于编译过程的管理,在开发过程中难免用到Cmake。我也使用Cmake…

CTF-NSSCTF[GKCTF 2021]

[GKCTF 2021]easycms 考察: 用扫描工具扫描目录,扫描到后台登录界面/admin.php 题目提示了密码是五位弱口令,试了试弱口令admin和12345直接成功了 任意文件下载 点击设计-->主题然后随便选择一个主题,点击自定义&#xff0…

C++客户端Qt开发——Qt窗口(浮动窗口)

4.浮动窗口 在Qt中,浮动窗口也称之为铆接部件。浮动窗口是通过QDockWidget类来实现浮动的功能。浮动窗口一般是位于核心部件的周围,可以有多个。 设置一个浮动窗口并添加控件 #include "mainwindow.h" #include "ui_mainwindow.h"…

现代Java开发:使用jjwt实现JWT认证

前言 jjwt 库 是一个流行的 Java 库,用于创建和解析 JWT。我在学习spring security 的过程中看到了很多关于jwt的教程,其中最流行的就是使用jjwt实现jwt认证,但是教程之中依然使用的旧版的jjwt库,许多的类与方法已经标记弃用或者…

人工智能GPT技术进步的新时代,你做好准备了吗?

OpenAI 最新发布的 GPT-4o Mini 模型以其卓越的性能和极具竞争力的价格引发了广泛关注。这款模型在提供高级语言理解和生成能力的同时,也在计算资源的消耗和部署成本上做出了显著优化,使得更多开发者能够轻松访问和使用。这篇文章将分析 GPT-4o Mini 在技…

python爬虫【3】—— 爬虫反反爬

一、常见的反爬手段和解决方法 二、splash 介绍与安装 三、验证码识别 图片验证码的处理方案 手动输入(input) 这种方法仅限于登录一次就可持续使用的情况图像识别引擎解析 使用光学识别引擎处理图片中的数据,目前常用于图片数据提取,较少用于验证码…

从零搭建pytorch模型教程(八)实践部分(二)目标检测数据集格式转换

前言 图像目标检测领域有一个非常著名的数据集叫做COCO,基本上现在在目标检测领域发论文,COCO是不可能绕过的Benchmark。因此许多的开源目标检测算法框架都会支持解析COCO数据集格式。通过将其他数据集格式转换成COCO格式可以无痛的使用这些开源框架来训…

【计算机网络】DNS命令练习与抓包分析实验

一:实验目的 1:掌握DNS缓存的清除方法,了解DNS缓存的作用和影响。 2:熟悉nslookup和dig等DNS查询工具的使用,理解DNS查询的基本原理和过程。 3:通过抓包和分析,深入了解DNS查询和响应消息的格…

探索 LLamaWorker 本地大模型API服务的新功能:函数调用

LLamaWorker 是一个基于 LLamaSharp 项目开发的可以在本地运行大模型服务,并提供与 OpenAI / Azure OpenAI 兼容的 API。同时,通过工具提示词的配置,提供函数调用 Function Call 能力,为开发者提供更多的可能。 1. 背景 在人工智…

Robot Operating System——AsyncParametersClient监控Parameters的增删改行为

大纲 同步创建SyncParametersClient设置监控回调回调函数主体测试完整代码 异步创建AsyncParametersClient设置监控回调测试完整代码 在《Robot Operating System——Parameter设置的预处理、校验和成功回调》一文中,我们使用Node::add_post_set_parameters_callbac…

Django项目中报错:django.template.exceptions.TemplateDoesNotExist: index.html

访问127.0.0.1:8000访问出错 查看报错原因 到Django项目当中找到settings.py,找到TEMPLATES中的DIRS: 添加如下代码,并导入OS模块: "DIRS": [os.path.join(BASE_DIR,templates)] 再次访问IP地址:

【JVM基础07】——类加载器-什么是类加载器?类加载器有哪些?双亲委派了解吗?

目录 1- 引言:类加载器1-1 类加载器是什么?(What)1-2 为什么要用类加载器? 作用:类加载的过程?(Why) 2- ⭐核心:类加载器详解(How)2-1 类加载器分类2-2 什么是双亲委派模型?2-3 为什么采用双亲委…

开始尝试从0写一个项目--前端(三)

器材管理板块 添加器材管理导航 src\views\home\Home.vue src\router\index.js src\views\equipment\Equipment.vue <template><div>hello!</div></template> 测试 搜索导航分页查询 src\views\equipment\Equipment.vue <template><div&…

C#、Net6、WebApi报表方案

目录 1 Pdf表单方案 1.1出现如下错误提示: 1.2 字体路径使用 2 Docx报表模板方案 2.1 pdf方案缺陷 2.2 解决方案 3 Spire.Doc报表方案 3.1 Docx方案缺陷 3.2 解决方案 4 插入复选框 5 WebApi文件流下载接口 6 软件获取方式 1 Pdf表单方案 使用【Adobe Acrobat P…

0726,没什么用的SELECT和没用的我

目录 select 可恶&#xff01;&#xff01;&#xff01; 一对多聊天室 select&#xff1a;&#xff08;抄抄抄 最怕人类开始思考 补一对一的 select 喵&#xff1a;&#xff08;抄抄抄 &#xff1f;&#xff1f;今天就这么结束了&#xff1f;&#xff1f;&#xff1f; …

全能Ai助手:写作到设计,宝藏神器帮你事半功倍

今天&#xff0c;就让我们一起踏上这场寻找“隐藏”宝藏的旅程&#xff0c;探索这些AI工具如何改变我们的生活&#xff01; 一、高效生产力的提升之道 1. 文案创作助手 案例&#xff1a;某位自媒体博主使用了一款智能写作工具&#xff0c;不仅大大节省了写作时间&#xff0c;…