使用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)

下一篇将介绍模型搭建与训练

原文地址:https://www.cnblogs.com/jimchen1218/p/11583768.html

时间: 2024-11-08 21:08:29

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

使用Tensorflow搭建回归预测模型之八:模型与外部接口对接

前一篇中,我们讨论了模型的压缩,将标准tensorflow格式的模型文件转换成tflite格式,极大的缩小了模型的大小. 本篇我们将介绍如何使用标准C/C++来调用tflite格式的模型. 接下来依次介绍下: 一.BUILD文件修改: # Description: # TensorFlow Lite A/C of Traffic Assist. package(default_visibility = ["//visibility:public"]) licenses(["n

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台

基于rhel7.2的Zabbix平台搭建和部署(二)

 基于rhel7.2的Zabbix平台搭建和部署(二) 一.监控系统Zabbix-3.2.1的安装 zabbix-server端的操作 说明:zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local) (1)创建zabbix运行的用户 [[email protected] ~]# groupadd zabbix [[email protected] ~]# useradd -g zabbix [[email protected] ~]# g

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

一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day 6: 快速入门 Tensorflow 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码,想看视频的也可以去他的优酷里的频道找. Tensorflow 官网 神经网络是一种数学模型,是存在于计算机的神经系统,由大量的神经元相

学会用tensorflow搭建简单的神经网络 2

#!/usr/bin/env python# _*_ coding: utf-8 _*_import tensorflow as tfimport numpy as np#add_layedef add_layer(inputs, in_size, out_size, activation_function=None): # add one more layer and return the output of this layer Weights = tf.Variable(tf.random

ExtJS 4.2 业务开发(二)数据展示和查询

本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统,并提供查询.添加.修改的功能. 大致的目录结构如下: ShipMgrTab.js :船舶业务的入口. controller 目录:存放船舶业务的逻辑控制文件. model 目录:存放船舶业务的model文件. store 目录 :存放船舶业务的store文件. view 目录 :存放船舶业务的组件

SQL语句汇总(二)——数据修改、数据查询

首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)  如: INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES (1,'大毛',18,'男'); 其中列名可以省略,省略之后要求插入的值必须与列一一对应: INSERT INTO t_student VALUE

【炼数成金 RapidMiner 二 】数据导入、预处理、导出

(1)链接数据库 (2)选择相关数据 (3)导入数据显示 (4)第二种方案 直接打开一个csv文件 (5) 设定存储位置 得到插入csv文件的数据表 (6)元数据视图和"数据视图"中查看数据集.注意是否有任何属性具有缺失或不一致的数据. (7)替换缺失值 结果buying属性下的缺失个数为0 (7)使用过滤器 过滤其他的缺失数据 元数据缺失的数据 被删除 [炼数成金 RapidMiner 二 ]数据导入.预处理.导出

(转)SVN服务器搭建和使用(二)

SVN服务器搭建和使用(二) 原文:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html 上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首先打开VisualSVN Server Manager,如图: 可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要