一、回归(使用tf.keras训练模型)
1-在Jupyter Notebook环境中运行程序
import tensorflow as tf
import pandas as pd//pandas为数据处理工具
data = pd.read_csv('EEE.csv')//在创建的notebook文件当前目录下创建csv数据文件,并导入。图中CSV文件为自己简单创建。
data//显示数据
import matplotlib.pyplot as plt
%matplotlib inline
plt.scatter(data.ed, data.mm)//绘图
x=data.ed
y=data.mm//定义x轴、y轴数据
model = tf.keras.Sequential()//使用顺序模型sequential
model.add(tf.keras.layers.Dense(1,input_shape=(1,)))//添Dense层-确定输入输出维度为1
model.summary()//查看模型
model.compile(optimizer='adam', //优化方法
loss='mse' //损失函数-均方差
) //编译
history = model.fit(x, y, epochs=5000)//记录训练过程
model.predict(x)
model.predict(pd.Series([20]))//预测
张量依据维数可以分为一维、二维和三维张量,举例分别为[1,2,3] [[1,2,3],[4,5,6]] [[[1,2,3],[4,5,6]], [[7,8,9],[10,11,12]]]
可以理解为向量,矩阵和多页矩阵。
张量的阶数也称为维度,或轴axis。
比如一个矩阵[[1,2],[3,4]],是个二维张量,有两个维度。
沿着第0个轴可以看到 [1,2] [3,4],按行取出,每一行作为一个向量;
沿着第1个轴可以看到[1,3] [2,4] ,按列取出,每一列作为一个向量。
import numpy as np
a = np.array([[1,2],[3,4]])
s0 = np.sum(a, axis=0) #即[1,2],[3,4]相加
s1 = np.sum(a, axis=1) #即[1,3],[2,4]相加
print(s0)
print(s1)
结果显示为:
[4, 6]
[3, 7]
具体见https://blog.csdn.net/bryant_meng/article/details/81347412
输出维度在哪个维度上求和则相应去掉哪个维度。比如3x2x2,在axis=0上求和,则输出2x2.
三、误差计算相关概念
3.1均方差
MSE函数把输出向量和真实向量映射到笛卡尔坐标系两个点,计算欧式距离衡量误差;
3.2交叉熵
信息熵来衡量信息的不确定度,熵越大,不确定性越大