数据挖掘-数据预处理
来自🥬🐶程序员 Truraly | 田园 的博客,最新文章首发于:田园幻想乡 | 原文链接 | github (欢迎关注)
文章目录
- 3.3.1 数据的中心趋势
- 平均数和加权平均数
- 众数,中位数和均值
- 描述数据的离散程度 & 箱线图
- 其他描述数据的方法
- 3.4 数据清洗
- 3.4.1 缺失值
- 3.4.2 数据清洗
- 3.5 数据集成和转换
- 3.5.3 数据转换
- 3.6 数据规约和数据变换
- 3.6.2 数据离散化
数据类型:
- 名称型:区别性 比如:性别
- 顺序型:区别性,顺序性 比如:身高
- 间隔型:区别性,顺序性,可加减 比如:温度
- 比率型:区别性,顺序性,可加减,可乘除 比如:百分比
为什么要预处理数据:
- 数据不完整,比如缺失值
- 数据不一致,比如单位不一致
- 有噪声,比如错误数据
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=n1∑i=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=1nwi∑i=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 = 91 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.51 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 缺失值
缺失值的处理:
- 整条数据删除
- 人工填写
- 填写统一值
- 使用均值或者中位数填写(减少数据的方差)
- 使用类似数据的均值或者中位数填写(进一步减少影响)
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 数据转换
数据规范化:
- 最大最小规范化:将数据转换到某一区间。比如[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∗=Xmax−XminX−Xmin
- Z-Score 规范化:将数据转换为均值为 0,标准差为 1 的数据。公式为:
X ∗ = X − X ‾ S X^{*}=\frac{X-\overline{X}}{S} X∗=SX−X
其中:
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=n1∑i=1n(Xi−X)2
3.6 数据规约和数据变换
数据立方体聚合:将数据按照维度进行聚合,比如按照时间维度,地理维度,产品维度等
线性回归分析:使用线性方程拟合数据,然后使用方程代替数据
采样方法:对于类似的一个数据簇,可以使用其中一部分数据代替整个簇,要注意在整体中每个簇代替的数据比例要相同
3.6.2 数据离散化
数据离散化:将连续数据转换为离散数据,比如将年龄分为 0-10,10-20,20-30 等
数据离散化的方法:
- 基于信息增益的方法:使用熵来衡量数据的离散程度,熵越大,数据越离散,熵越小,数据越集中。使用信息增益来衡量数据的离散程度,信息增益越大,数据越离散,信息增益越小,数据越集中。信息增益的计算公式为:
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)−∑v∈T∣S∣∣Sv∣Entropy(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为数据集的一个属性,Sv为T的一个值,pi为Sv中第i个类别的概率
这个东西后面 ID3 决策树会用到
- 基于卡方检验的方法:使用卡方检验来衡量数据的离散程度,卡方检验越大,数据越离散,卡方检验越小,数据越集中。卡方检验的计算公式为:
χ 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(Ai−Ei)2
其中:
A i 为实际值, E i 为期望值 A_{i} 为实际值,E_{i} 为期望值 Ai为实际值,Ei为期望值
- 基于自然分区的方法:使用人工的方式将数据分为多个区间,比如年龄分为 0-10,10-20,20-30 等
————————————————
版权声明:本文为 田园幻想乡 的原创文章,遵循 CC 4.0 BY-NA-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:http://truraly.fun/课程笔记/数据挖掘/【3】数据预处理.html
相关文章:
数据挖掘-数据预处理
来自🥬🐶程序员 Truraly | 田园 的博客,最新文章首发于:田园幻想乡 | 原文链接 | github (欢迎关注) 文章目录 3.3.1 数据的中心趋势平均数和加权平均数众数,中位数和均值描述数据的离散程度 &a…...
【调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL】
调试笔记-系列文章目录 调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL 文章目录 调试笔记-系列文章目录调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gite…...
《GPT-4o mini:开启开发与创新的新纪元》
在科技发展的快速进程中,OpenAI 推出的 GPT-4o mini 模型如同一阵春风,给开发者们带来了新的希望和机遇。它以其卓越的性能和极具吸引力的价格,成为了行业内热议的焦点。 当我首次听闻 GPT-4o mini 的消息时,内心充满了好奇与期待…...
生成树协议配置与分析
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、相关知识 1、生成树协议简介 生成树协议(STP)是一种避免数据链路层逻辑环路的机制,它通过信息交互识别环路并…...
Golang | Leetcode Golang题解之第287题寻找重复数
题目: 题解: func findDuplicate(nums []int) int {slow, fast : 0, 0for slow, fast nums[slow], nums[nums[fast]]; slow ! fast; slow, fast nums[slow], nums[nums[fast]] { }slow 0for slow ! fast {slow nums[slow]fast nums[fast]}return s…...
【音视频SDL2入门】创建第一个窗口
文章目录 前言创建窗口的流程需要使用的函数1. 初始化 SDL 库2. 创建 SDL 窗口3. 获取与窗口关联的表面SDL_FillRect 函数介绍4. 更新窗口表面5. 延迟一定时间6. 销毁窗口并退出 SDL 库示例代码总结 前言 SDL2(Simple DirectMedia Layer)是一个跨平台的…...
《置身事内:中国政府与经济发展》生活过得好一点,比大多数宏伟更宏伟
《置身事内:中国政府与经济发展》生活过得好一点,比大多数宏伟更宏伟 兰小欢,复旦大学中国社会主义市场经济研究中心、经济学院副教授,上海国际金融与经济研究院研究员。美国弗吉尼亚大学经济学博士。 上海人民出版社 文章目录 《…...
MongoDB教程(十八):MongoDB MapReduce
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MapRed…...
HTML前端面试题之<iframe>标签
面试题:iframe 标签的作用是什么?有哪些优缺点 ? 讲真,刷这道面试题之前我根本没有接触过iframe,网课没讲过,项目实战没用过,但却在面试题里出现了!好吧,我只能说:前端路漫漫&…...
Docker-Compose实现MySQL之主从复制
1. 主服务器(IP:192.168.186.77) 1.1 docker-compose.yml services:mysql-master:image: mysql:latest # 使用最新版本的 MySQL 镜像container_name: mysql-master # 容器的名称environment:MYSQL_ROOT_PASSWORD: 123456 # MySQL root 用户的密码MYSQL_DATABASE: masterd…...
jetson显卡没有加速,而是在用cpu推理?
jetson的库,特别是使用显卡的库,大多需要单独安装 大概率是重装了pytorch,可以使用jetson官网的pytorch! 下面是官网的链接 PyTorch for Jetson - Announcements - NVIDIA Developer Forums 安装完成之后先使用命令查看是否安…...
Linux下如何安装配置Fail2ban防护工具
Fail2ban是一款在Linux服务器上用于保护系统免受恶意攻击的防护工具。它通过监视系统日志,检测到多次失败的登录尝试或其他恶意行为后,会自动将攻击源的IP地址加入防火墙的黑名单,从而阻止攻击者进一步访问服务器。本文将介绍如何在Linux系统…...
js的深浅拷贝
深浅拷贝是编程中对数据复制的两种不同方式,它们在处理对象和数组等复合数据结构时尤为重要。下面将详细解释这两种拷贝方式。 浅拷贝(Shallow Copy) 浅拷贝创建了原始对象的一个新实例,但这个新实例的属性只是原始对象属性的引…...
实验八: 彩色图像处理
目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …...
Python酷库之旅-第三方库Pandas(048)
目录 一、用法精讲 171、pandas.Series.nlargest方法 171-1、语法 171-2、参数 171-3、功能 171-4、返回值 171-5、说明 171-6、用法 171-6-1、数据准备 171-6-2、代码示例 171-6-3、结果输出 172、pandas.Series.nsmallest方法 172-1、语法 172-2、参数 172-3、…...
springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726
目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…...
自训练和增量训练word2vec模型
1、自己准备训练语料文件 根据自己的业务场景准备训练数据,比如用户在商城上的同购行为序列或同浏览行为序列。 我们希望通过自己训练业务相关的语料word2vec模型来获得词嵌入、词相关性查询等。 1.1 准备语料库文件 # 示例:准备自己的一个大规模的语…...
华三路由器开启web访问
配置路由器: # 配置Web用户名为admin,认证密码为admin,服务类型为http,用户角色为network-admin。 [Sysname] local-user admin [Sysname-luser-manage-admin] service-type http [Sysname-luser-manage-admin] authorization…...
C++软件开发值得推荐的十大高效软件分析工具
目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…...
vue2老项目中node-sass更换dart-sass
更换原因:node-sass经常会出现node版本问题,就很麻烦 卸载项目中的node-sass sass-loader npm uninstall sass-loader sass 安装dart-sas sass-loader 推荐安装sass1.26.2 sass-loader7.3.1 npm install sass-loader7.3.1 sass1.26.2 从新配置vue.…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
