机器学习与数据挖掘——数据预处理

news2024/11/16 3:50:51

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间

一:关于数据预处理

在工程实践中,我们得到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为:去除唯一属性、处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析。

数据预处理的意义:

  • 真实世界中的数据存在脏数据:
    • 不完备(Incompleteness):缺少属性值,缺少某种感兴趣的属性,或者仅包含聚集数据
    • 误差:测量误差和收集误差,难以处理
    • 噪音(Noise):存在错误或者不属于取值范围。包含错误或者孤立点/离群点(outlier)
    • 不一致(Inconsistency):编号或者名称存在差异
  • 数据质量的多维度量
    • 一个广为认可的多维度量观点:
      • 精确性(Accuracy)
      • 完整性(Completeness)
      • 一致性(Consistency)
      • 时效性(Timelines)
      • 可信度(Believability)
      • 可解释性(Interpretability)
    • 跟数据本身的含义相关的
      • 内在的、上下文的、表象的以及可访问性
  • 实际领域有很多复杂的数据,数据来自许多不同的来源和不同形式

数据预处理的重要性:

  • 没有高质量的数据,就没有高质量的挖掘结果
    • 高质量的决策必须依赖高质量的数据
    • 数据仓库需要对高质量的数据进行一致地集成
    • 低质量的数据VS算法性能
  • 数据预处理将是构建数据仓库或者进行数据挖掘的工作中占工作量最大的一个步骤

数据预处理的主要任务:

  • 数据清理(Data Cleaning):填写空缺的值,平滑噪声数据,识别、删除孤立点,解决不一致性
  • 数据集成(Data Integration):集成多个数据库、数据立方体或文件
  • 数据变换(Data Transformation):规范化(Normalization)、聚集(Aggregation)、数据离散化(Data Discretization)
  • 数据归约(Data Reduction):得到数据集的压缩表示并得到相同或相近的结果

在这里插入图片描述

二:数据清理

数据清理的基本概念:数据清理一般指对数据通用性的处理,旨在提高数据质量,与分析任务关联不大。

数据清理任务:

  • 填充空缺值
  • 识别离群点和平滑噪声数据
  • 纠正不一致的数据
  • 解决数据集成造成的冗余
  • 数据脱敏

引起空缺值的原因

  • 数据并不总是完整的。数据库表中,很多条记录的对应字段没有相应值,比如销售表中的顾客收入。
  • 设备异常
  • 与其他已有数据不一致而被删除
  • 因为误解而没有被输入的数据
  • 在输入时,有些数据应为得不到重视而没有被输入
  • 对数据的改变没有进行日志记载

空缺值的填充方法:

  • 忽略元组:当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差
  • 人工填写空缺值:工作量大,可行性低
  • 填充:
    • 用一个全局变量填充空缺值:比如使用unknown或者∞
    • 使用属性的平均值填充空缺值
    • 使用与给定元组属同一类的所有样本的平均值
    • 使用最可能的值填充空缺值:使用像Bayesian公式,knn或判定树这样的基于推断的方法

噪声数据与其他数据问题:

  • 噪声:一个测量变量中的随机错误或偏差
  • 引起不正确属性值的原因
    • 数据收集工具的问题
    • 数据输入错误
    • 数据传输错误技术限制
    • 命名规则的不一致
  • 其它需要数据清理的数据问题
    • 重复记录
    • 不完整的数据不一致的数据

噪声数据的处理方式:

  • 回归(Regression):通过让数据适应回归函数来平滑数据
  • 聚类(Clustering):监测并且去除孤立点
  • 计算机和人工检查结合:计算机检测可疑数据,然后对它们进行人工判断

噪声数据的处理方式——聚类:聚类将类似的值聚成簇,落在簇集合之外的值被视为离群点
在这里插入图片描述

三:数据集成

数据集成的基本概念

  • 定义:将多个数据源中的数据整合到一个一致的存储中
  • 模式集成:整合不同数据源中的元数据

