【深度学习】使用飞桨paddle实现波士顿房价预测任务

Paddle安装问题以及实现简单的房价预测——飞桨学习笔记 一、paddle安装问题 1.安装 paddle飞桨安装步骤,安装问题,安装说明,使用教程,戳链接:https://www.paddlepaddle.org.cn/install/quick 快速安装方法: PaddlePaddle支持使用pip快速安装, 执行下面的命令完成CPU版本的快速安装: pip install -U paddlepaddle 如需安装GPU版本的PaddlePaddle,执行下面的命令完成GPU版本的快速安装: pip install -U paddlepaddle-gpu 阅读详情

使用飞桨实现波士顿房价预测任务

由于开始学习深度学习,因此每次开始都熟悉一下深度学习模型的基本步骤:
在这里插入图片描述
在之前的学习中,我们学习了使用Python和NumPy实现波士顿房价预测任务的方法,本章我们将尝试使用飞桨paddle重写房价预测任务,体会二者的异同。在数据处理之前,需要先加载飞桨框架的相关类库。

1. 数据处理

数据处理的代码不依赖飞桨框架实现,与使用Python构建房价预测任务的代码相同,因此独立为单独的代码。
在这里插入图片描述

# 导入需要用到的package
import numpy as np
from sklearn.preprocessing import MinMaxScaler


