之前的两个tensorflow的案例都是分类问题,现在我们来讲回归问题,之前的分类问题都是返回离散值,回归问题返回的是连续值.
一.下载波士顿房价的数据集
代码如下:
import tensorflow as tf
from tensorflow import keras
import numpy as np
boston_housing=keras.datasets.boston_housing
(train_data,train_labels),(test_data,test_labels)=boston_housing.load_data()
#打乱数据,这里产生的是shape大小的0-1之间的浮点数,进行排序取下标
order=np.argsort(np.random.random(train_labels.shape))
train_data=train_data[order]
train_labels=train_labels[order]
不仅有下载数据的代码还有打乱数据的代码.
1.1 样本和特征
代码:
print("Training set:{}".format(train_data.shape))
print('Testing set:{}'.format(test_data.shape))
print(train_data[0])
结果:从结果来看,我们的训练集有404个样本,测试集有102个样本,每个样本都存在13个特征.展示第一个样本可以看出每一个特征的规模都不一样,需要归一化.
通过pandas这个库,来友好的展示前几个数据集的数据.
代码如下:
import pandas as pd
column_names=['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE',
'DIS','RAD','TAX','PTRATIO','B','LSTAT']
df=pd.DataFrame(train_data,columns=column_names)
print(df.head())
结果如下:
Training set:(404, 13)
Testing set:(102, 13)
[7.8750e-02 4.5000e+01 3.4400e+00 0.0000e+00 4.3700e-01 6.7820e+00
4.1100e+01 3.7886e+00 5.0000e+00 3.9800e+02 1.5200e+01 3.9387e+02
6.6800e+00]
1.2 标签
也就是多少美金
代码:展示前10个结果,以千为单位.
print(train_labels[0:10])
结果:
[32. 27.5 32. 23.1 50. 20.6 22.6 36.2 21.8 19.5]
二.归一化数据
归一化=(每一个特征-均值)/样本
代码: