以下代码均在jupyter notebook内实现
(1)引包
import pandas as pd
import tensorflow as tf
from matplotlib import pyplot as plt
%matplotlib inline # 魔法函数
(2)使用pandas库导入数据
data = pd.read_csv('F://JupyterWorkSpace//data//Test.csv')
(3)查看导入的数据(简单的测试数据)注:导入魔法函数后,使用data就可以直接输出,省去了print的操作
data
(4)使用matplotlib的散点图查看数据(接近线性相关)
plt.scatter(data.edu, data.money)
(5)构造出 f(x) = ax + b 即求出参数a, b
x = data.edu
y = data.money
(6)初始化顺序模型(注:顺序模型Sequential 有输入,有输出,按照顺序搭建)
model = tf.keras.Sequential()
(7)建立模型(Dense建立了 f(x) = ax + b 的模型,Dense(输出数据的维度,输入数据的维度)input_shape为元组,有逗号
model.add(tf.keras.layers.Dense(1, input_shape=(1, )))
(8)编译模型,【optimizer=‘adam’,优化器:梯度下降法优化】 【loss=‘mse’, 损失函数:使用均方差判断误差】
model.compile(optimizer='adam', loss='mse')
(9)训练模型(loss最后损失值为0.0684)
log = model.fit(x, y, epochs=1000)
(10)查看预测值现有的x进行预测(即 money), 已经很接近已知的money值了
model.predict(x)
(11)预测一个未知的edu对应的money值,edu为20时,预测money值为23.9033
model.predict(pd.Series([20])