葡萄酒的分级

这个例子说明如何模式识别神经网络可以根据其化学特性分类由酒庄的葡萄酒。

问题:葡萄酒分类

在这个例子中,我们试图建立可以是十个三个属性从三个酒庄的葡萄酒分类神经网络:

  • 苹果酸

  • 灰分的碱度

  • 总酚

  • 黄酮类化合物

  • Nonflavonoid酚类

  • 原花青素

  • 颜色强度

  • 色调

  • 稀释的葡萄酒OD280 / OD315

  • 脯氨酸

这是一个模式识别问题,其中输入与不同类别相关联的一个例子,我们想建立一个神经网络,不仅进行分类的已知葡萄酒正常,但可以概括到没有用于设计准确分类的葡萄酒解。

为什么神经网络?

神经网络是在模式识别问题非常好。使用足够的元素的神经网络(称为神经元)可以与任意精度任何数据进行分类。它们特别适用于在许多变量的复杂决策边界问题。因此,神经网络是解决葡萄酒的分级问题一个很好的候选人。

十三附近属性将作为输入作用于神经网络,并且对于每个相应的目标将是一个3元素类矢量与在相关酒厂的位置的1,#1,#2或#3。

该网络将通过使用社区的属性,以训练网络产生正确的目标类进行设计。

准备数据

对于分类问题数据都设置了一个神经网络通过组织数据转换成两个矩阵,输入矩阵X和目标矩阵T.

输入矩阵中的每一个第i列将具有表示其葡萄酒酿酒厂是已知的13个元素。

所述目标矩阵的各列对应的将有三个元件,它由两个零,并在相关联的酒厂的位置的1。

在此,这些数据集被加载。

[X,T] = wine_dataset;

我们可以查看输入X和目标T的大小

需要注意的是X和T都有178列。这些代表178种酒样属性(输入)和相关联的酒厂类载体(目标)。

输入矩阵X有十三行,为十个三个属性。目标矩阵T具有三排,对于每个实施例,我们有三种可能的酿酒厂。

大小(x)的
ANS =1×213 178
尺寸(T)
ANS =1×23 178

模式识别与神经网络

下一步是创建将学习到葡萄酒分类神经网络。

由于神经网络的随机初始权开始,这个例子的结果将在每次运行时略有不同。

两个层(即一个隐藏层)前馈神经网络可以了解在隐藏层给予足够的神经元的任何输入输出关系。层,它们是不输出层被称为隐藏层。

我们将尝试10元的单隐层的这个例子。在一般情况下,更加困难的问题需要更多的神经,也许更多的层。简单的问题需要较少的神经元。

输入和输出为0的大小,因为网络尚未配置,以匹配我们的输入数据和目标数据。当网络进行训练会发生这种情况。

净= patternnet(10);视图(净值)

现在网络已经准备好接受培训。样品被自动分为培训,验证和测试集。训练集是用来教网络。培训只要网络不断完善的验证组仍在继续。此测试仪提供网络精度的完全独立的量度。

神经网络的训练工具显示网络被训练和算法用来训练它。它还训练过程中显示训练状态并停止训练的标准将以绿色高亮显示。

在此期间可以和训练后,打开底部开有用地块的按钮。旁边的算法名称和情节按钮就这些议题进行开放文档链接。

[净,TR] =列车(净,X,T);nntraintool nntraintool('关'

要查看网络的性能在训练中如何改进,无论是点击训练工具,或致电PLOTPERFORM“性能”按钮。

性能示于均方误差来衡量,并在对数标度示出。作为网络进行训练它迅速下降。

性能给出了每个培训,验证和测试集的。

plotperform(TR)

测试网络

经训练的神经网络的均方误差,现在可以相对于所述测试样品上测量。这将给我们的有多好,当来自真实世界应用到数据网络会做的感觉。

网络输出将在范围0到1,所以我们可以使用vec2ind函数来获得类索引作为每个输出矢量的最高元件的位置。

testX = X(:,tr.testInd);testT = T(:,tr.testInd);暴躁=净(testX);testIndices = vec2ind(暴躁)
testIndices =1×271 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3

的神经网络有多么合适的数据另一项措施是混乱的情节。这里混淆矩阵在所有样本绘制。

混淆矩阵显示了正确和不正确分类的百分比。正确的分类是在矩阵中的绿色方块对角线。不正确的分类形成红色方块。

如果网络已经学会了正确地分类,在红色正方形的比例应该是很小,说明一些错误分类。

如果不是这种情况,那么进一步的培训,或培训更多的隐藏神经元网络,将是可取的。

plotconfusion(testT,暴躁)

下面是正确和不正确分类的总体百分比。

并[c,厘米] =混乱(testT,暴躁)
C = 0
厘米=3×311 0 0 0 8 0 0 0 8
fprintf中('百分比正确分类:%F %% \ n',100 *(1-C));
百分比正确分类:100.000000%
fprintf中('百分比不正确分类:%F %% \ N',100 * C);
百分比不正确的分类:0.000000%

的神经网络如何阱具有拟合数据的第三个量度是受试者工作特征曲线图。这显示了假阳性和真阳性率如何与作为输出的阈值是从0到1变化。

更远的离开,上了线,越少误报需要,以获得较高的真阳性率被接受。最好的分类将有一条线从左下角走,到左上角,在右上角,或接近。

plotroc(testT,暴躁)

这个例子说明如何设计神经网络进行分类葡萄酒到每个葡萄酒的的三座酒庄。

探索其他实例和更深入地了解神经网络及其应用的文档。