数据挖掘——数据预处理
数据挖掘——数据预处理
- 数据预处理
- 数据预处理 ——主要任务
- 数据清洗
- 如何处理丢失的数据
- 如何处理噪声数据
- 如何处理不一致数据
- 数据集成
- 相关分析
- 相关系数(也成为皮尔逊相关系数)
- 协方差
- 数据规约
- 降维法:PCA主成分分析
- 降数据——抽样法
- 数据压缩
数据预处理
数据预处理 ——主要任务
- 数据清理
- 填写缺失值,平滑噪声数据,识别或删除离群,并解决不一致问题
- 数据集成
- 整合多个数据库,多维数据集或文件
- 数据规约
- 降维
- 降数据
- 数据压缩
- 数据转换
- 规范化
- 离散化
数据清洗
- 属性值缺失:
- 例如,职业=“ ”(丢失)
- 噪音,错误或离群
- 例如,工资=“-10”(错误)
- 不一致的代码或不符的名称
- 年龄=“42”生日=“03/07/1997”
- 曾经评级“1,2,3”,现在评级“A,B,C”
如何处理丢失的数据
- 忽略元组:当类标号缺少时通常这么做(监督式机器学习中训练集缺乏类标签)。当每个属性缺少值比例比较大时,效果比较差
- 手动填写遗漏值:工作量大
- 自动填写
- 使用属性的平均值填充空缺值
- 最有可能的值:基于诸如贝叶斯公式或决策树推理
如何处理噪声数据
箱线图检测离群数据:删除离群点

如何处理不一致数据
- 不一致的代码或不符的名称
- 年龄=“42”生日=“09/24/1998”
- 曾经评级“1,2,3”,现在评级“A,B,C”
- 方法
- 计算推理、替换
- 全局替换
数据集成
将来自多个数据源的数据组合成一个连贯的数据源

- 整合多个数据库经常发生数据冗余
- Object identification:相同的属性或对象可能有不同的名字在不同的数据库中
- Derivable data:一个属性可能是“派生”的另一个表中的属性,例如,跑步能力
- 通过相关性分析和协方差分析可以检测到冗余的属性
- 仔细集成来自多个数据源,可能有助于减少/避免冗余和不一致的地方,并提高读取速度和质量
相关分析
相关系数(也成为皮尔逊相关系数)
r p , q = ∑ ( p − p ˉ ) ( q − q ˉ ) ( n − 1 ) σ p σ q = ∑ ( p q ) − n p q ‾ ( n − 1 ) σ p σ q r_{p, q}=\frac{\sum(p-\bar{p})(q-\bar{q})}{(n-1) \sigma_{p} \sigma_{q}}=\frac{\sum(p q)-n \overline{p q}}{(n-1) \sigma_{p} \sigma_{q}} rp,q=(n−1)σpσq∑(p−pˉ)(q−qˉ)=(n−1)σpσq∑(pq)−npq
其中 n n n是元组的数目,而 p p p和 q q q是各属性的具体值, σ p σ_p σp和 σ q σ_q σq是各自的标准偏差。
- 当r>0时,表示两变量正相关,r<0时,两变量为负相关。
- 当|r|=1时,表示两变量为完全线性相关,即为函数关系。
- 当r=0时,表示两变量间无线性相关关系。
- 当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1, 两
变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。 - 一般可按三级划分:|r|<0.4为低度线性相关;0.4≤|r|<0.7为显著性相关;
0.7≤|r|<1为高度线性相关。
协方差
Cov ( p , q ) = E ( ( p − p ˉ ) ( q − q ˉ ) ) = ∑ i = 1 n ( p i − p ˉ ) ( q i − q ˉ ) n r p , q = Cov ( p , q ) σ p σ q \begin{array}{c}\operatorname{Cov}(p, q)=E((p-\bar{p})(q-\bar{q}))=\frac{\sum_{i=1}^{n}\left(p_{i}-\bar{p}\right)\left(q_{i}-\bar{q}\right)}{n} \\r_{p, q}=\frac{\operatorname{Cov}(p, q)}{\sigma_{p} \sigma_{q}}\end{array} Cov(p,q)=E((p−pˉ)(q−qˉ))=n∑i=1n(pi−pˉ)(qi−qˉ)rp,q=σpσqCov(p,q)
- 其中n是元组的数目,p和q是各自属性的具体值, σp和σq是各自的标准差。
- 正相关: C o v ( p , q ) > 0 Cov(p,q)>0 Cov(p,q)>0
- 负相关: C o v ( p , q ) < 0 Cov(p,q) <0 Cov(p,q)<0
- 不相关: C o v ( p , q ) = 0 Cov(p,q) =0 Cov(p,q)=0
- 可具有某些对随机变量的协方差为0,但不是独立的。一些额外的假设(例如,数据是否服从多元正态分布)做了协方差为0意味着独立。
它可以简化计算:
C o v ( A , B ) = E ( ( A − A ˉ ) ( B − B ˉ ) ) = ∑ i = 1 n ( a i − A ˉ ) ( b i − B ˉ ) n = E ( A B ) − A ˉ B ˉ Cov(A,B)=E((A-\bar{A})(B-\bar{B}))=\frac{\sum_{i=1}^n(a_i-\bar{A})(b_i-\bar{B})}{n}=E(AB)-\bar{A}\bar{B} Cov(A,B)=E((A−Aˉ)(B−Bˉ))=n∑i=1n(ai−Aˉ)(bi−Bˉ)=E(AB)−AˉBˉ
数据规约
为什么数据规约(datareduction)?
由于数据仓库可以存储TB的数据,因此在一个完整的数据集上运行时,复杂的数据分析可能需要一个很长的时间。
数据规约三种方法:
- 降维
- 降数据
- 数据压缩
降维法:PCA主成分分析

