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

【数据挖掘】2、数据预处理

文章目录

  • 一、数据预处理的意义
    • 1.1 缺失数据
      • 1.1.1 原因
      • 1.1.2 方案
      • 1.1.3 离群点分析
    • 1.2 重复数据
      • 1.2.1 原因
      • 1.2.2 去重的方案
    • 1.3 数据转换
    • 1.4 数据描述
  • 二、数据预处理方法
    • 2.1 特征选择 Feature Selection
    • 2.2 特征提取 Feature Extraction
      • 2.2.1 PCA 主成分分析
      • 2.2.2 LDA 线性判别分析

数据预处理分为数据清洗、转换、描述、选择、提起五部分:

在这里插入图片描述

一、数据预处理的意义

数据预处理的意义:因为真实世界的问题,脏数据的预处理才是最大的挑战。脏数据主要包括如下方面:

  • 不完整:缺失
  • 噪声:错误的数据
  • 不一致
  • 冗余:我们只需真实有用的部分
  • 其他
    • 数据类型
      在这里插入图片描述

1.1 缺失数据

1.1.1 原因

可能有很多原因:

  • 设备故障
  • 并未提供数据(例如调查问卷的被访人)
  • 不适用、无意义(可能并无物理意义,比如一张宽表:既有学生、又有教师,那么学生并无收入(只有教师才有),则此表格设计的并不合理)
    在这里插入图片描述

1.1.2 方案

数据缺失的应对方案:其实是一门艺术

  • 忽略:
    • 不处理有问题的列或行(当然只有这部分数据较少才可以)
  • 填充:
    • 重新采集
    • 利用领域知识去猜:(比如一个人住了 18 年的房子,那推测为住房,而不是租房形式)
    • 用固定值 or 均值、众数等

在这里插入图片描述

可以在均值基础上,做高斯分布,来让填充的数据即具备随机性,又基于一个基点分布:

在这里插入图片描述

Outliers 异常值:是指数据明显出错了

在这里插入图片描述

在这里插入图片描述

而 Anomaly 指数据是正确的,只是它和众数有别:例如下图中的黄衣服人也是正常的样本,只是他没有和别人聚在一堆而已:

在这里插入图片描述

1.1.3 离群点分析

因为离群点是相对概念,所以不能只用绝对距离distance(A, B),而应用相对距离lrd(A)

在这里插入图片描述

那么 LOF(A) 则正比于 lrd(B) / lrd(A)

  • 其中lrd(A)指:待分析的A点,距离其近邻 B 的均值。
  • 其中lrd(B)指:待分析A点 的 近邻点 B,距离其近邻们的均值。
  • 若二者之商越大,则说明 A 越「相对」离群。

例如下图是离群点分析的结果:其红色圆圈越大(红圈内的数字即为 LOF 值)则说明越离群

在这里插入图片描述

1.2 重复数据

1.2.1 原因

不同数据源汇总时,都包含同一个人的信息,需要汇总。

  • 其中各数据源的数据格式不同:比如有的表叫 id,有的表叫 no。
  • 数据的内容不同,但可能表示的含义相同:比如快递地址写广东省深圳市某小区,和写深圳市某小区,的含义是相同的。
    在这里插入图片描述

1.2.2 去重的方案

因为大数据,不可能在所有数据范围内去重。因此一般采用局部去重。

  • 如果业务决定重复的数据通常相邻,则可用滑动窗口实现(在滑窗内去重):即在一定程度去重,又提升了计算性能。

在这里插入图片描述

可以根据领域知识,定义一种规则:来识别出原本相同,但被错记录的数据。比如若名字相同,姓不同,地址相同的人,认为是同一个人。

在这里插入图片描述

1.3 数据转换

在这里插入图片描述

在这里插入图片描述

数据的编码:影响数据问题的复杂度

在这里插入图片描述

可以用位来标识不同数据:

在这里插入图片描述

数据采样:通过采样频率,可以降低数据量
在这里插入图片描述

不平衡数据:当两类数据占比差别很大时,整体准确率并不能很好地度量,应用各自的准确率。(例如 99%人健康,1%的人生病,模型需要预测出生病的人)

