【keras学习(一)】线性回归模型

本博客现阶段所用的是tensorflow2.0版本,keras已经被集成于其中,所以不同版本的tensorflow可能用法有所不同,但是大同小异。

一、线性回归模型

线性回归大致意思就是根据给出的数据,预测接下来数据的走向,很经典的应用就是预测股票市场之类的,但是注意一般都要求数据呈现线性特征,效果才会好。

二、代码分析

1、导入numpy模块、matplotlib模块、tensorflow中的keras模块

import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras

其中numpy模块是进行数学运算的强大工具,matplotlib是绘图的工具,keras是神经网络搭建的工具

2、建立一个y=0.1 * x + 0.02的100个随机数据点,这些数据点都加了噪声在其中

#使用numpy生成100个随机点
x_data = np.random.random(100)
noise = np.random.normal(0,0.01,x_data.shape)
y_data = x_data*0.1 + 0.2 + noise

其中noise是从均值为0,标准差为0.01的数据中取出的数据,使得y_data更加符合现实环境下的情况

3、定义学习的模型

#使用keras的Sequential函数建立一个顺序模型
model = keras.Sequential()
#在模型中添加一个全连接层
model.add(keras.layers.Dense(units=1,input_dim=1))
#优化方法:sgd(随机梯度下降算法)
#损失函数:mse(均方误差)
model.compile(optimizer='sgd',loss='mse')

使用顺序模型、构建拥有一个节点的全连接层,且输入是一维的

再使用优化算法、损失函数对模型进行优化

4、定义学习模型后,feed数据进去进行学习

for step in range(3001):
    #每次训练一个批次
    cost = model.train_on_batch(x_data,y_data)
    #每500个batch打印一次cost
    if step % 500 == 0:
        print('cost:',cost)
#打印权值和偏置值
W,b = model.layers[0].get_weights()
print('W:',W,'b:',b)

5、最后在图上显示出训练好的模型预测数据,以及原始点

#x_data输入到网络中,得到预测值y_pred
y_pred = model.predict(x_data)

#显示随机点的结果
plt.scatter(x_data,y_data)

#显示预测点的结果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()

plt.plot函数中‘r-’参数是指用红色连线画出预测结果,最终显示的结果如下图所示

 

蓝色的点是生成的随机点,红色的线是数据预测形成的线

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值