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

时间:2024-03-10 19:13:03

前言:

       在前一篇中,已经搭建好了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搭建回归预测模型之三:模型搭建与训练