机器学习——鸢尾花简单神经网络实现

一、使用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)) # 显示训练集数据的前五行

机器学习——鸢尾花简单神经网络实现_第1张图片
二、构建模型
1. 需要指定模型的输入特征和预测值。该例中,输入特征有四个:

  • 花萼长度(seqpallength)
  • 花萼宽度(sepalwidth)
  • 花瓣长度(petallength)
  • 花瓣宽度(petalwidth)

训练集中的最后一列是预测值,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')

从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)

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
)

你可能感兴趣的:(机器学习——鸢尾花简单神经网络实现)