在这里插入图片描述

G-mean 方法:

在这里插入图片描述

采样不均衡:可以有针对性的,对数据量少的类(如下图的蓝色点),多采样。
在这里插入图片描述

边缘采样:边缘点的价值更大

在这里插入图片描述

归一化:

在这里插入图片描述

1.4 数据描述

在这里插入图片描述

相关性可用「皮尔森相关系数」衡量,其分子为 「A 与 B 的协方差」,分母为「A的方差 乘以 B的方差」

  • ra,b > 0:正相关:即 a 越大则 b 越大,即 a 与 b 的协方差为正
  • ra,b = 0:没有「线性」相关性
  • ra,b > 0:负相关:即 a 越大则 b 越小,即 a 与 b 的协方差为负
    在这里插入图片描述

要理解 Pearson 相关系数,首先要理解协方差(Covariance)。协方差表示两个变量 X,Y 间相互关系的数字特征,其计算公式为:

协方差公式如下:
Cov(X,Y)=1n−1Σ1n(Xi−X‾)(Yi−Y‾)Cov(X,Y)=\frac{1}{n-1}\Sigma_1^n \ (X_i-\overline X)(Y_i-\overline Y)Cov(X,Y)=n11Σ1n (XiX)(YiY)

当 Y = X 时,即与方差相同。当变量 X,Y 的变化趋势一致时,Pearson 相关系数为正数。当变量 X,Y 的变化趋势相反时,Pearson 相关系数为负数。

Pearson 相关系数如下:
COR(X,Y)=Σ1n(Xi−X‾)(Yi−Y‾)Σ1n(Xi−X‾)2Σ1n(Yi−Y‾)2COR(X, Y) = \frac{\Sigma_1^n(X_i-\overline X)(Y_i-\overline Y)}{\sqrt{\Sigma_1^n(X_i-\overline X)^2\Sigma_1^n(Y_i-\overline Y)^2}}COR(X,Y)=Σ1n(XiX)2Σ1n(YiY)2Σ1n(XiX)(YiY)