- PCA主成分分析法核心idea
- 数据中很多属性之间可能存在这样或那样的相关性
- 能不能找到一个方法,将多个相关性的属性组合仅仅形成一个属性?
降数据——抽样法

- 简单随机抽样(SimpleRandomSampling)
- 相等的概率选择
- 不放回抽样(Samplingwithout replacement)
- 一旦对象被选中,则将其删除
- 有放回抽样(Samplingwithreplacement)
- 选择对象不会被删除
- 分组抽样
- 每组抽相近个数
- 用于偏斜数据
样本大小对数据质量的影响:
- 从8000个点分别抽2000和500个点
- 2000个点的样本保留了数据集的大部分结构
- 500个点的样本丢失了许多结构

数据压缩

- 函数映射:给定的属性值更换了一个新的表示方法,每个旧值与新的值可以被识别
- 方法
- 规范化:按比例缩放到一个具体区间
- 最小 - 最大规范化
- Z-得分正常化
- 小数定标规范化
- 离散化
- 规范化:按比例缩放到一个具体区间
最小-最大规范化:
v ′ = v − min A m a x A − min A ( n e w _ m a x A − n e w − min A ) + n e w − min A v^{\prime}=\frac{v-\min A}{max A-\min A}\left(\right. \left.new\_max A-n e w_{-} \min A\right)+ new_{-} \min A v′=maxA−minAv−minA(new_maxA−new−minA)+new−minA
v v v即需要规范的数据
z-分数规范化:
v ′ = v − 均值 A 标准 差 A v'=\frac{v-均值A}{标准差_A} v′=标准差Av−均值A
离散化方法
- 非监督离散化法
- 等宽法:根据属性的值域来划分,使每个区间的宽度相等
- 等频法:根据取值出现的频数来划分,将属性的值域划分成个小区间,并且要求落在每个区间的样本数目相等
- 聚类:利用聚类将数据划分到不同的离散类别

