数据挖掘—数据预处理

2023-11-20

数据预处理

数据预处理的过程

image-20220827173216726

数据预处理的目的:

1)提高数据质量

2)让数更好地适应特定的挖掘技术或工具

数据预处理工作量占整个数据挖掘工作量的60%

1 数据清洗

数据清洗主要是删除原始数据集中的无关数据、重复数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等。

image-20220827173503667

缺失值处理

常用的三种缺失值处理方法:

  • 删除记录:

    • 优点:简单直接,最有效
    • 缺点:以减少历史数据来换取数据的完备,会造成资源的大量浪费,丢弃了大量隐藏在这些记录中的信息。尤其是在数据集本来就包含很少记录的情况下,删除少量记录就可能严重影响分析结果的客观性和正确性。
  • 不处理:

    • 一些模型可以将缺失值作为一种特殊的取值,允许直接在含有缺失值的数据上进行建模。
  • 数据插补:

    插补方法 方法描述
    均值/中位数/众数插补 根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补
    使用固定值 将缺失的属性值用一个常量替换
    最近临插补 在记录中找到与缺失样本最接近的样本的该属性作为插补
    回归方法 对带有缺失值的变量,根据已有数据与其有关的其他变量的数据建立拟合模型来预测缺失值的属性值
    插值法 利用已知点建立合适的插值函数f(x),未知值由对应点xi求出的函数值f(xi)近似替代。常用插值法有拉格朗日插值、hermite插值、分段插值、样条插值

异常值处理

常用的异常值处理方法:

异常值处理方法 方法描述
删除含有异常值的记录 直接将含有异常值的记录删除
视为缺失值 利用缺失值的处理方法进行处理
平均值修正 可用前后两个观测值的平均值修正该异常值
不处理 直接在具有异常值的数据集上进行挖掘建模

注意:有些异常值可能蕴含着有用的信息,因此,要先分析异常值出现的可能原因,再判断是否应该舍弃。例如:信用卡盗刷

2 数据集成

数据集成是将多个数据源合并存放在一个一致的数据存储位置中的过程。

注意:来自多个数据源的现实实体的表达形式是不一样的,有可能不匹配,要考虑实体识别问题和属性冗余问题,从而将源数据在最底层上加以转换、提炼和集成。

主要处理方法:

  • 实体识别
  • 冗余属性识别
  • 数据变换
  • 属性构造
  • 小波变化

实体识别

实体识别从不同数据源识别出现实世界的实体,它的任务是统一不同源数据的矛盾之处。

常见的实体识别如下:

  • 同名异义:数据源 A中的属性ID和数据源B中的属性ID分别描述的是菜品编号和订单编号,即描述的是不同的实体。
  • 异名同义:数据源A中sales_dt和数据源B中sales_date都是描述销售日期,即A. sales_dt=B. sales_date。
  • 单位不统一:描述同一个实体时分别用不同的单位,如kg和斤。

冗余属性识别

  • 同一属性多次出现
  • 同一属性命名不一致导致重复

有些冗余属性可以用相关分析检测。给定两个数值型的属性A和属性B,根据其属性值,用相关系数度量一个属性在多大程度上蕴含另一个属性。

数据变换

数据变换主要是对数据进行规范化处理,将数据转换成“适当的”形式,以适用于数据挖掘任务及算法的需要。

常见的变换有:

  • 简单函数变换
  • 规范化
  • 连续数据离散化
简单函数变换
  • 简单函数变换是对原始数据进行某些数学函数变换,常用的包括平方、开方、取对数、差分运算等。
  • 简单函数变换常用来将不具有正态分布的数据变换成具有正态分布的数据。在时间序列分析中,简单的对数分析、差分分析可以将非平稳序列转换为平稳序列。
规范化
  • 数据标准化(归一化)处理是数据挖掘中的一项基本工作。
  • 为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。
  • 例如:将工资收入属性值映射到[-1,1]或[0,1]内。

常见的规范化方法:

最小-最大规范化:离差标准化
x ∗ = x − min ⁡ max ⁡ − min ⁡ x^{*}=\frac{x-\min }{\max -\min } x=maxminxmin
优点:保留原来数据中存在的关系,方法简单。

缺点:若数值集中且某个数值很大,则规范后各值会接近于0,并且相差不大。若将来遇到超过[min,max]的属性值时,会引起系统错误,需要重新确定min和max。

零-均值规范化:标准差标准化
x ∗ = x − x ‾ δ x^{*}=\frac{x-\overline{\mathrm{x}}}{\delta} x=δxx
x ‾ \overline{\mathrm{x}} x为原始数据均值,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据挖掘—数据预处理 的相关文章

  • saltstack使用指南:编写自己的模块代码

    saltstack编写自己的模块代码 1 saltstack远程执行的底层原理 2 执行模块的组成结构 3 编写自己的执行模块函数 4 交叉调用salt自带的模块函数 5 实战编写一个完整的模块 一 saltstack远程执行的底层原理 s
  • [Vue warn]: Error in created hook: "TypeError: handler.call is not a function"

    此问题为调用中生命周期钩子函数引起来的错误 解决办法为 生命周期钩子函数 是否有未定义方法 还是 声名了空的钩子函数 另外
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时