由公式可知,Pearson 相关系数是用协方差除以两个变量的标准差得到的,虽然协方差能反映两个随机变量的相关程度(协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但其数值上受量纲的影响很大,不能简单地从协方差的数值大小给出变量相关程度的判断。为了消除这种量纲的影响,于是就有了相关系数的概念。

当两个变量的方差都不为零时,相关系数才有意义,相关系数的取值范围为[-1,1]。

在这里插入图片描述
计算方式为cor = corr(Matrix,'type','Pearson'),其中Matrix 参数即为需要计算的矩阵。

数据相关性描述:Person 卡方检定,其值越大则相关性越大(如下图为 507.93 较大,说明有较大相关性)

在这里插入图片描述

数据可视化:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

高维数据:各维度的分布

在这里插入图片描述

高维数据:各位数据的关系

在这里插入图片描述

CiteSpace 是文献可视化的软件:下图为文章的引用次数

在这里插入图片描述

Gephi 软件可以可视化各维度数据,是开源的:

在这里插入图片描述

二、数据预处理方法

2.1 特征选择 Feature Selection

收集到大量的特征,需要选择好的、有代表性的特征,这个过程称为特征选择。

下图是指:身高的分布,其中 Class A 是女生身高分布曲线,Class B 是男生身高分布曲线:

在这里插入图片描述
下图是抽烟的数据集:其中 60% 不抽烟,40% 抽烟。不抽烟的人由 60% 女 + 40% 男构成。抽烟的人由 5% 女 + 95% 男构成。

在这里插入图片描述

熵:可以量化属性的区分度

  • 1 就是最大的熵,表示最不确定。
  • 属性整体的效能是 0.5477
  • 此属性的信息增益(Information Gain)是 1 - 0.5477 = 0.4523,表示此属性的价值。此值越大,说明此属性的效力越高(因为将原来最不确定性的熵降低的幅度最大)。
    在这里插入图片描述

利用熵,在各种属性里搜索,最好的属性。

  • 利用 Branch and Bound 可以剪枝

在这里插入图片描述

在这里插入图片描述

2.2 特征提取 Feature Extraction

特征提取:是指对特征做一定转换,如下图将像素点转变为像素点的差值,来分割边缘。
在这里插入图片描述

2.2.1 PCA 主成分分析

事物从不同角度看,不同的映射方法,信息损失程度不同:

在这里插入图片描述

如果某属性区分度越大,则此属性越重要。

在这里插入图片描述

可以经过变换来消除 correlation,使更容易选特征:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2.2 LDA 线性判别分析

PCA 虽然计算量不大,但如果投影方向选错,会丢失类别信息,使得无法区分主成分:

  • 如下图如果延着长的红色箭头投影,则蓝黄两类在投影线上无法区分
  • 如下图如果延着短的红色箭头投影,则蓝黄两类在投影线上可以区分

在这里插入图片描述

在这里插入图片描述

LDA 的目的就是,在维度收缩时,尽量保留「类间区分度」信息,如下图,x 为原始数据, w 即为方向,降为数据 y,左图区分度小,而右图区分度大即效果好。

在这里插入图片描述

类间距离大,而类内距离小:

在这里插入图片描述

投影评价的准则是JJJ最大化:J=∣μ1−μ2∣2S12+S22J=\frac{\left|\mu_1-\mu_2\right|^2}{S_1^2+S_2^2}J=S12+S22μ1μ22

其中分子是「类间距离」越大越好,分母是「类内距离」越小越好:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多类分类问题:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关文章:

【数据挖掘】2、数据预处理

文章目录一、数据预处理的意义1.1 缺失数据1.1.1 原因1.1.2 方案1.1.3 离群点分析1.2 重复数据1.2.1 原因1.2.2 去重的方案1.3 数据转换1.4 数据描述二、数据预处理方法2.1 特征选择 Feature Selection2.2 特征提取 Feature Extraction2.2.1 PCA 主成分分析2.2.2 LDA 线性判别分…...

(四十六)大白话在数据库里,哪些操作会导致在表级别加锁呢?

之前我们已经给大家讲解了数据库里的行锁的概念,其实还是比较简单,容易理解的,因为在讲解锁这个概念之前,对于多事务并发以及隔离,我们已经深入讲解过了,所以大家应该很容易在脑子里有一个多事务并发执行的…...

【Android源码面试宝典】MMKV从使用到原理分析(二)

上一章节,我们从使用入手,进行了MMKV的简单讲解,我们通过分析简单的运行时日志,从中大概猜到了一些MMKV的代码内部流程,同时,我们也提出了若干的疑问?还是那句话,带着目标(问题)去阅读一篇源码,那么往往收获的知识,更加深入&扎实。 本节,我们一起来从源码层次…...

如何使用ADFSRelay分析和研究针对ADFS的NTLM中继攻击

关于ADFSRelay ADFSRelay是一款功能强大的概念验证工具,可以帮助广大研究人员分析和研究针对ADFS的NTLM中继攻击。 ADFSRelay这款工具由NTLMParse和ADFSRelay这两个实用程序组成。其中,NTLMParse用于解码base64编码的NTLM消息,并打印有关消…...

【Python学习笔记】第二十二节 Python XML 解析

一、什么是XMLXML即ExtentsibleMarkup Language(可扩展标记语言),是用来定义其它语言的一种元语言。XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,它没有标签集(tagset),也没有语法规则(grammatical rule)。任何XML文档对任何…...

5分钟轻松拿下Java枚举

文章目录一、枚举(Enum)1.1 枚举概述1.2 定义枚举类型1.2.1 静态常量案例1.2.2 枚举案例1.2.3 枚举与switch1.3 枚举的用法1.3.1 枚举类的成员1.3.2 枚举类的构造方法1)枚举的无参构造方法2)枚举的有参构造方法1.3.3 枚举中的抽象方法1.4 Enum 类1.4.1 E…...

华为OD机试【独家】提供C语言题解 - 最小传递延迟

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明最小…...

【Web前端】关于JS数组方法的一些理解