相关文章:
数据挖掘——数据预处理
数据挖掘——数据预处理 数据预处理数据预处理 ——主要任务数据清洗如何处理丢失的数据如何处理噪声数据如何处理不一致数据 数据集成相关分析相关系数(也成为皮尔逊相关系数)协方差 数据规约降维法:PCA主成分分析降数据——抽样法数据压缩 数据预处理 数据预处理…...
ECharts饼图下钻
背景:项目上需要对Echarts饼图进行功能定制,实现点击颜色块,下钻显示下一层级占比说明:饼图实现点击下钻/面包屑返回的功能 数据结构 [{name: a,value: 1,children: [...]},... ]点击下钻 // 为图表绑定点击事件(需要…...
【RK3568笔记】Android修改开机动画
概述 Android 的开机动画是由一系列连续的 PNG 图片作为帧组成的动画形式,不是一张 GIF 图片。将各帧 PNG 图片以压缩方式进行保存(压缩方式要求是存储压缩),并将保存的文件名命名为 bootanimation.zip,这个 bootanim…...
嵌入式技术之Linux(Ubuntu) 一
一、Linux入门 1.硬件和操作系统以及用户的关系 一个传感器,获得数据后,需要向服务器发送数据。传感器传数据给上位机。 上位机需要一个程序来接收数据,那么这个上位机是什么机器? 我们的笔记本电脑就可以当成上位机。 两个手…...
代码随想录day39 动态规划7
打家劫舍 题目:198.打家劫舍 213.打家劫舍II 337.打家劫舍III 需要重做:全部 198.打家劫舍 思路:第i个房子偷与不偷,取决于第i-2个房子和第i-1个房子 注意:注意下标的一致性。现在的下标含义是房子的下标&#x…...
ESP32-S3模组上实现低功耗(5)
接前一篇文章:ESP32-S3模组上实现低功耗(4) 本文内容参考: 系统低功耗模式介绍 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 电源管理 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档...
PDF转文本以及转图片:itextpdf
文章目录 🐒个人主页:信计2102罗铠威🏅JavaEE系列专栏📖前言:🎀 1. itextpdf1.1导入itextpdf的maven依赖1.2 提取文本代码1.3 pdf转换成图片代码(本地图片地址还是线上PDF的URL地址均支持&#…...
AnaConda下载PyTorch慢的解决办法
使用Conda下载比较慢,改为pip下载 复制下载链接到迅雷下载 激活虚拟环境,安装whl,即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl...
移动端自动化测试Appium-java
一、Appium的简介 移动端的自动化测试框架 模拟人的操作进行功能自动化常用于功能测试、兼容性测试 跨平台的自动化测试 二、Appium的原理 核心是web服务器,接受客户端的连接,接收客户端的命令,在手机设备上执行命令,收集命令…...
IO: 作业:Day1
思维导图 main.c #include"student.h" int main(int argc, const char *argv[]) { stuPtr hcreat(); int n0; add_node(h); add_node(h); add_node(h); show(h); save(h,"student.txt"); stuPtr ptrc…...
ue5 替换角色的骨骼网格体和动画蓝图
一开始动画蓝图,骨骼网格体都是用的女性角色 现在把它换成男性 编译 保存 运行 把动画类换成ABP_Manny 进入ABP_Manny中 进入到idle 找到这个拖进来 编译 就变成站着端枪 运行一下,没有问题...
el-cascader 树状选择-点击父级禁用子级
背景:项目上需要实现树状选择,点击父级禁用子级的功能,element组件本身没有该配置项说明:需要实现几个功能点:点击父级禁用子级;再次点击取消禁用;仅回填所选级;上下级不关联实现代码…...
AWS re:Invent 的创新技术
本月早些时候,Amazon 于 12 月 1 日至 5 日在内华达州拉斯维加斯举行了为期 5 天的 re:Invent 大会。如果您从未参加过 re:Invent 会议,那么最能描述它的词是“巨大”——不仅从与会者人数(60,000 人)来看&…...
PHP7和PHP8的最佳实践
php 7 和 php 8 的最佳实践包括:使用类型提示以避免运行时错误;利用命名空间组织代码并避免命名冲突;采用命名参数、联合类型等新特性增强可读性;用错误处理优雅地处理异常;关注性能优化,如避免全局变量和选…...
Debian、Ubuntu 22.04和ubuntu 24.04国内镜像源(包括 docker 源)
Debian 更换国内清华源 1、备份原文件mv /etc/apt/sources.list /etc/apt/sources.list.old 2、写入新源,以下是 Debian 11 的: cat > /etc/apt/sources.list << EOF deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib…...
点亮一个esp32 的led
最近入了一个ESP32 兄弟们,这玩意还可以,买来肯定是给它点亮啊对吧 我就是点灯侠🎇 😭千万不要不接天线啊,不然你会一直找不到你的wifi 1.点灯第一步你得有IDE Arduino 就是这个绿东西 可是怎么下载安装呢ÿ…...
C++ shared_ptr进一步认知,为什么引用计数>2退出作用域都可以调用析构
1.使用智能指针需要#include <memeroy> 2.上代码: #include <memory> #include <iostream> using namespace std; struct lifePeriod {lifePeriod():a(1){cout << "无参构造!" << endl;}virtual ~lifePeriod(…...
JavaScript代码片段二
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看...... JavaScript统计文字个数、特殊字符转义、动态插入js代码、身份证验证 统计文字个数 f…...
【计算机视觉】单目深度估计模型-Depth Anything-V2
概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…...
Servlet 和 Spring MVC:区别与联系
前言 在 Java Web 开发中,Servlet 和 Spring MVC 是两个重要的技术。Servlet 是 Java Web 的基础组件,而 Spring MVC 是一个高级 Web 框架,建立在 Servlet 的基础之上,提供了强大的功能和易用性。这篇文章将从定义、原理、功能对…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
