TensorFlow入门(一):构建一个线性回归模型
1.环境配置
系统是macOS,Python版本3.6.4,项目所依赖的各种包都是通过Anaconda来配置的,Anaconda的安装与搭建参考 https://www.zhihu.com/question/24289087 即可。
项目所依赖的包主要有tensorflow,matplotlib,pandas,sklearn,numpy等等,这里有些包在你装好Anaconda时就已经存在,通过在终端中输入
conda list
就可以知道已有的python包,要安装本来没有的,只要在终端中输入
conda install tensorflow
就行,这里以tensorflow举例 。
2.模型目标
- 学习基本的 TensorFlow 概念
- 在 TensorFlow 中使用 LinearRegressor 类并基于单个输入特征预测各城市街区的房屋价值中位数
- 使用均方根误差 (RMSE) 评估模型预测的准确率
- 通过调整模型的超参数提高模型准确率
数据基于加利福尼亚州 1990 年的人口普查数据。
参考教程:https://developers.google.cn/machine-learning/crash-course/first-steps-with-tensorflow/programming-exercises
3.参数说明
- steps:指训练迭代的总次数。一步计算一批样本产生的损失,然后使用该值修改模型的权重一次。
- batch size:指单步的样本数量。例如,SGD(随机梯度下降)的批量大小为 1,而小批量SGD的批量大小通常为10到1000之间。
- periods:控制报告的粒度,简单来说就是希望生成“报告”的个数。比如说steps为70,而periods为7,则每10个steps就会生成一次“报告”,所以一共有7个“报告”。
4.代码
通过TensorFlow实现一个线性回归的模型大致分为如下几个步骤:
- 定义特征(feature)并配置特征列
- 定义目标(target)
- 配置线性回归模型
- 定义输入函数
- 训练模型
- 评估模型
直接给出完整代码,注释中对代码都做出了解释。
first_steps_with_tensorflow.py文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from __future__ import print_function
import math
from IPython import display
from matplotlib import cm
from matplotlib import gridspec
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from sklearn import metrics
import tensorflow as tf
from tensorflow.python.data import Dataset
#一些初始化设定
tf.logging.set_verbosity(tf.logging.ERROR)
pd.options.display.max_rows = 10
pd.options.display.float_format = '{:.1f}'.format
#通过pandas从特定网址加载数据集
california_housing_dataframe = pd.read_csv("https://download.mlcc.google.com/mledu-datasets/