前言:
在前一篇中,已经搭建好了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