前言:

在前一篇中,已经搭建好了Tensorflow环境,本文将介绍如何准备数据与预处理数据。

正文:

在机器学习中,数据是非常关键的一个环节,在模型训练前对数据进行准备也预处理是非常必要的。

一、数据准备:

一般分为三个步骤:数据导入,数据清洗,数据划分。

1、数据导入:

数据存放在原始格式多种多样,具体取决于用于导入数据的机制和数据的来源。比如:有*.csv,*.txt,*xls,*.json等。

2、数据清洗:

数据清洗主要发现并纠正数据中的错误,包含检查数据的一致性,数据的无效值,以及缺失值等。

一致性检查:根据每个变量的合理取值范围和相互关系,检查数据是否符合要求,要求异常或逻辑上不合理的数据。

无效值和缺失值检查:由于编码或录入误差,数据中可能存在一些无效的值和缺失值,需要对其进行适当的处理:估算,整例删除,变量删除等方法来保证数据的完整性。

数据清洗的基本操作有:

选择,过滤,去重,采样,变换(归一化,标准化,缩放),数据替换(剪切,分割,合并),加权(属性加权,自动优化),属性生成,数据填补等。

3、数据划分:

数据划分是机器学习训练必不可少的一个环节,将数据分成不同部分,一部分用于训练,一部分用来验证或测试模型。

一般可采用以下方法:

1、按一定比例划分训练集与测试集,根据数据集大小,按8:2或7:3比例划分;

2、交叉验证法,采用K折交叉验证法;

二、特征工程:

(机器学习与深度学习最大的区别就是:在机器学习中,特征工程是独立的,而在深度学习中,特征工程是与模型整合在一起的。)

特征工程是将原始数据转化为特征的过程,这些特征可以很好的描述潜在问题,进而提高模型对未知数据的准确性。

特征一般分两类:

固有的原始特征:直接从数据集中获得;

从特征工程中获得:需要从现有的数据属性中提取出来的特征。

特征工程处理过程分三步:

特征提取,特征缩放,特征编码。

1、特征提取:

将原始数据转换为一组有明显特征意义的特征。去除无关特征或关联性很小的特征可以降低学习任务的难度,降低模型的复杂度。

主要方法:PCA和ICA

PCA(主成分分析)

找到数据中的主成分,利用这些主成分来表征原始数据,从而达到降维的目的。

步骤:1)对样本数据中心化处理;

2)求样本协方差矩阵;

3)对协方差矩阵进行特征分解,并从大到小排列;

4)取特征值前n个最大对应的特征向量。

ICA (独立成分分析)

获取相互独立的属性,寻找一个线性变换:z=Wx,使得z的各个特征分量之间的独立性最大。

2、特征缩放

特征缩放包含两种方法:归一化和正则化

归一化是将特征都缩放到一个指定的数据区间内。一般有两种归一化方法:线性函数归一化和零均值归一化。

线性函数归一化: X =(X-Xmin)/(Xmax-Xmin)

零均值归一化: 将原始数据映射到均值为0,方差为1的分布上。

3、特征编码

1)序号编码:

处理类别间大小关系的数据。

例如:在高,中,低三个档次,存在高 > 中 > 低的关系,就可以用序号编码对这三个档次进行编码:高表示3,中表示2,低表示1,转换后依然保留了大小关系。

2)独热编码:

用于处理类别间不具体大小关系的特征。

采用N位状态位来对N个可能的取值进行编码。

例:是否推出提示,有两种取值(推出,不推出),那么独热编码会将提示转换成一个2维向量:推出(1,0),不推出(0,1)

上一篇:环境搭建与包安装

使用Tensorflow搭建回归预测模型之一:环境安装

下一篇:模型搭建与训练

使用Tensorflow搭建回归预测模型之三:模型搭建与训练

使用Tensorflow搭建回归预测模型之二:数据准备与预处理的更多相关文章

  1. 使用Tensorflow搭建回归预测模型之一:环境安装

    方法1:快速包安装 一.安装Anaconda 1.官网地址:https://www.anaconda.com/distribution/,选择其中一个版本下载即可,最好安装3.7版本,因为2.7版本2 ...

  2. [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)

    3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...

  3. 10分钟搞懂Tensorflow 逻辑回归实现手写识别

    1. Tensorflow 逻辑回归实现手写识别 1.1. 逻辑回归原理 1.1.1. 逻辑回归 1.1.2. 损失函数 1.2. 实例:手写识别系统 1.1. 逻辑回归原理 1.1.1. 逻辑回归 ...

  4. 用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识

    用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识 循环神经网络RNN相比传统的神经网络在处理序列化数据时更有优势,因为RNN能够将加入上(下)文信息进行考虑.一个简单的RNN如 ...

  5. (转)一文学会用 Tensorflow 搭建神经网络

    一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day ...

  6. 从零开始用 Flask 搭建一个网站(二)

    从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...

  7. 用Tensorflow搭建神经网络的一般步骤

    用Tensorflow搭建神经网络的一般步骤如下: ① 导入模块 ② 创建模型变量和占位符 ③ 建立模型 ④ 定义loss函数 ⑤ 定义优化器(optimizer), 使 loss 达到最小 ⑥ 引入 ...

  8. 一文学会用 Tensorflow 搭建神经网络

    http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...

  9. SSM(SpringMVC+Spring+MyBatis)三大框架使用Maven快速搭建整合(实现数据库数据到页面进行展示)

    本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...

随机推荐

  1. oracle 数据库优化【转载】

    版权声明:本文为CSDN博主「咫尺的梦想ing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/u01305 ...

  2. python 不灭

    进程与线程的区别? 1进程是CPU资源分配的最小单元,线程是CPU计算的最小单元. 2一个进程中可以有多个线程 3对于python来说,它的进程与线程与其它语言有差异,它是有GIL锁,保证同一进程中, ...

  3. python数据类型之 元祖、列表字典

    Python中元祖,列表,字典   Python中有3种內建的数据结构:列表.元祖和字典: 1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的项目应该包 ...

  4. XDebug安装配置教程

    笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件). 转载http://www.jb51.net/ar ...

  5. 面试题:String类通用构造,拷贝构造,析构,赋值函数实现

    已知 String 类定义如下: class String { public: //通用构造函数 String(const char* str = NULL); //拷贝构造函数 String(con ...

  6. Apache监控调优

    apache是一款对静态资源处理得比较好的中间件,但是对动态请求处理得不是很好,tomcat则正好相反. apache运用得比较多得工作模式主要是Prefork和Worker两种模式 1.Prefor ...

  7. Django 过滤器 、日期格式化、数学运算

    Django 的模板中的数学运算前言 django模板只提供了加法的filter,没有提供专门的乘法和除法运算:django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算 ...

  8. Django-DRF组件学习-视图学习

    1.请求与响应 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. Djan ...

  9. 3D打印技术的学习

    1. 我们使用3D建模软件:123Ddesign来设计 123D design软件保存格式有2种,分别为123dx和stl格式 123dx格式:选择菜单栏中“Save”下的“To my compute ...

  10. 【Linux开发】arm-linux-gnueabihf-gcc下载

    原文地址:http://www.veryarm.com/arm-linux-gnueabihf-gcc veryarm是个不错的网站,里面介绍了很多相关的基础知识. arm-linux-gnueabi ...