一、使用pandas对鸢尾花的数据集进行读取
import pandas as pd import tensorflow as tf CSV_COLUMN_NAMES = ['SepaLength', 'SepalWidth','PetalLength', 'PetalWidth','Species'] # 鸢尾花的四个特征,花萼长度,花萼宽度,花瓣长度,花瓣宽度 data_train = pd.read_csv('iris_training.csv', names = CSV_COLUMN_NAMES, header = 0) # pandas读取训练集 data_test = pd.read_csv('iris_test.csv',names = CSV_COLUMN_NAMES, header = 0) # pandas读取测试集 print(data_train.head(5)) # 显示训练集数据的前五行123456
二、构建模型
1. 需要指定模型的输入特征和预测值。该例中,输入特征有四个:
训练集中的最后一列是预测值,species代表鸢尾花的种类,分别用0、1、2表示:
山鸢尾(0)变色鸢尾(1)维吉尼亚鸢尾(2)2.将属性值和标记值区分开,并提取特征值
train_x, train_y = data_train, data_train.pop('Species') # 删除训练集的最后一个列元素并返回作为训练的标记值 test_x, test_y = data_test, data_test.pop('Species')12
从train_x或者test_x提取特征值:
my_feature_columns = [] for key in train_x.keys(): my_feature_columns.append(tf.feature_column.numeric_column(key = key)) print(my_feature_columns)1234
3.构建深度神经网络分类器
tf.estimator提供了各种预定义的模型,称为Estimators,用户可以“开箱即用”对数据进行训练和评估操作。使用tf.estimator,你可以使用几行代码实例化tf.estimator.DNNClassifier:
# 构建训练模型 classifier = tf.estimator.DNNClassifier( # 接受那些输入特征 feature_columns = my_feature_columns, # 包含的隐藏层及每个隐藏层包含的神经元数目 hidden_units = [10,20], # 最终结果分成几类 n_classes = 3 )123456789