5.4 数据读取

5.4.1 导入相关库

首先还是先导入后面要使用到的Python包

%matplotlib notebook

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.utils import shuffle

5.4.2 通过Pandas导入数据

我们要读取的波士顿房价数据是常规大小的数据,想快速此类数据文件时,通过创建读缓存区和其他的机制可能会造成额外的开销,此时建议采用Pandas库来处理。

Pandas官网(http://pandas.pydata.org )这样介绍Pandas:

“Pandas是一款开源的、基于BSD协议的Python库,能够提供高性能、易用的数据结构和数据分析工具。”他具有以下特点:①能够从CSV文件、文本文件、MS Excel、SQL数据库,甚至是用于科学用途的HDF5格式②CSV文件加载能够自动识别列头,支持列的直接寻址③数据结构自动转换为Numpy的多维数组。

# 读取数据文件

df = pd.read_csv("data/boston.csv", header=0)

#显示数据摘要描述信息

print (df.describe())

Jupyter Notebook的交互界面会出现如图5-8所示的摘要描述信息。

5.4.3 载入本示例所需数据

# 获取df的值
df = df.values
print(df)

# 把 df 转换为 np 的数组格式
df = np.array(df)
print(df)

5.4.4 特征数据归一化

# 对特征数据 【0到11】列 做(0-1)归一化
for i in range(12):
    df[:,i]=df[:,i]/(df[:,i].max()-df[:,i].min())
    
# x_data 为 归一化后的前12列特征数据
x_data = df[:,:12] 

# y_data 为最后1列标签数据
y_data = df[:,12]

如图5-1所示,不同的评价指标往往具有不同的量纲(例如:对于评价房价来说量纲指:面积、房价数、楼层等;对于预测某个人患病率来说量纲指:身高、体重等。)和量纲单位(例如:面积单位:平方米、平方厘米等;身高:米、厘米等),这样的情况会影响到数据分析的结果,为了消除指标之间量纲的影响,需要进行数据标准化处理,已解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

进行数据归一化后可以加快梯度下降求解最优解的速度,也可以提高精度。

Last updated