paddlepaddle零基础入门深度学习系列之——波士顿房价预测

前言

  本人在此前是从未学习过深度学习相关内容的,只是对其听说的比较多,本系列文章是为了记录本人的学习历程,希望对其他想学习深度学习又没有经验的同学有所帮助。

  基于百度的飞桨工具对波士顿房价进行预测的步骤如下所示:
在这里插入图片描述
波士顿房价的数据则是由这位无私奉献的程序员贡献,博文地址

在正式开始之前需要先按照官方网站的安装教程安装飞桨

数据处理

  1. 第一步:读取数据,这里由于使用的从其他地方下载的csv文件数据,所以与官网的处理稍微不一样。
    #从文件导入数据
    datafile = 'D:\\git_python\\boston_housing_data.csv'
    #每条数据包括14项,其中前面13项是影响因素,第14项是相应的房屋价格中位数
    feature_names = [ 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', \
                      'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV' ]
    feature_num = len(feature_names)
    #读取数据
    result = []
    with codecs.open(datafile, encoding='utf-8-sig') as f:
        for row in csv.DictReader(f, skipinitialspace=True):
            da = []
            for title in feature_names:
                da.append(float(row[title]))
            result.append(da)
    data = np.array(result)
  1. 第二步:将原数据集拆分成训练集和测试集
	ratio = 0.8
    offset = int(data.shape[0] * ratio)
    training_data = data[:offset]
  1. 第三步:对数据进行归一化处理
# 计算训练集的最大值,最小值,平均值
maximums, minimums, avgs = training_data.max(axis=0), training_data.min(axis=0), \
                                 training_data.sum(axis=0) / training_data.shape[0]
# 对数据进行归一化处理
    for i in range(feature_num):
        #print(maximums[i], minimums[i], avgs[i])
        data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])

    # 训练集和测试集的划分比例
    training_data = data[:offset]
    test_data = data[offset:]

模型设计

定义线性回归的网络结构。此处我没看到为啥要用线性回归网络结构,希望有懂的朋友说明一下。

class Regressor(paddle.nn.Layer):

    # self代表类的实例自身
    def __init__(self):
        # 初始化父类中的一些参数
        super(Regressor, self).__init__()
        
        # 定义一层全连接层,输入维度是13,输出维度是1
        self.fc = Linear(in_features=13, out_features=1)
    
    # 网络的前向计算
    def forward(self, inputs):
        x = self.fc(inputs)
        return x

训练配置

设置训练参数

# 声明定义好的线性回归模型
model = Regressor()
# 开启模型训练模式
model.train()
# 加载数据
training_data, test_data = load_data()
# 定义优化算法,使用随机梯度下降SGD
# 学习率设置为0.01
opt = paddle.optimizer.SGD(learning_rate=0.01, parameters=model.parameters())

训练过程

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

模型保存

在这里插入图片描述

测试模型

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值