使用Python语言构建模型——paddle飞桨学习笔记

本文是基于百度飞桨的学习,很多资料去飞桨官网寻找即可

数据处理

数据处理包含五个部分:数据导入、数据形状变换、数据集划分、数据归一化处理和封装load data函数。数据预处理后,才能被模型调用。

说明:

本教程中的代码都可以在AIStudio上直接运行,Print结果都是基于程序真实运行的结果。
由于是真实案例,代码之间存在依赖关系,因此需要读者逐条、全部运行,否则会导致命令执行报错。
读入数据
通过如下代码读入数据,了解下波士顿房价的数据集结构,数据存放在本地目录下housing.data文件中。

导入需要用到的package
import numpy as np
import json

读入训练数据

datafile = ‘./work/housing.data’(自己选择一个数据,选用了经典的波士顿房价)
data = np.fromfile(datafile, sep=’ ')
data
结果
array([6.320e-03, 1.800e+01, 2.310e+00, …, 3.969e+02, 7.880e+00,
1.190e+01])

数据形状变换

由于读入的原始数据是1维的,所有数据都连在一起。因此需要我们将数据的形状进行变换,形成一个2维的矩阵,每行为一个数据样本(14个值),每个数据样本包含13个X(影响房价的特征)和一个Y(该类型房屋的均价)。

读入之后的数据被转化成1维array,其中array的第0-13项是第一条数据,第14-27项是第二条数据,以此类推…
这里对原始数据做reshape,变成N x 14的形式
feature_names = [ ‘CRIM’, ‘ZN’, ‘INDUS’, ‘CHAS’, ‘NOX’, ‘RM’, ‘AGE’,‘DIS’,
‘RAD’, ‘TAX’, ‘PTRATIO’, ‘B’, ‘LSTAT’, ‘MEDV’ ]
feature_num = len(feature_names)
data = data.reshape([data.shape[0] // feature_num, feature_num])

查看数据

x = data[0]
print(x.shape)
print(x)
(14,)
[6.320e-03 1.800e+01 2.310e+00 0.000e+00 5.380e-01 6.575e+00 6.520e+01
4.090e+00 1.000e+00 2.960e+02 1.530e+01 3.969e+02 4.980e+00 2.400e+01]

数据集划分

将数据集划分成训练集和测试集,其中训练集用于确定模型的参数,测试集用于评判模型的效果。为什么要对数据集进行拆分,而不能直接应用于模型训练呢?这与学生时代的授课和考试关系比较类似
ratio = 0.8
offset = int(data.shape[0] * ratio)
training_data = data[:offset]
training_data.shape
(404, 14)

数据归一化处理

对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间。这样做有两个好处:一是模型训练更高效;二是特征前的权重大小可以代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同)。

封装成load data函数

将上述几个数据处理操作封装成load data函数,以便下一步模型的调用


版权声明:本文为weixin_46905672原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。