c#神经网络,实现对Iris数据集进行分类

本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set 找到。

先介简单绍下介绍一下Iris数据集:

有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。

我们用C#代码通过对已知数据集的训练,得到训练权重Syn0,Syn1,通过它对一批未知的花进行分类。这里初次接触神经网络的同学们要注意,分类模式的原则是最终输出多少种情况(这里3种情况),一般最后一层就多少一个神经元。我们这里对应3种类别的输出为 【1,0,0】【0,1,0】,【0,0,1】,这里大家多多思考为什么这样吧!

下面上代码(Matix矩阵在本人上一文章中


c#神经网络,实现对Iris数据集进行分类_第1张图片

c#神经网络,实现对Iris数据集进行分类_第2张图片

c#神经网络,实现对Iris数据集进行分类_第3张图片


运行结果如下:

c#神经网络,实现对Iris数据集进行分类_第4张图片

运行结果

总结,500次就可以完成收敛,对样本的拟合率100%,预测样本准确率为97.33%,超过了AForge Neural Net Library的93%。

你可能感兴趣的:(C#,AI)