题目如下
1.按要求完成下面的各项需求。
已知有一个水蜜桃的数据集,保存在smt.txt文件中,t1是含糖量,t2是含水量,y标签表示水蜜桃的好坏:1表示好,0表示不好
利用神经网络模型,完成以下要求:
完成数据集的加载、初始化,洗牌,将数据集合理分割成训练集和测试集
实现激活函数及其导数
实现代价函数
实现梯度下降并记录代价函数
完成模型的训练,并计算在训练集上的准确率
画出代价函数曲线
在测试集上完成了预测,并计算在测试集上的准确率
项目分析
该项目应该分为三部分来做。
首先是数据处理,将文件中的数据提取出来,分成标签值Y和特征值X,再对数据进行初始化,由于数据有一个0,1排序,所以还需要将数据打乱至均匀。
第二部分是神经网络的搭建,清楚自己要搭建一个什么样的模型,隐层有几层,每个隐层的神经元个数由几个,一般来说,加入正则化的大型的神经网络要比小型的神经网络效果更好。这里由于数据较少并且也比较简洁,所以选择搭建一个有两层隐层的神经网络,神经元个数确定为8,5。这样一来,各个层次之间的权重的维度就可以确定了,权重的维度一般来说是行数是前一层的单元个数,列数是后一层的单元个数。
第三部分是用训练好的模型进行预测值的获取,评价预测性能,并且做一些可视化操作。
代码如下
import numpy as np
from matplotlib import pyplot as plt
# 设置中文显示和负号显示
plt.rcPar