【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle

【深度学习 招式篇—TF篇】 GD迭代损失函数最小化 TF巧解Boston房价可视化(第一章)

  • 单变量线性回归问题
    • 1.波士顿房价数据集
      • tensorflow2.0+keras实现
      • PaddlePaddle实现

单变量线性回归问题

1.波士顿房价数据集

波士顿房价数据集(Boston House Price Dataset),是数据科学里最典型的线性回归问题。

使用sklearn.datasets.load_boston即可加载相关数据。
该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量’feature_names’和1个输出变量’target’。

数据集 内容
’feature_names’ ’feature_names’: array([‘CRIM’, ‘ZN’, ‘INDUS’, ‘CHAS’, ‘NOX’, ‘RM’, ‘AGE’, ‘DIS’, ‘RAD’,‘TAX’, ‘PTRATIO’, ‘B’, ‘LSTAT’], dtype=’),
CRIM 城镇人均犯罪率
ZN 占地面积超过25,000平方英尺的住宅用地比例。
INDUS 每个城镇非零售业务的比例。
CHAS Charles River虚拟变量(如果是河道,则为1;否则为0)
NOX 一氧化氮浓度(每千万份)
RM 每间住宅的平均房间数
AGE 1940年以前建造的自住单位比例
DIS 加权距离波士顿的五个就业中心
RAD 径向高速公路的可达性指数
TAX 每10,000美元的全额物业税率
PTRATIO 城镇的学生与教师比例
B 1000(Bk - 0.63)^ 2,其中Bk是城镇黑人的比例
LSTAT 人口状况下降%
’target’ ’target’: array([24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15. ,18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5, 20.2, 18.2, 13.6, 19.6,15.2, 14.5, 15.6, 13.9, 16.6, 14.8, 18.4, 21. , 12.7, 14.5, 13.2…])
MEDV 住房的中位数报价, 单位1000美元

tensorflow2.0+keras实现

  1. 加载数据集
from sklearn.datasets import load_boston
Boston = load_boston()
Boston     # 显示一下Boston数据集到底有什么

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第1张图片
可以看到这个数据集的自变量和应变量是分开的。一个是‘feature_name’代表影响房价的自变量信息,另一个‘target’则是因变量房屋的价格。

  1. 把数据集(自变量)做成表格方便查看
import pandas as pd
TB = pd.DataFrame(data=Boston.data,columns=Boston.feature_names)
TB.head()
  1. 把房屋价格信息(因变量)加进来
TB['MEDV']=Boston.target # 把房价加进来
TB.head()

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第2张图片
4. 看一看低收入数量和房价预测关系

import seaborn as sns
sns.scatterplot(TB.LSTAT,TB.MEDV)

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第3张图片
5. Bulid Simple Linear Regression by Keras,建立一个顺序模型

import tensorflow as tf
from tensorflow import keras # 这样就可以不用tf.keras,直接用keras就可以

LR = tf.keras.Sequential(name='Linear Regression')    # 建立一个顺序模型
LR.add(tf.keras.layers.Dense(1,input_shape=(1,)))
LR.summary()    # 网络的信息,模型名称、层、参数(eg.w&b)、可训练的参数
  1. 绘制一个图,用keras对模型进行可视化
keras.utils.plot_model(LR)  # 绘制一个图,用keras对模型进行可视化

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第4张图片
可以看出来,只有两个参数,其中可以通过迭代改变的有两个,也就是我们的weight(权重)和bias(偏置)。

  1. 训练模型
    使用均方差作为成本模型(loss,损失函数),即预测值与真实值之间差的平方取均值。epochs参数代表把所有数据训练500遍。
# 最优化的方式是什么?Adam(0.01)是优化算法;losses损失函数是均方差。
LR.compile(keras.optimizers.Adam(0.01),loss=keras.losses.MeanSquaredError())
LR.fit(TB.LSTAT,TB.MEDV,epochs=1000)

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第5张图片
8. 预测曲线(Prediction)

myPre = LR.predict(TB.LSTAT)

sns.scatterplot(TB.LSTAT,TB.MEDV)
sns.lineplot(TB.LSTAT,myPre[:,0],color='red')

【深度学习 招式篇】Chap.1 波士顿房价预测—单变量线性回归问题—tensorflow2.0+keras & paddlepaddle_第6张图片

PaddlePaddle实现

你可能感兴趣的:(#,【深度学习,功法篇】【框架&模型】,深度学习,机器学习,python,人工智能,tensorflow)