上一篇使用tensorflow实现了简单的线性回归,这次在简单的线性回归基础上,通过在权重和占位符声明中
修改来对相同的数据进行多元线性回归。
同样以波士顿房价数据为例
波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/boston处获取。
多元线性回归具体实现步骤
1:导入需要的所有软件包
2:因各特征的数据范围不同,需要归一化特征数据,为此定义一个归一化函数
定义一个append_bias_reshape()函数,来将固定输入值和偏置结合起来
3:加载数据集,并划分为X_train,Y_train。注意X_train包含所需要的特征,可以选择在这里对数据
进行归一化处理。也可以添加偏置并对网络数据重构
4:为训练数据声明Tensorflow占位符,观测占位符X的形状变化
5:为权重和偏置创建Tensorflow变量。通过随机数初始化权重
6:定义要用于预测的线性回归模型,这个实例需要矩阵乘法来完成这个任务
7:定义损失函数
8:选择正确的优化器
9:定义初始化操作符
10:开始计算图
11绘制损失函数
12利用从模型学到的系数来预测房价
具体代码如下:
#1:导入所需要的软件包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
tf.compat.v1.disable_eager_execution()
'''
使用Tensorflow实现多元线性回归
'''
#2:因为各特征的数据范围不同,需要归一化特征数据。为此定义一个归一化函数
#另外,这里添加一个额外的固定输入值将权重和偏置结合起来。
#为此定义函数append_bias_reshape()。该技巧可简化编程
def normalize(X):
'''归一化数组 X'''
'''
np.mean:计算均值
np.std:计算标准差
'''
mean = np.mean(X)
std = np.std(X)
X = (X-mean)/std
return X
def append_bias_reshape(features