数据集成的处理方法:

  • 实体识别(Entity ldentification/Term Recognition)问题:匹配来自不同数据源的现实世界的实体
  • 检测并解决数据值的冲突(Value Conflict)
    • 对现实世界中的同一实体,来自不同数据源的属性值可能是不同的
    • 可能的原因:不同的数据表示,不同的度量等

集成多个数据库时,常出现冗余(Redundancy)数据

  • 对象识别:同一属性或对象在不同的数据库中会有不同的字段名
  • 可导出数据:一个属性可以由另外一个表导出,如“年薪=工资*12”

数据集成时处理冗余数据:
在这里插入图片描述

四:数据变换

数据变换(Data Transformation)策略:

  • 光滑(Smoothing):分箱、回归、聚类等技术
  • 特征构造(Feature Construction):新特征生成
  • 聚集(Aggregation):对数据进行汇总或聚集
  • 概念分层(Concept Hierarchy Generation):如:country-province -city
  • 规范化(Normalization):将数据按比例缩放,使之落入一个小的特定区间
  • 离散化(Discretization):数值属性用区间标签或概念标签替换

4.1:规范化

数据变换——规范化/标准化:

  • 作用: 对属性值进行规范化常用于涉及神经网络或距离度量的分类算法和聚类算法中。比如使用神经网络向后传播算法进行分类挖掘时,对训练元组中度量每个属性的输入值进行规范化有助于加快学习阶段的速度。对于基于距离度量相异度的方法,数据规范化可以让所有的属性具有相同的权重。
  • 常用方法:
    • 简单的标准化
    • 最小-最大规范化
    • z-score规范化
    • 小数定标规范化
      在这里插入图片描述

4.2:离散化

数据变换——离散化:

  • 将连续属性变换成分类属性,即连续属性离散化
    • 一些DM算法要求数据是分类属性形式,如ID3算法、Apriori算法等
  • 离散化的过程
    • 涉及两个子任务:
      • 决定需要多少个分类量及确定如何将连续
      • 属性值映射到这些分类值
  • 常用的离散化方法
    • 无监督方法:分箱法、直方图、基于聚类/相关分析的方法
    • 监督方法:离散化的决策树方法、概念分层

五:数据归约

5.1:基本概念

数据归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量(完成该任务的必要前提是理解挖掘任务和熟悉数据本身内容)。

数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。

假定在公司的数据仓库选择了数据用于分析,这样数据集将非常大。在海量数据上进行复杂的数据分析扣挖掘将需要很长时间,使得这种分析不现实或不可行。数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近地保持原数据的完整性。这样,在归约后的数据集上挖掘将更有效,并产生相同(或几乎相同)的分析结果。

数据归约的策略:

  • 数据立方体聚集:聚集操作用于数据方中的数据。
  • 维归约:可以检测并删除不相关、弱相关或冗余的属性或维。
  • 数据压缩:使用编码机制压缩数据集。
  • 数值归约:用替代的、较小的数据表示替换或估计数据,如参数模型(只需要存放校型参数,而不是实际数据)或非参数方法,如聚类、选样和使用直方图。
  • 离散化和概念分层生产:属性的原始值用区间值或较高层的概念替换,概念分层允许挖掘多个抽象层上的数据,是数据挖掘的一种强有力的工具。

5.2:归约分类

5.2.1:特征归约

特征归约是从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。其原则是在保留、甚至提高原有判别能力的同时减少特征向量的维度。特征归约算法的输入是一组特征,输出是它的一个子集。在领域知识缺乏的情况下进行特征归约时一般包括3个步骤:

  • 搜索过程:在特征空间中搜索特征子集,每个子集称为一个状态由选中的特征构成。
  • 评估过程:输入一个状态,通过评估函数或预先设定的阈值输出一个评估值搜索算法的目的是使评估值达到最优。
  • 分类过程:使用最终的特征集完成最后的算法。

特征归约处理的效果:

  • 更少的数据,提高挖掘效率
  • 更高的数据挖掘处理精度
  • 简单的数据挖掘处理结果
  • 更少的特征

5.2.2:样本归约

样本都是已知的,通常数目很大,质量或高或低,或者有或者没有关于实际问题的先验知识。