def load_data():
    # 从文件导入数据
    datafile = './work/housing.data'
    data = np.fromfile(datafile, sep=' ')
    # 每条数据包括14项,其中前面13项是影响因素,第14项是相应的房屋价格中位数
    feature_names = [ 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE',
                      'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV' ]
    feature_num = len(feature_names)
    # 将原始数据进行Reshape,变成[N, 14]这样的形状
    data = data.reshape([data.shape[0] // feature_num, feature_num])
    # 将原数据集拆分成训练集和测试集
    # 这里使用80%的数据做训练,20%的数据做测试
    # 测试集和训练集必须是没有交集的
    ratio = 0.8
    offset = int(data.shape[0] * ratio)
    train_data, test_data = data[:offset], data[offset:]
    # # 计算训练集的最大值,最小值
    # maximums, minimums = training_data.max(axis=0), \
    #                         training_data.min(axis=0)
    #
    # # 对数据进行归一化处理
    # for i in range(feature_num):
    #     data[:, i] = (data[:, i] - minimums[i]) / (maximums[i] - minimums[i])
    # 使用训练集计算最大值和最小值
    scaler = MinMaxScaler()
    # 只在训练集上拟合
    scaler.fit(train_data)
    data = scaler.transform(data)
    # 训练集和测试集的划分比例
    train_data = data[:offset]
    test_data = data[offset:]
    return train_data, test_data

在后续的使用通过引用即可

from load_data import load_data
train_data, test_data = load_data()

2.模型设计

模型设计的实质是定义线性回归的网络结构,建议通过创建Python类的方式构建模型,该类需要继承paddle.nn.Layer父类,并且在类中定义init函数和forward函数。forward是飞桨前向计算逻辑的函数,在调用模型实例时会自动执行,其使用的网络层需要在init中声明。

init函数:在类的初始化函数中声明每一层网络的实现函数。在房价预测任务中,只需要定义一层全连接层。
forward函数:在构建神经网络时实现前向计算过程,并返回预测结果,在本任务中返回的是房价预测结果。

#加载飞桨、NumPy和相关类库
import paddle
from paddle.nn import Linear
import paddle.nn.functional as F
import numpy as np
import os
import random
from load_data import load_data


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

3.训练配置

  • 声明定义好的回归模型实例为Regressor,并将模型的状态设置为train。
  • 使用load_data函数加载训练数据和测试数据。
  • 设置优化算法和学习率,优化算法采用随机梯度下降,学习率设置为0.01。

训练配置的代码实现如下:

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

4.训练过程

由于model.train()已经被Regressor用来设置模型的状态,因此新增了一个train_model来作为训练过程方法。

    def train_model(self, train_data, num_epochs, batch_size=10, eta=0.01):
        # 定义模型训练轮次epoch(外层循环)
        for epoch_id in range(num_epochs):
            # 在每轮迭代开始之前,对训练集数据进行样本乱序
            np.random.shuffle(train_data)
            # 对训练集数据进行拆分,batch_size设置为10
            mini_batches = [train_data[k:k + batch_size] for k in range(0, len(train_data), batch_size)]
            # 定义模型训练(内层循环)
            for iter_id, mini_batch in enumerate(mini_batches):
                x = np.array(mini_batch[:, :-1])  # 将当前批的房价影响因素的数据转换为np.array格式
                y = np.array(mini_batch[:, -1:])  # 将当前批的标签数据(真实房价)转换为np.array格式
                # 将np.array格式的数据转为张量tensor格式
                house_features = paddle.to_tensor(x, dtype='float32')
                prices = paddle.to_tensor(y, dtype='float32')

                # 前向计算
                predicts = model(house_features)

                # 计算损失,损失函数采用平方误差square_error_cost
                loss = F.square_error_cost(predicts, label=prices)
                avg_loss = paddle.mean(loss)
                if iter_id % 20 == 0:
                    print("epoch: {}, iter: {}, loss is: {}".format(epoch_id, iter_id, avg_loss.numpy()))

                # 反向传播,计算每层参数的梯度值
                avg_loss.backward()
                # 更新参数,根据设置好的学习率迭代一步
                opt.step()
                # 清空梯度变量,进行下一轮计算
                opt.clear_grad()

5.numpy和python构建深度学习模型和飞桨的比较

5.1 前向计算forward

	# paddle
    def forward(self, inputs):
        x = self.fc(inputs)
        return x
    # numpy+python
    def forward(self, x):
      z = np.dot(x, self.w) + self.b
      return z

在Python310\Lib\site-packages\paddle\nn\functional\common.py路径下,可以看到paddle底层封装的方法和numpy+python是一致的
在这里插入图片描述

5.2.计算损失函数 loss

	import paddle.nn.functional as F
	# 计算损失,损失函数采用平方误差square_error_cost
    loss = F.square_error_cost(predicts, label=prices)
    avg_loss = paddle.mean(loss)

    def loss(self, z, y):
        error = z - y
        num_samples = error.shape[0]
        cost = error * error
        cost = np.sum(cost) / num_samples
        return cost

在Python310\Lib\site-packages\paddle\nn\functional\loss.py路径下,可以看到paddle封装了均方误差square_error_cost的方法,该方法中并没有/N,因此还计算了avg_loss = paddle.mean(loss)
在这里插入图片描述

5.3.梯度计算gradient

# paddle
	# 定义优化算法,采用随机梯度下降SGD
    # 学习率设置为0.01
    opt = paddle.optimizer.SGD(learning_rate=0.005, parameters=model.parameters())
	# 反向传播,计算每层参数的梯度值
	avg_loss.backward()
	# 更新参数,根据设置好的学习率迭代一步
	opt.step()
	# 清空梯度变量,进行下一轮计算
	opt.clear_grad()

# numpy + python
    def gradient(self, x, y):
        z = self.forward(x)
        N = x.shape[0]
        gradient_w = 1. / N * np.sum((z - y) * x, axis=0)
        gradient_w = gradient_w[:, np.newaxis]
        gradient_b = 1. / N * np.sum(z - y)
        return gradient_w, gradient_b

    def update(self, gradient_w, gradient_b, eta=0.01):
        self.w = self.w - eta * gradient_w
        self.b = self.b - eta * gradient_b

6.模型保存和推理

6.1.模型保存

# 保存模型参数,文件名为LR_model.pdparams
paddle.save(model.state_dict(), 'LR_model.pdparams')
print("模型保存成功, 模型参数保存在LR_model.pdparams中")

在这里插入图片描述

6.2.模型推理

需要注意的是在模型推理后,需要做反向的归一化处理,这里会用到max_values, min_values,这里的最大最小值是用训练数据在归一化之前获取的,为了避免重新load data,因此在返回数据时,将这两个数据一并返回。

#加载飞桨、NumPy和相关类库
import paddle
import numpy as np
from load_data import load_data
from train_paddle import Regressor
train_data, test_data, max_values, min_values = load_data()


def load_one_example():
    # 从测试集中随机选择一条作为推理数据
    # 从测试集中随机选择一条作为推理数据
    idx = np.random.randint(0, test_data.shape[0])
    idx = -10
    one_data, label = test_data[idx, :-1], test_data[idx, -1]
    # 将数据格式修改为[1,13]
    one_data = one_data.reshape([1, -1])

    return one_data, label


if __name__ == '__main__':
    # 将模型参数保存到指定路径中
    model_dict = paddle.load('LR_model.pdparams')
    model = Regressor()
    model.load_dict(model_dict)
    # 将模型状态修改为.eval
    model.eval()

    one_data, label = load_one_example()
    # 将数据格式转换为张量
    one_data = paddle.to_tensor(one_data,dtype="float32")
    predict = model(one_data)

    # 对推理结果进行后处理
    print(predict.numpy(), max_values[-1], min_values[-1])
    predict = predict * (max_values[-1] - min_values[-1]) + min_values[-1]
    # 对label数据进行后处理
    label = label * (max_values[-1] - min_values[-1]) + min_values[-1]

    print("Inference result is {}, the corresponding label is {}".format(predict.numpy(), label))

在这里插入图片描述
这里的label是原始数据,predict是预测数据。

6.3 用plt绘制test_data曲线图

	N = y.shape[0]  # 数据点的数量
    # 由于 x 在这个例子中是为了生成 y 而存在的,并且我们实际上不会用它来绘图(因为我们只有 y 和 predict),
    # 我们可以简单地使用 range(N) 来作为 x 轴的索引,但这在绘制曲线图时通常不是必需的,因为 Matplotlib 会自动处理。
    # 然而,为了演示目的,我们将创建一个与 y 和 predict 相同长度的 x_index 数组。
    x_index = np.arange(N)
    # 绘制原始数据 y
    plt.plot(x_index, y.flatten(), color='blue', label='Original Data (y)', alpha=0.6, linewidth=1)
    # 绘制预测数据 predict
    plt.plot(x_index, predict.numpy().flatten(), color='red', label='Predicted Data (predict)', linewidth=2)
    # 添加标题和标签(注意:这里我们没有使用实际的 x 值作为横轴标签,因为只有 y 和 predict)
    plt.title('Comparison of Original Data and Predicted Data')
    plt.xlabel('Index')  # 或者你可以使用 'Sample Number'、'Data Point' 等标签
    plt.ylabel('Value')
    plt.legend()

    # 显示图表
    plt.grid(True)
    plt.show()

可以看到,整体预测得并不是很好。
在这里插入图片描述

7 使用飞桨高层API实现波士顿房价预测任务

如上代码使用飞桨的基础API完成了波士顿房价预测任务,是否有更加快捷地实现方法呢?答案是肯定的。下面使用飞桨高层API实现波士顿房价预测任务,代码实现如下:

#加载飞桨、NumPy和相关类库
import paddle
from paddle.nn import Linear
paddle.set_default_dtype("float32")
import paddle.nn.functional as F
import numpy as np
import matplotlib.pyplot as plt

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

if __name__ == '__main__':
    # 使用飞桨高层API加载波士顿房价预测数据集,包括训练集和测试集
    # paddle.text:用于加载文本领域数据集。
    train_dataset = paddle.text.datasets.UCIHousing(mode='train')
    eval_dataset = paddle.text.datasets.UCIHousing(mode='test')
    # 模型训练
    model = paddle.Model(Regressor())
    # model.prepare:用于定义模型训练参数,如优化器paddle.optimizer.SGD、损失函数paddle.nn.MSELoss等。
    model.prepare(paddle.optimizer.SGD(learning_rate=0.005, parameters=model.parameters()),
                  paddle.nn.MSELoss())
    # model.fit:用于模型训练,并指定相关参数,如训练轮次epochs,批大小batch_size,可视化的模型方式verbose。
    model.fit(train_dataset, eval_dataset, epochs=10, batch_size=10, verbose=1)
    # model.evaluate:用于在测试集上评估模型的损失函数值和评价指标。由于本实践没有定义模型评价指标,因此只输出损失函数值。本实践使用均方误差损失(Mean Squared Error,MSE)。
    result = model.evaluate(eval_dataset, batch_size=10)
    print("result:", result)
    test_data = eval_dataset.data
    x = test_data[:, :-1]  # 所有行,列从第 0 列到倒数第 2 列
    # 提取最后一列作为 Y
    y = test_data[:, -1].reshape([-1, 1])
    # model.predict:用于模型推理。
    x = paddle.to_tensor(x, dtype="float32")
    result_pred = model.predict(x, batch_size=1) # result_pred是一个list,元素数目对应模型的输出数目
    result_pred = result_pred[0] # tuple,其中第一个值是array
    predict = np.vstack(result_pred)
    # y = y * (max_values[-1] - min_values[-1]) + min_values[-1]
    print("Inference result is {}, the corresponding label is {}".format(predict, y))

    N = y.shape[0]  # 数据点的数量
    # 由于 x 在这个例子中是为了生成 y 而存在的,并且我们实际上不会用它来绘图(因为我们只有 y 和 predict),
    # 我们可以简单地使用 range(N) 来作为 x 轴的索引,但这在绘制曲线图时通常不是必需的,因为 Matplotlib 会自动处理。
    # 然而,为了演示目的,我们将创建一个与 y 和 predict 相同长度的 x_index 数组。
    x_index = np.arange(N)
    # 绘制原始数据 y
    plt.plot(x_index, y.flatten(), color='blue', label='Original Data (y)', alpha=0.6, linewidth=1)
    # 绘制预测数据 predict
    plt.plot(x_index, predict.flatten(), color='red', label='Predicted Data (predict)', linewidth=2)
    # 添加标题和标签(注意:这里我们没有使用实际的 x 值作为横轴标签,因为只有 y 和 predict)
    plt.title('Comparison of Original Data and Predicted Data')
    plt.xlabel('Index')  # 或者你可以使用 'Sample Number'、'Data Point' 等标签
    plt.ylabel('Value')
    plt.legend()

    # 显示图表
    plt.grid(True)
    plt.show()

在这里插入图片描述

学习总结

1、numpy+python和paddle训练过程是相同的,paddle对前向计算、计算损失和反向传播梯度进行了封装,不再需要逐一编写代码,这就是使用飞桨框架的威力!但是通过numpy+python比较容易理解深度学习的过程。
2、模型推理时,需要将测试数据转换为张量x = paddle.to_tensor(x, dtype=“float32”)
3、将一行数据的x,y分离出来的代码

x = test_data[:, :-1]
y = test_data[:, -1].reshape([-1, 1])
如果只需要分离部分记录:
x = test_data[0:3][:, :-1]
y = test_data[0:3][:, -1].reshape([-1, 1])
# 这是Numpy库的广播功能

4、用plt绘制曲线图时,需要用到y和predict,其中y的shap是(N,1),需要用y.flatten()降维到(N,)。predict还是张量,需要用predict.numpy()先转换为numpy格式,再通过flatten()降维。
5、使用飞桨高层API加载波士顿房价预测数据集是下载下来的,也可以指定数据集路径。
6、目前还没有定义模型评价指标,后续再学习

使用飞桨 Paddle深度学习 这个例子中,我们首先加载了波士顿房价数据集,然后定义了一个简单的线性回归模型,并使用Adam优化器进行训练。在训练完成后,我们使用测试集对模型进行评估,并输出准确率。 阅读详情

相关推荐

飞桨 百度架构师手把手带你零基础实践深度学习21天 学习笔记——使用飞桨重写波士顿房价预测模型

使用飞桨书写模型的时候,流程与前面介绍的是一摸一样的。 下面开始总结一下如何使用飞桨写模型 加载飞桨库 主库:paddle/fluid 动态图类库:digraph(便于调试) 静态图模式(声明式编程范式,类比C++) 动态图模式 (命令式编程范式,类比Python) 先编译后执行的方式。用户需预先定义完整的网络结构,再对网络结构进行编译优化后,才能执行获得计算结果。 解析式的执行方式。用户无需预先定义完整的网络结构,每写一行网络代码,即可同时获得计算结果。 全连接层:Linear(可激活

weixin_49887018的博客 686

深度学习实验三:波士顿房价预测任务

使用Python、NumPy、百度飞桨实现波士顿房价预测任务

Moonee_ 4398

【AI学习指南】六、深度学习框架-PaddlePaddle房价预测

PaddlePaddle提供了读取Conll05st,Imdb,Imikolov,Movielens,UCIHousing,WMT14,WMT16等数据集训练集和测试集的接口。这里使用UCI Housing,UCI Housing是一个波士顿房价数据集,共506行,每行14列。通过绘制损失值变化趋势图,可以直观地观察到模型的训练效果和泛化能力。这段代码的目的是通过神经网络对数据进行训练,并保存训练好的模型参数。同时,通过绘制训练和测试过程中的损失值变化趋势,可以观察模型的训练效果。

瑶山的博客 619

使用飞桨实现的第一个AI项目——波士顿的房价预测

人工智能的第一个项目:线性预测模型

xiao_ZHEDA的博客 1224

FreeModbus从入门到实战:手把手教你用STM32实现工业级Modbus RTU通信

本文详细介绍了如何使用STM32和FreeModbus实现工业级Modbus RTU通信,涵盖硬件搭建、协议栈移植及优化技巧。重点解析了FreeModbus的移植过程,包括串口驱动适配、定时器配置和工业级稳定性优化,为开发者提供了一套完整的工业通信解决方案。

weixin_33737774的博客 348

避坑指南:解决‘Logical volume contains a filesystem in use’错误,顺利完成LVM根目录扩容

本文详细解析了Linux系统中LVM根目录扩容时遇到的‘Logical volume contains a filesystem in use’错误,提供了从错误诊断到实战解决方案的完整指南。通过动态扩容技术、单用户模式操作和LVM快照等方案,帮助管理员顺利完成根目录扩容,避免数据丢失和系统崩溃。

weixin_28702105的博客 227

飞桨深度学习零基础入门(一)——使用飞桨(Paddle)单层神经网络预测波士顿房价

运用飞桨框架快速搭建单层深度学习框架

艾醒的博客 4029

Android架构中UseCase的设计原则与实战解析

本文深入解析Android架构中UseCase的设计原则与实战应用,探讨其在Domain Layer中的核心作用。通过对比ViewModel的臃肿问题,详细阐述UseCase的无状态原则、单一职责边界等设计铁律,并提供多种实现方式的代码示例,帮助开发者构建更清晰、高效的Android应用架构。

weixin_28432777的博客 431

paddlepaddle深度学习笔记(二)使用飞桨重写房价预测任务

学习了使用Python和NumPy实现波士顿房价预测任务的方法,本章将尝试使用飞桨重写房价预测任务,体会二者的异同。

m0_61654049的博客 376

Linux音频处理实战:从MP3解码到ALSA播放的完整流程解析

本文详细解析了Linux环境下从MP3文件解码到通过ALSA播放音频的完整实战流程。文章深入剖析了MP3文件结构、PCM原始音频数据格式,并提供了使用ffmpeg/mpg123解码、以及利用ALSA库进行C语言编程播放的实用代码示例,帮助开发者彻底掌握Linux音频处理的核心链路。

weixin_29206669的博客 72

不止于ACC:用CarSim的‘Multiple Objects’和路径跟踪器玩转复杂交通流场景

本文深入探讨了如何利用CarSim的'Multiple Objects'模块和路径跟踪器模拟复杂交通流场景,超越传统ACC测试的局限。通过批量控制、动态交互和参数化设计,实现多车智能响应和复杂轨迹模拟,适用于连续变道、拥堵博弈、匝道汇流等真实交通场景。

weixin_30954265的博客 497

深度学习实践(2)---波士顿房价预测paddle实现

深度学习实践(2)—波士顿房价预测paddle实现 程序实现步骤:数据处理、模型设计、训练配置、训练过程、模型保存、预测功能 # 1.导入相关库 # 加载飞桨、Numpy和相关类库 import paddle from paddle.nn import Linear import paddle.nn.functional as F import numpy as np import os import random # 2.数据处理 def load_data(): # 从文件导入数据 d

weixin_43848436的博客 636

orangepi香橙派用户名及密码修改和VNC远程登陆

1、修改 /etc/passwd用户信息文件 vim /etc/passwd #admin❌503:501::/home/admin:/bin/bash #把用户名admin改成rest #test❌503:501::/home/test:/bin/bash 2、修改 /etc/shadow用户密码文件 vim /etc/shadow #admin:Dnakfw28zf38w:8764:0:168:7::: #由于密码加密方式存放,只修改用户名即可(密码不变) #test:Dnakfw28zf38w:876

weixin_40227845的博客 5660

【Paddle官网课程学习】第一章:零基础入门深度学习(下)【4. 飞桨产业级深度学习开源开放平台介绍,5. 使用飞桨重写波士顿房价预测任务,附录:NumPy介绍】

1

py今天刷题了吗 448

Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现

既然涉及到视频输入,就会有很多与 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。 内核中已经为我们提供了这个控制类型的,我们只需要明确自己需要添加什么控制类型,然后将其添加进内核中即可。该部分摄像头代码一半厂家会提供驱动或者相对应的参数,否则没有图像处理知识很难开发出来。 返回总目录...

DSMGUOGUO的博客 1435

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4155

PaddlePaddle实战系列1——波士顿房价预测

参考的项目是官方的一个入门项目:波士顿房价预测 首先点击上面网址,fork该项目。 输入项目名称和项目描述后,创建该项目。 然后就会来到这个页面。点击运行。 现在Baidu AI Studio,创建项目并运行,即赠送12小时GPU算力,非常给力。 选择高级版,确定。等待项目运行。 进入项目。就可以开始愉快地学习了。 其实原文档讲解得也很详细,但是有很多接口没有给出说明,我尽力帮助大家说明...

CJ-的博客 5813

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用Paddle飞桨重写波士顿房价预测案例

当读者使用飞桨框架编写多个深度学习模型后,会发现程序呈现出“八股文”的形态。即不同的程序员、使用不同模型、解决不同任务的时候,他们编写的建模程序是极其相似的。虽然这些设计在某些“极客”的眼里缺乏精彩,但从实用性的角度,我们更期望建模者聚焦需要解决的任务,而不是将精力投入在框架的学习上。因此使用飞桨编写模型是有标准的套路设计的,只要通过一个示例程序掌握使用飞桨的方法,编写不同任务的多种建模程序将变得十分容易。

ai领域探索者,欢迎一起交流,目前从事具身智能行业。 1362

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

重写波士顿房价预测任务(使用飞桨paddlepaddle)

波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价。房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题,选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题。本文探讨了使用飞桨框架+多元线性回归,解决波士顿房价预测问题。...

baidu的专栏 1437

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测

使用Paddle实现随机梯度下降(SGD)算法对波士顿房价数据进行线性回归的训练,给出每次迭代的权重、损失和梯度,并进行房价预测值与真实房价值对比。使用Paddle实现随机梯度下降(SGD)算法对波士顿房价数据进行线性回归的训练,给出每次迭代的权重、损失和梯度,并进行房价预测值与真实房价值对比。1、导入必要的库和模块:PaddlePaddle深度学习框架、numpy、os等常用的包和库。将得到的预测结果和真实标签值进行比较,并输出预测房价的结果和真实房价结果。在训练结束后,保存训练好的模型参数到文件中。

专注 AI、大数据、Python、爬虫、数据分析可视化、机器学习、推荐算法、知识图谱、大模型应用与全栈系统开发,长期沉淀真实项目案例、源码解析、系统设计、部署经验与工程化实践,分享可运行、可复用、可落地的技术方案。 2063

paddle实现波士顿房价预测任务

飞桨框架2.0及之后的版本,默认使用动态图模式进行编码,同时提供了完备的动转静支持,开发者仅需添加一个装饰器( to_static ),飞桨会自动将动态图的程序转换为静态图的program,并使用该program训练并可保存静态模型以实现推理部署。的网络结构,飞桨建议通过创建Python类的方式完成模型网络的定义,该类需要继承paddle.nn.Layer父类,并且在类中定义。将模型当前的参数数据 model.state_dict() 保存到文件中,用于模型预测或校验的程序调用。模型定义的实质是定义。

March_A的博客 1514

PaddlePaddle一步一步预测波士顿房价

PaddlePaddle一步一步预测波士顿房价 如何开始 针对PaddlePaddle新手入门的阅读顺序,本人建议先阅读Fluid编程指南,然后再看快速入门,在针对上一篇搭建简单网络之后,本次为大家解读一下快速入门-线性回归,个人感觉目录的名有点问题,线性回归应该改为房价预测,才能与数字识别对应上,哈哈。 现实问题 房价是大家都关心的事情,但是房价由哪些因素决定,在已知一些因素之后房价大概是多少?...

zhuziying99的专栏 1379

paddlepaddle框架——波士顿房价预测模型(附原始数据)

波士顿房价预测模型——梯度下降法 import matplotlib.pyplot as plt import numpy as np import pandas as pd np.set_printoptions(threshold=np.inf) # 解决显示不完全问题 plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False def load_data():

weixin_50616227的博客 3366

PaddlePaddle入门学习——波士顿房价预测模型

PaddlePaddle基础命令 PaddlePaddle是百度开源的深度学习框架,类似的深度学习框架还有谷歌的Tensorflow、Facebook的Pytorch等,在入门深度学习时,学会并使用一门常见的框架,可以让学习效率大大提升。在PaddlePaddle中,计算的对象是张量,我们可以先使用PaddlePaddle来计算一个[[1, 1], [1, 1]] * [[1, 1], [1, 1]]。 计算常量的加法:1+1 首先导入PaddlePaddle库 import paddle.fluid as

xuesuoziluoshu的博客 1134

【新手入门】课程3-Paddle入门-波士顿房价预测

经典的线性回归模型主要用来预测一些存在着线性关系的数据集。回归模型可以理解为:存在一个点集,用一条曲线去拟合它分布的过程。如果拟合曲线是一条直线,则称为线性回归。如果是一条二次曲线,则被称为二次回归。线性回归是回归模型中最简单的一种。 本教程使用PaddlePaddle建立起一个房价预测模型。 在线性回归中: (1)假设函数是指,用数学的方法描述自变量和因变量之间的关系,它们之间可以是一个线...

PaddlePaddle 1820

【飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习】day01 -- 基础知识储备

本文基于飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习课程,仅供学习交流使用 文章目录1.机器学习和深度学习综述人工智能,机器学习,深度学习之间的关系机器学习机器实现学习的本质深度学习深度学习的历史深度学习发展2.波士顿房价预测模型整体流程数据处理模型设计损失函数训练配置训练过程梯度下降的代码实现随机梯度下降代码实现运行结果3.参考 1.机器学习和深度学习综述 人工智能,机器学习,深度学习之间的关系 机器学习 重点讲解模型的三个部分 假设 评价 优化 机器实现学习的本.

Freedom_Blue的博客 2453
上一篇: 【深度学习】基于线性回归实现波士顿房价预测任务
下一篇: 【深度学习】使用其他深度学习框架(TensorFlow、PyTorch)实现波士顿房价预测任务
tnodoo
博客等级 码龄7年 459粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值