使用Tensorflow搭建回归预测模型之二:数据准备与预处理
前言:
在前一篇中,已经搭建好了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:快速包安装 一.安装Anaconda 1.官网地址:https://www.anaconda.com/distribution/,选择其中一个版本下载即可,最好安装3.7版本,因为2.7版本2 ...
- [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)
3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...
- 10分钟搞懂Tensorflow 逻辑回归实现手写识别
1. Tensorflow 逻辑回归实现手写识别 1.1. 逻辑回归原理 1.1.1. 逻辑回归 1.1.2. 损失函数 1.2. 实例:手写识别系统 1.1. 逻辑回归原理 1.1.1. 逻辑回归 ...
- 用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识
用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识 循环神经网络RNN相比传统的神经网络在处理序列化数据时更有优势,因为RNN能够将加入上(下)文信息进行考虑.一个简单的RNN如 ...
- (转)一文学会用 Tensorflow 搭建神经网络
一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day ...
- 从零开始用 Flask 搭建一个网站(二)
从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...
- 用Tensorflow搭建神经网络的一般步骤
用Tensorflow搭建神经网络的一般步骤如下: ① 导入模块 ② 创建模型变量和占位符 ③ 建立模型 ④ 定义loss函数 ⑤ 定义优化器(optimizer), 使 loss 达到最小 ⑥ 引入 ...
- 一文学会用 Tensorflow 搭建神经网络
http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...
- SSM(SpringMVC+Spring+MyBatis)三大框架使用Maven快速搭建整合(实现数据库数据到页面进行展示)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
随机推荐
- NABCD分析——生活日历
N(Need)需求 本软件的主体为日历.如今人们的生活趋于现代化,大家主要通过手机来查看日期,但我们每一天都有想要做或未完成的事情,也存在对自己有特殊意义的日子.每天人们都会有或大或小的支出与收入,想 ...
- android界面的滑动切换功能
左右滑动切换是几乎所有应用中都会用到的功能.在这里将相关资源进行总结 (1)viewflipper结合手势检测进行左右滑动. http://www.cnblogs.com/hanyonglu/arch ...
- 交互式数据可视化-D3.js(二)选择集和数据
选择集 select和selectAll类似jquery: d3.select('body') d3.select('.body') d3.select('#body') d3.selectAll(' ...
- JAVA第二周课程总结
本周我们开始学习一门新的课程JAVA 本周主要学习内容: 1.认识java,以及它的开发工具jdk 2.了解Java的语言特点 3.搭建Java开发环境,jdk的安装和配置
- MySQL主从服务器的原理和设置
一 主从配置的原理 mysql的Replication是一个异步的复制过程,从一个mysql instance(Master)复制到另一个mysql instance(Slave), 在mas ...
- 2、maven仓库位置设置
根据我们maven的安装目录找到config文件夹,并找到下面的setting.xml文件,在该文件里面添加下面的代码: <localRepository>F:\apache-maven- ...
- windows程序调试
由于不能在控制台输出,可以使用Messagebox 但是有时候要用到输出int之类的,需要转换.转换过程中有会有很多问题. 这里给出两个可行的代码 int a = 5, b = 10; int res ...
- 网站模板-Layui:Layui
ylbtech-网站模板-Layui:百科 layui,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的 ...
- springboot文件上传报错
异常信息: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet reques ...
- @Scheduled(cron = "0/5 * * * * *")将时间改为配置
有两种方法:第一种当然你可以把Scheduled写到xml文件中进行配置. 第二种在你的类前面添加 此处讲解第二种写法 第二种在你的类前面添加@PropertySource("classpa ...