随机推荐

  • PowerVR开发工具和SDK 2020 Release 1发布啦!

    期待已久的PowerVR开发工具和SDK 2020年的第一个发行版本终于面市了 尽管面临来自世界各地的挑战 DevTech团队一直在努力工作 为整个市场提供最好的图形开发工具 任何想体验我们开发工具最新版本的用户请直接点击下方链接 下载Po
  • C语言打印数据的二进制格式-原理解析与编程实现

    问题引出 C语言中 在需要用到16进制数据的时候 可以通过printf函数的 x格式打印数据的16进制形式 在某些位标记 位操作的场合 需要用到2进制格式的数据 但printf函数不能输出2进制格式 虽然可以通过使用itoa或 itoa的方
  • 集合框架之Connection(马士兵教育视频教程总结笔记)

    when to use 当不知道程序运行时会需要多少对象 或者需要以更复杂的形式来储存对象时 可以使用java集合框架 e g 假定学员数 接口 4个 Collection List Set Map 1 Collection单值 List
  • Python浪漫七夕:可爱的卡通图案合集分享

    一个浪漫的日子 七夕 每个学科都有属于自己的浪漫 理工科的程序员们被大众普遍认为是直男直女 但其实我们才是最浪漫的 还不抓住机会展现一把 用专属于程序员的烂漫锁住爱 下面是我搜集到的一些Python绘制可爱的卡通图代码 我写成合集分享给大家
  • Java----AWT组件开发和Swing界面编程(一)

    一 AWT组件开发 1 AWT入门 AWT是抽象窗口工具箱的缩写 它为编写图形用户界面提供了用户接口 通过这个接口就可以继承很多方法 省去了很多工作 AWT还能使应用程序更好地同用户进行交互 AWT中的容器是一种特殊的组件 他可以包含其他组
  • STM32CubeMX HAL库串口+DMA+IDLE空闲中断不定长度数据接收和发送

    本文开发环境 MCU型号 STM32F103ZET6 IDE环境 MDK 5 29 代码生成工具 STM32CubeMx 5 3 0 HAL库版本 STM32Cube FW F1 V1 8 0 STM32Cube MCU Package f
  • 【转】Linux---centos安装配置并挂载NFS

    转自 http blog csdn net loyachen article details 51010688 系统环境 CentOS release 6 7 Final 服务端配置 1 安装nfs utils和rpcbind yum in
  • oracle批量修改某个字段的值的一部分

    有个字段是id aaa10 aaa12 aaa13 要改成 kkk10 kkk12 kkk13 UPDATE tablename SET id REPLACE id aaa kkk
  • Java与C#一些区别(学习笔记)

    一 基础语法 1 Console表示控制台 2 输入 Console ReadLine 格式 string name name Console ReadLine 3 输出 Console WriteLine 这个自带换行 Console W
  • Vscode中Python无法将pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    在Python需要pip下载插件时报错 是因为没有把Python安装路径下的Scripts添加到系统的path路径中 设置完之后重新启动Vscode就可以使用pip了
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • Postgresql vacuum 和 vacuum full

    转载自 https www modb pro db 63663 dead tuples tuple 元组 也就是一行数据 首先 简要解释什么是 死元组 和 膨胀 当您在PostgreSQL中执行DELETE时 行不会立即从数据文件中删除 而
  • 11.面向对象概述,类的创建,对象的创建

    一 面向对象程序设计概述 1 知识点面向对象程序设计的目的 1 从程序设计的角度来看 事物的属性就可以用变量来表示 行为则可以用方法来反映 2 客观世界中事物的属性和行为可以进行传递 当某一个事物得到另一个事物传给它的属性和行为 我们就说该
  • 证书 vivo_vivo官宣首款商用5G手机iQOO Pro,8月上市

    环球网科技综合报道 7月30日 vivo子品牌iQOO通过官微宣布支持5G网络的iQOO Pro将于8月发布 即vivo首款商用5G手机将是iQOO Pro iQOO自发布之初便备受关注 首款产品以游戏手机的定位切入市场对当时首批商用高通骁
  • 优雅,在SpringBoot项目中一键轻松接入ChartGPT

    最近体验了火爆全网的 ChartGPT 深刻体会了其强大的能力 这让我们程序猿对AI的未来突然有了广大的畅想空间 我也在网上看到不少大牛通过 ChartGPT 来获取收益 就寻思着能否自己接入 ChartGPT 的 API 来做些什么事情
  • Linux宝塔面板命令大全,快速学会

    cd www server panel python tools py panel 123456 查看宝塔日志 cat tmp panelBoot pl 查看软件安装日志 cat tmp panelExec log 站点配置文件位置 www
  • AppsFlyer 研究(三)OneLink平台归因、跳转、深度链接

    一 OneLink 简介 OneLink是AppsFlyer的对平台归因 跳转和深度链接的解决方案 OneLink在设备点击时检测到设备类型 并将用户重定向到匹配的目的地 例如Google Play商店 iOS应用商店 第三方应用商店 或者
  • "我为区块链赋能实体经济代言"第二批代言人:复旦大学张江研究院教授陈文君

    我为区块链赋能实体经济代言 推出以来 颇受行业关注 为进一步规范行业发展 落实区块链赋能实体经济的目标 为行业发展 正本清源而发声 新一轮的 我为区块链赋能实体经济代言 于9月3日重磅启动 我为区块链赋能实体经济代言100人第二批 第3位代
  • JPEG编码原理与解码分析

    JPEG编码原理 JPEG Joint Photographic Experts Group 是JPEG标准的产物 该标准由国际标准化组织 ISO 制订 是面向连续色调静止图像的一种压缩标准 JPEG格式是最常用的图像文件格式 后缀名为 j
  • 数据挖掘—数据预处理

    文章目录 数据预处理 1 数据清洗 缺失值处理 异常值处理 2 数据集成 实体识别 冗余属性识别 数据变换 简单函数变换 规范化 连续属性离散化 属性构造 3 数据规约 属性归约 数值归约 Python主要数据预处理函数 数据预处理 数据预