美文网首页深度学习
线性回归实例

线性回归实例

作者: zidea | 来源:发表于2019-09-28 20:15 被阅读0次
mxnet.jpg

线性回归实例

来一个线性回归问题实例,在开始之前我们先明确一些问题,也就是我们要训练模型几个步骤,在李宏毅教授的课程中他提到会分为建立模型(也就是函数集合),然后就是定义损失函数,最后根据损失函数进行优化找到最优的函数。
不过我们对于简单的神经网,个人总结了一点经验,首先是准备好训练和测试数据集,然后处理这些数据以便训练,然后就是定义输入变量,因为都是矩阵和向量乘法,在设计神经网网络时候我们需要考虑结构以及矩阵的维度和矩阵元素类型,这样运算可以顺利进行。然后就是定义损失函数,接下来是定义优化找到让损失函数最小的那个方程也就是我们最优解,然后用最优解方程来测试我们测试数据,来评估我们模型精确度。

准备数据

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

learning_rate = 0.01
epochs = 200

n_samples = 30
train_x = np.linspace(0,20,n_samples)
train_y = 3 * train_x + 4* np.random.rand(n_samples)

plt.plot(train_x,train_y,'o')
plt.show()
train_x_data.png
plt.plot(train_x,train_y,'o')
plt.plot(train_x, 3 * train_x)
plt.show()

创建变量

X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)

W = tf.Variable(np.random.randn,name='weights')
B = tf.Variable(np.random.randn,name='bias')

定义计算图

pred = X * W + B

定义损失函数

然后定义评估函数也就是我们提到损失函数
\frac{1}{2n} \sum_{i}^n(pred(i) -Y_i)^2

cost = tf.reduce_sum((pred - Y) ** 2) / (2 * n_samples)

用计算出估计值(pred) 减去实际值,也就是估计值到真实值的距离然后平方来去掉负数后取均值。

优化

optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

我们优化就是需要让损失函数最小,所以最小化 cost 函数的参数就是最好的参数

训练

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for epoch in range(epochs):
        for x, y in zip(train_x,train_y):
            sess.run(optimizer,feed_dict={X:x,Y:y})
        if not epoch % 20:
            c = sess.run(cost,feed_dict={X:train_x,Y:train_y})
            w = sess.run(W)
            b = sess.run(B)
            print(f'epoch:{epoch:04d} c={c:.4f} w={w:.4f} b={b:.4f}')

设计好我们计算图后,就可以开始进行计算了,我们所有计算图都需要放到

验证结果

    weight = sess.run(W)
    bias = sess.run(B)
    plt.plot(train_x,train_y,'o')
    plt.plot(train_x,weight * train_x + bias)
    plt.show()
train_data.png
epoch:0000 c=78.2851 w=1.8528 b=1.4544
epoch:0020 c=7.5476 w=2.8999 b=1.4118
epoch:0040 c=7.4682 w=2.9079 b=1.2879
epoch:0060 c=7.3967 w=2.9155 b=1.1703
epoch:0080 c=7.3324 w=2.9226 b=1.0587
epoch:0100 c=7.2745 w=2.9295 b=0.9528
epoch:0120 c=7.2224 w=2.9359 b=0.8522
epoch:0140 c=7.1755 w=2.9421 b=0.7568
epoch:0160 c=7.1334 w=2.9479 b=0.6662
epoch:0180 c=7.0954 w=2.9535 b=0.5802

相关文章

  • 线性回归实例

    线性回归实例 来一个线性回归问题实例,在开始之前我们先明确一些问题,也就是我们要训练模型几个步骤,在李宏毅教授的课...

  • 正则化线性回归的方差与偏差(吴恩达课程Octave代码用Pyth

    详细代码参考github 利用正则化线性回归模型来了解偏差和方差的特征 实例:首先根据数据建立线性回归模型,模型能...

  • 正则化线性回归的方差与偏差!

    利用正则化线性回归模型来了解偏差和方差的特征 实例: 首先根据数据建立线性回归模型,模型能够根据水库液位的变化来预...

  • TensorFlow_线性回归实例

    根据胡海曼的教程学习深度学习,第一个是线性回归。全套教程源码也在她的github地址上面 显示结果为:

  • 机器学习线性回归实例

    生成直线数据并加入噪音画图显示 定义模型的输入和输出 定义模型的反向传播 定义损失函数 训练模型

  • 20201017-Tensorflow-2

    Tensorflow 实例 全部基于Tensorflow=1.14.0一个简单的线性回归用于入门。 Placeho...

  • 机器学习实战——回归

    本章内容】 线性回归 局部加权线性回归 岭回归和逐步线性回归 例子 【线性回归】 wHat = (X.T*X).I...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

  • 通俗得说线性回归算法(二)线性回归实战

    前情提要:通俗得说线性回归算法(一)线性回归初步介绍 一.sklearn线性回归详解 1.1 线性回归参数 介绍完...

  • 衍化至繁:逻辑回归

    逻辑回归是对线性回归的改进,用于解决分类问题; 逻辑回归输出的是实例属于每个类别的似然概率,似然概率最大的类别就是...

网友评论

    本文标题:线性回归实例

    本文链接:https://www.haomeiwen.com/subject/xzwtpctx.html