最近在看python数据分析与挖掘实战这本书,所以就顺手做个笔记,方便日后忘记了查找。这本书前面五章主要讲的是数据挖掘的建模过程,包括数据探索、数据预处理以及挖掘建模常用算法等几个方面。后面十章是案例分析,每章一个实战案例,加深对数据分析与挖掘的理解。前面的都比较基础,所以从第四章数据预处理开始看。

1. 数据清洗

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

1.1 缺失值处理

处理缺失值主要有三种方法:删除记录、数据插补和不处理。当然这里数据插补是最使用最多的,包括均值/中位数/众数插补、固定值插补、最近邻插补、回归方法插补和插值法。

(1)拉格朗日插值法

拉格朗日插值法是一个数学问题

将缺失的函数值对应的点x带入插值公式即得到缺失值的近似值L(x)。

但是当插值结点增减时,插值多项式就会随之变化,这在实际计算中是很不方便的,为了克服这一点,提出了牛顿插值法。

(2)牛顿插值法

  • 差商公式

  • 联立以上差商公式建立插值多项式

  • 将缺失的函数值对应的点x带入插值公式即得到缺失值的近似值f(x)

牛顿插值法的优点是计算较简单,尤其是增加节点时,计算只增加一项,这是拉格朗日插值无法比的。 
缺点是仍没有改变拉格朗日的插值曲线在节点处有尖点,不光滑,插值多项式在节点处不可导等。

1.2 异常值处理

异常值处理方法 方法描述
删除含有异常值的记录 直接将含有异常值的记录删除
视为缺失值 利用缺失值处理的方法进行处理
平均值修正 用前后两个观测值的平均值修正该异常值
不处理 某些异常值也是包含有用的信息

2. 数据集成

数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。

2.1 实体识别

指不同数据源识别出现实世界的实体,他的任务是同意不同数据源的矛盾之处。常见形式有:

  • 同名异义
  • 异名同义
  • 单位不同意

2.2 冗余属性识别

数据集成往往造成数据冗余,例如同一属性出现多次以及同一属性命名不一致导致重复

3. 数据变换

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

3.1 简单函数变换

是指对原始数据进行某些数学函数变换,常用的有平方、开方、取对数等等。

简单函数变换常用来将不具有正态分布的数据变换成具有正态分布的数据。

在时间序列分析中,有时简单的对数变换或者查分运算就可以将非平稳序列转换成平稳序列。

3.2 规范化

  • 最大-最小规范化
  • 零-均值规范化
  • 小数定标规范化

3.3 连续属性离散化

某些算法要求数据是分类属性形式,于是常常需要将连续属性变换成分类属性。

数据离散化涉及两个子问题:确定分类树以及如何将连续属性值映射到这些分类值。

常用的离散化方法:

(1)等宽法

将属性的至分成具有相同宽度的区间,区间的个数有数据本身的特点决定,类似于制作频率分布表

(2)等频法

将相同数量的记录放进每个区间。

(3)基于聚类分析的方法

首先将连续属性的值用聚类算法进行聚类,然后再将聚类得到的簇进行处理,合并到一个簇的连续属性值并做同一标记。

3.4 属性构造

在数据挖掘过程中,为了提取更有用的信息,挖掘更深层次的模式,我们需要对已有的属性集构造出新的属性,并加入到现有的属性集合中。

3.5 小波变换

小波变换在信号分析领域应用较为广泛。关于小波变换的具体细节可以随便去CSDN上找一篇教程来学习,这里就不再赘述。

小波变换可以把非平稳信号分解为表达不同层次、不同频带信息的数据序列,即小波系数。选取适当的小波系数,即完成了信号的特征提取。

在python中有专门的信号处理库Pywavelets(pywt)

4. 数据规约

如果数据集过大,则会导致分析过程耗时耗力,数据规约可以产生更小但保持原数据集完整性的新数据集。

(1)属性规约

通过属性合并来创建新属性维数,或者直接通过删除不相关的数学来减少数据维数。

属性规约方法主要有:合并属性、逐步向前选择、逐步向后删除、决策树归纳、主成分分析。

主成分分析(PCA)是一种用于连续属性的数据降维方法,它构造了原始数据的一个正交变换,新空间的基底取出了原始空间基底下数据的相关性,只需使用少数新变量就能够解释原始数据中的大部分变异。

(2)数值规约

参数规约是指通过选择替代的、较小的数据来减少数据量,包括有参数方法和无参数方法。

5. python主要数据预处理函数