样本归约就是从数据集中选出一个有代表性的样本的子集。子集大小的确定要考虑计算成本、存储要求、估计量的精度以及其它一些与算法和数据特性有关的因素。

初始数据集中最大和最关键的维度数就是样本的数目,也就是数据表中的记录数。数据挖掘处理的初始数据集描述了一个极大的总体,对数据的分析只基于样本的一个子集。获得数据的子集后,用它来提供整个数据集的一些信息,这个子集通常叫做估计量,它的质量依赖于所选子集中的元素。取样过程总会造成取样误差,取样误差对所有的方法和策略来讲都是固有的、不可避免的,当子集的规模变大时,取样误差一般会降低。一个完整的数据集在理论上是不存在取样误差的。与针对整个数据集的数据挖掘比较起来,样本归约具有以下一个或多个优点:减少成本、速度更快、范围更广,有时甚至能获得更高的精度。

5.2.3:特征值归约

特征值归约是特征值离散化技术,它将连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号。这种技术的好处在于简化了数据描述,并易于理解数据和最终的挖掘结果。

特征值归约可以是有参的,也可以是无参的。有参方法使用一个模型来评估数据,只需存放参数,而不需要存放实际数据;

  • 有参的特征值归约有以下两种:
    • 回归:线性回归和多元回归
    • 对数线性模型:近似离散多维概率分布
  • 无参的特征值归约有3种:
    • 直方图:采用分箱近似数据分布,其中V-最优和MaxDiff直方图是最精确和最实用的
    • 聚类:将数据元组视为对象,将对象划分为群或聚类,使得在一个聚类中的对象“类似”而与其他聚类中的对象“不类似”在数据归约时用数据的聚类代替实际数据
    • 选样:用数据的较小随机样本表示大的数据集,如简单选择n个样本(类似样本归约)、聚类选样和分层选样等

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

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

相关文章

Kaldi的简单介绍和基本使用说明

Kaldi的简单介绍和基本使用说明前言一、ASR简介1.语音识别系统特征提取:声学模型发音词典语言模型语音解码2. ASR项目二、Kaldi简介三、Kaldi项目的结构四、Kaldi的安装1. 安装依赖的几个系统开发库2. 安装依赖的第三方工具库3. 编译Kaldi代码配置Kaldi编译Kaldi五、…

Python-进程和线程

张钊*,沈啸彬*, 王旭* 李月,曹海艳, (淮北师范大学计算机科学与技术学院,淮北师范大学经济与管理学院,安徽 淮北) *These authors contributed to the work equllly and should be regarded as co-first authors. &a…

智能电网中需求响应研究(Matlab代码实现)

目录 1 概述 2 运行结果 ​编辑 ​编辑 3 参考文献 4 Matlab代码实现 1 概述 智能电网需求响应可以降低电网高峰用电需求、提高电网运行稳定性和可靠性,尤其是通过需求响应实现电网接纳间歇性可再生能源发电的能力。 需求响应的全球进展及产生的效益等情况在…

SDUT—Python程序设计实验1011(面向对象)

7-1 sdut-oop-2 Shift Dot(类和对象) 给出平面直角坐标系中的一点,并顺序给出n个向量,求该点根据给定的n个向量位移后的位置。 设计点类Point,内含: (1)整型属性x和y,表示点的横坐标…

数据可视化之交通可视化

一 前言 智慧城市的概念自 2008年提出以来,在国际上引起广泛关注,并持续引发了全球智慧城市的发展热潮。智慧城市已经成为推进全球城镇化、提升城市治理水平、破解大城市病、提高公共服务质量、发展数字经济的战略选择。近年来,我国智慧城市…

rxjs pipeable operators(上)

rxjs pipeable operators(上) A Pipeable Operator is a function that takes an Observable as its input and returns another Observable. It is a pure operation: the previous Observable stays unmodified. 一个 Pipeable Operator 是一个接受一个…

Ubuntu空间不足,如何扩容