一、具备栈特性的方法unshift(...items: T[]) : number将一个或多个元素添加到数组的开头,并返回该数组的新长度。shift(): T | undefined从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。二、具备队列特性的方法push(...items: T[]): …...

多智能体集群协同控制笔记(1):线性无领航多智能体系统的一致性

对于连续时间高阶线性多智能体系统的状态方程为: x˙i(t)Axi(t)Bui(t),i1,2..N\dot {\mathbf{x}}_i(t)A\mathbf{x}_i(t)B\mathbf{u}_i(t),i1,2..N x˙i​(t)Axi​(t)Bui​(t),i1,2..N 下标iii代表第iii个智能体,ui(t)∈Rq1\mathbf{u}_i(t)\in R^{q \time…...

hadoop-Yarn资源调度器【尚硅谷】

大数据学习笔记 Yarn资源调度器 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行与操作系统之上的应用程序。 (也就是负责MapTask、ReduceTask等任…...

聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题

前言 不知道大家在开发的过程中,有没有遇到这种场景,外部的项目想访问内部nexus私仓的jar,因为私仓不对外开放,导致外部的项目没法下载到私仓的jar,导致项目因缺少jar而无法运行。 通常遇到这种场景,常用…...

Flume 使用小案例

案例一:采集文件内容上传到HDFS 1)把Agent的配置保存到flume的conf目录下的 file-to-hdfs.conf 文件中 # Name the components on this agent a1.sources r1 a1.sinks k1 a1.channels c1 # Describe/configure the source a1.sources.r1.type spoo…...

DLO-SLAM代码阅读

文章目录DLO-SLAM点评代码解析OdomNode代码结构主函数 main激光回调函数 icpCB初始化 initializeDLO重力对齐 gravityAlign点云预处理 preprocessPoints关键帧指标 computeMetrics设定关键帧阈值setAdaptiveParams初始化目标数据 initializeInputTarget设置源数据 setInputSour…...

X和Ku波段小尺寸无线电设计

卫星通信、雷达和信号情报(SIGINT)领域的许多航空航天和防务电子系统早就要求使用一部分或全部X和Ku频段。随着这些应用转向更加便携的平台,如无人机(UAV)和手持式无线电等,开发在X和Ku波段工作,同时仍然保持极高性能水平的新型小尺寸、低功耗…...

推荐算法 - 汇总

本文主要对推荐算法整体知识点做汇总,做到总体的理解;深入理解需要再看专业的材料。推荐算法的意义推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在海量信息中快速发现真正所需的商品,提高用户黏性…...

Android 系统的启动流程

前言:从开机的那一刻,到开机完成后launcher将所有应用进行图标展示的这个过程,大概会有哪一些操作?执行了哪些代码?作为Android开发工程师的我们,有必要好好的梳理一遍。既然要梳理Android系统的启动流程&a…...

自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第二部分

我的学习心得,我认为能不能自学成功的要素有两点。 第一点就是自身的问题,虽然想要转行学习Java的人很多,但是非常强烈的想要转行学好的人是小部分。而大部分人只是抱着试试的心态来学习Java,这是完全不可能的。所以能不能学成Jav…...

Vue 3 第五章:reactive全家桶

文章目录1. reactive1.1. reactive函数创建一个响应式对象1.2. 修改reactive创建的响应式对象的属性2. readOnly2.1. 使用 readonly 函数创建一个只读的响应式对象2.2. 如何修改嵌套在只读响应式对象中的对象?3. shallowReactive3.1. 使用 shallowReactive 函数创建一个浅层响…...

【联机对战】微信小程序联机游戏开发流程详解

现有一个微信小程序叫中国象棋项目,棋盘类的单机游戏看着有缺少了什么,现在给补上了,加个联机对战的功能,增加了可玩性,对新手来说,实现联机游戏还是有难度的,那要怎么实现的呢,接下…...

优化基于axios接口管理的骚操作

优化基于axios接口管理的骚操作! 本文针对中大型的后台项目的接口模块优化,在不影响项目正常运行的前提下,增量更新。 强化功能 1.接口文件写法简化(接口模块半自动化生成) 2.任务调度、Loading调度(接口层…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Java编程之桥接模式

定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...