paddlepaddle零基础入门课程笔记--波士顿房价预测任务(一)

1.首先需要读取数据集并进行数据处理
房价预测数据集在paddle paddle api上对应的是UCI Housing数据集
读取之后查看数据的形状,为(7084,)
房价预测数据集的x有13个维度,分别对应可能影响房价的13个因素,结果y为实际房价,共14个维度
所以将数据集reshape成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])

此时数据的形状为:(506, 14)
将数据集划分为训练集training_data和测试集testint_data

2.训练之前需要对数据进行归一化,教学视频中,老师建议归一化到[-0.5,0.5]之间,对应代码为:

# 计算train数据集的最大值,最小值,平均值,此处得到的这些值的形状是(14,)
# maximums是在training_data中x的每一个小因素都找到最值,
# 例如房价影响因素之一是富人比例,则要找富人比例那一列的最大值,
# 作为这个因素的最大值,用axis=0实现
maximums, minimums, avgs = \
                     training_data.max(axis=0), \
                     training_data.min(axis=0), \
     training_data.sum(axis=0) / training_data.shape[0]
# 对数据进行归一化处理
feature_num = 14
for i in range(feature_num):
    # print(maximums[i], minimums[i], avgs[i])
    data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])

并且老师指出,不要归一化到[0,1]之间,一般要让归一化的中心点在0处

归一化的优点与作用:
特征前的权重大小可代表该变量对预测结果的贡献度
使模型训练更高效

对测试数据进行归一化,用的是训练集的最大值和最小值,平均值
原因:要拟合真实世界中的样本,用训练集的数据去拟合真实世界,所以测试集也用训练数据集的max,min,avg

猜你喜欢

转载自blog.csdn.net/qq_43523725/article/details/108328125