目录 1、硬盘操作步骤 2、Ubuntu命令操作:安装分区管理工具 3、分区结果展示 1、硬盘操作步骤 最近发现Ubuntu空间不足,怎么去扩容呢?第一步:点击【硬盘】 第二步:点击【扩展】 第三步:修改【最大磁盘…

创新洞察丨消费品牌D2C生存发展的3大差异化策略

在过去六年中,DTC 品牌的销售额增长了两倍,但另一个事实是,他们花费了数十亿美元于营销投入,品牌知名度却不见增长。Lego 创意总监James Gregson认为,在同质化的DTC品牌崛起之下,打造品牌差异成为生存的关键…

Jsp 学习笔记

代码可参考: Demo地址 1 入门 1.1 环境搭建 创建moven项目目录结构如下 1.2 依赖配置 <!-- 依赖 --> <dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>…

PyQt5可视化编程-图形界面开发工具QtDesigner和PyUIC

一、概述 Qt库是跨平台的 C库的集合&#xff0c;是最强大的 GUI库之一&#xff0c;可以实现高级 API来访问桌面和移动系统的各种服务。PyQt5是一套 Python绑定 Digia QT5应用的框架。PyQt5实现了一个 Python模块集&#xff0c;有 620个类&#xff0c;6000个函数和方法。PyQt5的…

【Oracle篇】Oracle集群-rac模式

Oracle rac模式 RAC(real application clusters) 整个集群系统又分为 oracle Clusterware (集群就绪软件)和 Real Application(RA) 两大部分组成。 基本架构 rac 是 Oracle 数据库的高可用集群。传统数据库一个实例一个数据库&#xff0c; RAC 是多个实例&#xff0c;一个数…

四、值类型 和 引用类型

文章目录1、值类型 和 引用类型2、栈 和 堆3、特殊的引用类型 string4、通过 Debug调试 验证 string 的特殊1、值类型 和 引用类型 引用类型&#xff1a;string、数组、类 - 堆 值类型&#xff1a;其他的都是值类型 - 栈 2、栈 和 堆 栈空间&#xff1a;系统分配&#xff0…

Bootstrap5 教程

Bootstrap5 教程 Bootstrap 是全球最受欢迎的前端组件库&#xff0c;用于开发响应式布局、移动设备优先的 WEB 项目。 Bootstrap5 目前是 Bootstrap 的最新版本&#xff0c;是一套用于 HTML、CSS 和 JS 开发的开源工具集。它支持 Sass 变量和 mixins、响应式网格系统、大量的预…

HTML+CSS+JS鲜花商城网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Java项目:ssm开发的Java快递代拿系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 使用技术 采用 Spring SpringMVC MyBatisPlus&#xff0c;连接池采用 Druid&#xff0c;安全框架使用 Shiro&#xff0c;前端采用 Bootstrap layer 实…

浅谈推荐系统之内容推荐

推荐系统概念相关 维基百科定义&#xff1a; 推荐系统是一种信息过滤系统&#xff0c;用于预测用户对物品的“评分”或“偏好”。 推荐系统近年来非常流行&#xff0c;应用于各行各业。推荐的对象包括&#xff1a;电影、音乐、新闻、书籍、学术论文、搜索查询、分众分类、以及…

vmware: 磁盘加载问题导致,emergency mode: login incorrect 滚动打印

文章目录问题调试&解释异常日志为什么进入Emergency shell 呢为什么local-fs.target 失败为什么storage.mount 超时服务单元的依赖关系那最后进入emergency mode 为什么会滚Login Incorrect 日志呢plymouthsystemd-sulogin-shellsulogin解决问题 VM虚拟机启动不正常。正常…

[附源码]计算机毕业设计作业查重系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计疫情管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

JS高级:Git

目录 集中式版本控制 ​编辑 分布式版本控制 Git 安装 bash-cmd-gui 基本使用 文件状态 git忽略文件 版本回退 远程仓库 gitee 凭证 SSH秘钥 管理远程仓库 开源协议 github git标签 git 分支 master 分支 分支操作 集中式版本控制 分布式版本控制 Git 安装 G…