深度学习实战之线性回归

1、线性回归

连续值的预测,目的使模型的预测值逼近于真实值

在这里插入图片描述

在训练模型中,函数参数w,b往往是不可知的,所以需要对其进行求解
在这里插入图片描述

  1. 构造一个loss函数,使得误差函数取得最小值,得到的w’、b’即为模型要求的参数
    在这里插入图片描述
  2. 求loss函数的最小值,通过梯度下降的方法找到函数极小值
    在这里插入图片描述
    2、回归问题实战
    在这里插入图片描述
  • step1代码部分:
import numpy as np
# y = wx + b
def compute_error_for_line_given_points(b, w, points):
    totalError = 0
    for i in range(0, len(points)):
        x = points[i, 0]
        y = points[i, 1]
        # computer mean-squared-error
        totalError += (y - (w * x + b)) ** 2
    # average loss for each point
    return totalError / float(len(points))

在这里插入图片描述

  • step2代码部分:
def step_gradient(b_current, w_current, points, learningRate):
    b_gradient = 0
    w_gradient = 0
    N = float(len(points))
    for i in range(0, len(points)):
        x = points[i, 0]
        y = points[i, 1]
        # grad_b = 2(wx+b-y)
        b_gradient += (2/N) * ((w_current * x + b_current) - y)
        # grad_w = 2(wx+b-y)*x
        w_gradient += (2/N) * x * ((w_current * x + b_current) - y)
    # update w'
    new_b = b_current - (learningRate * b_gradient)
    new_w = w_current - (learningRate * w_gradient)
    return [new_b, new_w]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习在非线性回归预测方面表现得非常出色,下面我将介绍一个基于 TensorFlow 的实战案例。 首先,我们需要准备数据集。假设我们有一组数据集,其中包含 x 和 y 两个变量,我们的目标是通过训练模型来预测 y 值。我们可以使用 Pandas 库读取数据集,并对其进行预处理,例如归一化操作。 接下来,我们需要设计深度学习模型。在这个例子中,我们可以使用一个带有多层隐藏层的神经网络模型。我们可以使用 Tensorflow 来创建模型,并对其进行训练。训练模型的过程中,我们需要定义损失函数和优化器,以便模型可以在训练中不断优化。 最后,我们可以使用训练好的模型来进行预测。我们可以将测试数据集传递给模型,并获得预测结果。我们可以使用 Matplotlib 库来可视化预测结果,并与原始数据进行比较。 下面是一个基于 TensorFlow 的代码示例: ``` import tensorflow as tf import pandas as pd import matplotlib.pyplot as plt # 读取数据 data = pd.read_csv("data.csv") # 归一化 data = (data - data.mean()) / data.std() # 定义模型 model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation="relu", input_shape=(1,)), tf.keras.layers.Dense(64, activation="relu"), tf.keras.layers.Dense(1) ]) # 定义损失函数和优化器 model.compile(loss="mse", optimizer=tf.keras.optimizers.Adam(0.01)) # 训练模型 history = model.fit(data["x"], data["y"], epochs=100) # 可视化训练过程 plt.plot(history.history["loss"]) plt.title("Training Loss") plt.xlabel("Epoch") plt.ylabel("Loss") plt.show() # 预测 test_data = pd.read_csv("test_data.csv") test_data = (test_data - data.mean()) / data.std() predictions = model.predict(test_data["x"]) # 可视化预测结果 plt.scatter(data["x"], data["y"]) plt.plot(test_data["x"], predictions, color="red") plt.title("Predictions") plt.xlabel("x") plt.ylabel("y") plt.show() ``` 这个例子中,我们使用了一个带有两个隐藏层的神经网络模型,并对其进行了 100 次训练。最后,我们对测试数据集进行了预测,并使用 Matplotlib 库可视化了预测结果。 当然,这只是一个简单的例子,实际中可能需要更复杂的模型和更大的数据集来进行训练和预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值