主要内容

葡萄酒的分类

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

问题:葡萄酒进行分类

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

  • 酒精

  • 苹果酸

  • 碱度的火山灰

  • 总酚类化合物

  • 类黄酮

  • Nonflavonoid酚类

  • 原花青素

  • 颜色的强度

  • 色调

  • OD280 / OD315稀释葡萄酒

  • 脯氨酸

这是一个模式识别问题的一个例子,在输入与不同的类相关联,我们希望建立一个神经网络,不仅把已知的葡萄酒,但也可以概括准确分类葡萄酒不习惯设计的解决方案。

神经网络的原因吗?

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

13个社区属性将作为神经网络的输入,和各自的目标将会是一个转换类向量1的位置相关的酒厂,# 1、# 2、# 3。

网络将被设计通过使用社区的属性来训练网络产生正确的目标类。

准备数据

数据分类问题建立了一个神经网络通过将数据组织成两个矩阵,输入矩阵X和目标矩阵T。

输入矩阵的每个i列会有十三个元素代表一个葡萄酒的酒庄是已知的。

每个目标矩阵的对应的列有三个元素,组成两个0和1的位置相关的酒厂。

这样的数据集加载。

[x, t] = wine_dataset;

我们可以把输入X和目标T的大小。

注意,X和T有178列。这些代表178葡萄酒酿酒厂类相关联的示例属性(输入)和向量(目标)。

输入矩阵X有13行,十三个属性。目标矩阵T有三行,至于每一个例子中,我们有三种可能的酒厂。

大小(x)
ans =1×2178年13
大小(t)
ans =1×23 178

神经网络模式识别

下一步是创建一个将学习的神经网络对葡萄酒进行分类。

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

两层(即one-hidden-layer)前馈神经网络可以学习任何给予足够的隐层神经元的输入-输出关系。层不输出层被称为隐藏层。

我们将尝试一个单隐层神经元10这个例子。一般来说,更困难的问题需要更多的神经元,或许更多的层。简单的问题需要较少的神经元。

输入和输出大小为0,因为网络尚未配置匹配我们的输入和目标数据。这将发生在网络训练。

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

现在网络已经准备好被训练。样品会自动分成训练,验证集和测试集。训练集用于教网络。培训持续只要网络持续改进验证集。网络的测试集提供了一个完全独立的测量精度。

神经网络训练工具显示了该算法用于网络训练和训练它。它还显示培训期间状态和停止的标准培训将用绿色被加亮。

底部的按钮打开有用的情节,可以打开期间和之后的训练。链接算法名称和图旁边的按钮打开文档的主题。

(净,tr) =火车(净,x, t);

数字神经网络训练(03 - mar - 2023 09:03:50)包含一个uigridlayout类型的对象。

看看网络的性能改进的培训期间,点击“性能”按钮在训练工具,或者叫PLOTPERFORM。

性能测量的均方误差,并显示在对数尺度。它迅速减少网络训练。

显示性能的每个训练,验证集和测试集。

plotperform (tr)

图的性能(plotperform)包含一个坐标轴对象。坐标轴对象和标题最好的验证性能0.072181时代4,包含10个时代,ylabel交叉熵(crossentropy)包含6行类型的对象。一个或多个行显示的值只使用这些对象标记代表训练,验证,测试,最好的。

测试网络

训练神经网络的均方误差现在可以测量的测试样本。这将给我们的网络将如何当应用于现实世界的数据。

网络输出范围在0到1,所以我们可以使用vec2ind函数的类指数最高的元素的位置每个输出向量。

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

另一个测量的神经网络具有适应数据混乱情节。这里的混淆矩阵是绘制在所有样本。

混淆矩阵显示正确的和不正确的分类的百分比。正确的分类矩阵对角线上的绿色广场。不正确的分类形式红色的方块。

如果网络已经学会正确分类,红色方块的百分比应该很小,表明一些误分类。

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

plotconfusion (testT暴躁的)

图混乱(plotconfusion)包含一个坐标轴对象。坐标轴对象标题混淆矩阵,包含目标类,ylabel输出类包含50块类型的对象,文本行。

这里的总体百分比是正确的和不正确的分类。

(c cm) =混乱(testT,暴躁的)
c = 0
厘米=3×37 0 0 0 12 0 0 0 8
流(的正确分类:百分比% f % % \ n ',100 * (1 - c));
正确的分类比例:100.000000%
流(的比例不正确的分类:% f % % \ n ',100 * c);
不正确的分类比例:0.000000%

的第三个标准神经网络具有适合数据接受者操作特征。这显示了假阳性和真阳性率与输出不同的阈值从0到1。

越远,线,减少假阳性需要接受为了得到一个真阳性率高。最好的分类器将有一条线从左下角,左上角,右上角,或接近。

plotroc (testT暴躁的)

接受者操作特征图(plotroc)包含一个坐标轴对象。坐标轴对象标题中华民国,包含假阳性,ylabel真阳性率包含6行类型的对象。这些对象代表一班、二班、三班。

这个例子演示了如何设计一个神经网络,将葡萄酒分为三个酒厂从每个葡萄酒的特点。

探索其他的例子和文档了解神经网络及其应用。