在上篇深度学习框架Keras的教程中,我们详细的介绍了Keras中的Sequential和Functional API。也使用Keras的Sequential实现了手写字体的识别。这次的推文中我们继续来看看Keras的简单使用。因为简单,所以这次我们的教程主要是使用Keras来实现机器学习中重要的算法-线性和非线性回归算法。
一、线性回归
线性回归是机器学习领域中常见的算法,该算法试图学习到一个线性模型以尽可能精确的预测出有关输入X的输入Y,或者说精确的建立自变量和观测变量之间的映射关系。好比我们初中阶段学习的:y=kx+b。
二、Keras实现线性回归算法
简单的介绍了线性回归的概念之后我们就来实现这个算法了,不懂线性回归模型的小伙伴自己先补充一些机器学习的知识哈。
这里先复习一下使用Keras中Sequential模型来实现一个构建神经网络模型的步骤:
- 导入模块并生成数据
- 建立深度学习模型
- 激活模型
- 进行模型的训练
- 进行模型验证
2.1 先导入相应的模块
import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import Dense
代码解释:
(1)第一行代码导入numpy,此模块用来产生训练数据集和测试数据集
(2)第二行代码导入画图的模块
(3)第三行代码导入keras中的Sequential API。
(4)第四行代码导入keras中的全连接层(密集层)
2.2 构建数据集
X_data = np.random.rand(200)
noise = np.random.normal(loc=0,scale=0.09,size=X_data.shape)
Y_data = 2*X_data + noise
X_train, Y_train = X_data[:160], Y_data[:160] # 前160组数据为训练数据集
X_test, Y_test = X_data[160:], Y_data[160:] # 后40组数据为测试数据集
plt.scatter(X_data,