tf2.0单层神经网络实现鸢尾花分类
数据类型分析
from sklearn import datasets
import pandas as pd
#导入数据和标签
x_data = datasets.load_iris().data
y_data = datasets.load_iris().target
x_data = pd.DataFrame(x_data, columns=['花萼长度','花萼宽度','花瓣长度','花瓣宽度'])
pd.set_option('display.unicode.east_asian_width', True)#设置列名对其
x_data['类别'] = y_data #新加一列,类别标签为y_data
print(x_data)
运行结果:
由图可见,鸢尾花数据集中共有150个样本,包含4个特征,分为3个类别,由于数据量小故采用简单的单层神经网络即可实现分类。
神经网络模型:
这里使用一层包含4个单元的神经网络和3个输出节点相连,最后用softmax实现分类任务
该分类任务需要完成如下操作:
数据读入和处理
- 导入数据
- 打乱数据
- 分开测试集和训练集
- 将训练和测试的样本与标签配对,并设置batch
搭建网络
定义神经网络中的可训练参数
参数训练和优化
前向传播计算和反向求梯度更新优化参数,并显示当前损失值loss
测试
计算模型每训练一次epoch的测试集准确率,并显示当前正确率acc
结果可视化
画出acc和loss曲线
**
完整代码
**
from sklearn import datasets
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from sklearn.utils import shuffle
# 导入数据和标签
x_data = datasets.load_iris().data
y_data = datasets.load_iris(