函数名 函数功能 所属扩展库
interpolate 一维、高维数据插值 Scipy
unique 取出数据中的重复元素,得到单值元素列表 Pandas
isnull 判断是否空值 Pandas
notnull 判断是否空值 Pandas
PCA 对指标变量矩阵进行主成分分析 Scikit-learn
random 生成随机矩阵 Numpy

2018.05.06

python数据预处理相关推荐

  1. python数据处理实例-Python数据预处理实例详解

    Python----数据预处理代码实例 本文实例为大家分享了Python数据预处理的具体代码,供大家参考,具体内容如下 1.导入标准库 import numpy as np import matplo ...

  2. Python数据预处理:机器学习、人工智能通用技术(1)

    1 什么是数据预处理 数据预处理简而言之就是将原始数据装进一个预处理的黑匣子之后,产生出高质量数据用来适应相关技术或者算法模型.为了大家更明确的了解数据预处理,我们举个新闻分类的例子: 将原始的数据直 ...

  3. [Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念]

    前言 系列文章目录 [Python]目录 视频及资料和课件 链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234 提取码:1234 文 ...

  4. Python数据预处理——格式转换及抽取数据文本信息

    课程地址:https://www.imooc.com/learn/1105 1. 数据预处理简介 1.1 什么是数据预处理 数据预处理简单来说就是:将原始数据装进一个预处理的黑匣子之后,产生出高质量数 ...

  5. 3行代码,Python数据预处理提速6倍!(附链接)

    来源:新智元 本文约2600字,建议阅读8分钟. 本文介绍了仅需3行代码,将Python数据处理速度提升2~6倍的简单方法. Python是所有机器学习的首选编程语言.它易于使用,并拥有许多很棒的库, ...

  6. 3行代码,Python数据预处理提速6倍

    在 Python 中,我们可以找到原生的并行化运算指令.本文可以教你仅使用 3 行代码,大大加快数据预处理的速度. Python 是机器学习领域内的首选编程语言,它易于使用,也有很多出色的库来帮助你更 ...

  7. python data analysis | python数据预处理(基于scikit-learn模块)

    原文:http://www.jianshu.com/p/94516a58314d Dataset transformations| 数据转换 Combining estimators|组合学习器 Fe ...

  8. python数据预处理代码_Python中数据预处理(代码)

    本篇文章给大家带来的内容是关于Python中数据预处理(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.1.导入标准库import numpy as np import matp ...

  9. python数据预处理_Python数据分析——数据预处理的方法

    前言 1. 关于数据集 数据来源:日月光华老师的<Python数据分析从入门到机器学习>的 lianjia 数据. 数据概况: cjtaoshu:成交套数 mendian:门店 cjzon ...

最新文章

  1. 使用Python,OpenCV查找图像中的最亮点
  2. appium适用场景
  3. Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程
  4. mysql使用常量列_MySQL 执行计划
  5. linux查看文件和目录大小(du)
  6. MachineLearning(1)-激活函数sigmoid、损失函数MSE、CrossEntropyLoss
  7. iOS学习笔记-自定义过渡动画
  8. 从 Ops 到 NoOps,阿里文娱智能运维的关键:自动化应用容量管理
  9. 剑指offer面试题41. 数据流中的中位数(二分查找)
  10. 【MySQL快速入门】高级查询:计算函数分组计算
  11. PDF在线预览 (flexpaper+swftools+saveaspdfandxps)
  12. Unity3D脚本访问与参数传递
  13. MD5摘要算法的几种破解方法!
  14. OpenFileDialog/SaveFileDialog 中 Filter用法?
  15. 项目管理知识体系指南(十一)项目采购管理
  16. UTC时间(世界协调时间)和北京时间转换
  17. 31. Git与Github
  18. VBS+迷你QQ,实现机器远程休眠和电驴的自动休眠
  19. Androidnbsp;滑动开关控件
  20. ELL解决:libstdc++.so.6: version `CXXABI_1.3.9' not found (required by bin/opencv_test_core)?

热门文章

  1. SAP License:2021年度最新FICO面试题目
  2. 线下产品风控门道真不少
  3. 深入源码解析类Route
  4. 机器学习术语中英对照表
  5. bootstrap分割式下拉菜单显示不全
  6. xor和路径(codevs 2412)
  7. GO_00:Mac之Item2的配置安装
  8. iOS追踪设备和用户
  9. Shell脚本常用判断
  10. 对一个正整数n,求出n!中末尾0的个数。