主要内容

このペジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ワ邮箱ンの分類

この例では,パターン認識ニューラルネットワークを使用して,ワイナリーで生産されたワインを化学特性に基づいて分類する方法を説明します。

問題:ワ邮箱ンの分類

この例では,次の13の属性によって,3つのワイナリーで生産されたワインを分類できるニューラルネットワークの構築を試みます。

  • アルコル

  • リンゴ酸

  • 灰分

  • 灰分のアルカリ度

  • マグネシウム

  • 全フェノル含量

  • フラボノ邮箱ド

  • 非フラボノ邮箱ドフェノ邮箱ル

  • プロアントシアニジン

  • 色の強度

  • 色相

  • 希釈ワ邮箱ンのod280 / od315 .使用实例

  • プロリン

これは,入力がさまざまなクラスに関連付けられているパタン認識問題の例です。既知のワインを適切に分類するだけでなく,解の設計に使用されなかったワインも正確に分類するように汎化できるニューラルネットワークを作成します。

ニュラルネットワクを使用する理由

ニュラルネットワクは,パタン認識問題に非常に適しています。十分な要素(ニューロンと呼ばれる)が含まれるニューラルネットワークは,任意のデータを任意の精度で分類できます。特に,多変数の複雑な判定境界問題には非常に適しています。そのため,ニュ。

13の近傍属性がニューラルネットワークへの入力となり,それぞれのターゲットは,関連付けられるワイナリー# 1,# 2,または# 3に対応する位置が1である,3要素のクラスベクトルになります。

ネットワクは,正しいタゲットクラスの生成を学習するよう,近傍の属性を使用して設計されます。

デタの準備

入力行列Xとターゲット行第2列Yのつの行列にデータを整理することによって,ニューラルネットワークに分類問題用のデータを設定します。

入力行列の我番目の列にはそれぞれ,ワイナリーが既知であるワインを表す13の要素が含まれます。

ターゲット行列の対応する各列には3つの要素が含まれ,これらの要素は2つの0と関連付けられるワイナリーの場所に対応する1つの1で構成されます。

ここで,このようなデタセットが読み込まれます。

[x,t] = wine_dataset;

入力xおよびタtのサ。

Xとtの両方に178の列があることに注意してください。178年これらはのワインの標本属性(入力)および関連付けられるワイナリーのクラスベクトル(ターゲット)を表します。

入力行列xには,13の属性に対する13の行があります。それぞれの例に候補として3つのワイナリーがあるため,ターゲット行列Tには3つの行があります。

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

ニュラルネットワクによるパタン認識

次の手順では,ワ。

ニューラルネットワークはランダムな初期重みで開始するため,この例で得られる結果は実行するたびに多少異なります。

2層(1つの隠れ層)のフィードフォワードニューラルネットワークは,隠れ層に十分なニューロンがある場合,任意の入出力関係を学習できます。出力層ではない層は,隠れ層と呼ばれます。

この例では,10個のニュロンがある1の隠れ層を試します。一般的に,難しい問題ほど多くのニュ,ロンが,そしておそらくは多くの層が必要になります。簡単な問題では,必要なニュロンが少なくなります。

ネットワークはまだ入力データとターゲットデータに一致するように構成されていないため,入力と出力のサイズは0です。ネットワクの学習時にはこのようになります。

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

これでネットワクの学習の準備が整いました。標本が学習セット,検証セット,およびテストセットに自動的に分割されます。学習セットは,ネットワクに教えるために使用されます。検証セットに対してネットワクの改善が続いている限り,学習が続行されます。テストセットを使用することで,ネットワクの精度を完全に独立して測定できます。

神经网络训练工具を使用すると,学習するネットワークと,学習に使用されているアルゴリズムが表示されます。さらに,学習中には学習の状態が表示され,学習を停止した条件が緑で強調表示されます。

下部にあるボタンを使用すると,便利なプロットを開くことができます。これらのプロットは,学習中および学習後に開くことができます。アルゴリズム名およびプロットボタンの隣のリンクを使用すると,これらに関するドキュメンテーションを開くことができます。

[net,tr] = train(net,x,t);

图神经网络训练(12-Apr-2022 00:56:57)包含一个类型为uigridlayout的对象。

学習中にネットワーク性能がどのように改善されているかを確認するには,学習ツールの[パフォーマンス]ボタンをクリックするか,PLOTPERFORMを呼び出します。

性能は,平均二乗誤差で測定され,対数スケ,ルで表示されます。これは,ネットワクの学習が進むと急激に低下します。

性能は,学習セット,検証セット,およびテストセットのそれぞれに。

plotperform (tr)

图性能(plotperform)包含一个axes对象。在纪元4中标题为最佳验证性能为0.072181的axis对象包含6个类型为line的对象。这些对象代表训练、验证、测试、最佳。

ネットワクのテスト

学習済みニュラルネットワクの平均二乗誤差をテスト標本に。これにより,実際のデタに適用した場合にネットワクがどの程度一致しているかを把握できます。

ネットワク出力は0 ~ 1の範囲になるため,関数vec2indを使用して、各出力ベクトルで最大の要素の位置としてクラス以及ンデックスを取得できます。

testX = x(:,tr.testInd);test = t(:,tr.testInd);testY = net(testX);testIndices = vec2ind(testY)
testIndices =1×271 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3

ニューラルネットワークがどの程度データにあてはまるかを測定するもう1つの方法は,混同プロットです。ここで,すべての標本に対して混同行列がプロットされます。

混同行列は,正しい分類と正しくない分類の比率を示します。正しい分類は,行列の対角部分の緑の正方形に表示されます。正しくない分類は,赤い正方形に表示されます。

ネットワークが適切な分類を学習した場合,赤い正方形の比率は非常に小さくなり,誤分類がほとんどないことを示します。

そうなっていない場合は,追加学習を行うか,隠れニューロンを増やしてネットワークの学習を行うことをお勧めします。

plotconfusion (testT暴躁的)

Figure Confusion (plotconfusion)包含一个轴线对象。标题为Confusion Matrix的axis对象包含50个类型为patch、text、line的对象。

正しい分類と正しくない分類の全体的な比率を次に示します。

[c,cm] =困惑(test,testY)
C = 0
厘米=3×37 0 0 0 12 0 0 8
流('正确分类百分比:%f%%\n', 100 * (1 - c));
分类正确率:100.000000%
流('错误分类百分比:%f%%\n', 100 * c);
错误分类百分比:0.000000%

ニューラルネットワークがどの程度データにあてはまるかを測定する3つ目の方法は,受信者動作特性プロットです。これは,出力のしきい値が0 ~ 1の範囲で変化する場合に偽陽性率と真陽性率にどのような関連があるかを示します。

線が左上にあればあるほど,高い真陽性率を得るために受け入れる必要がある偽陽性の数が減少します。最適な分類器とは,線が左下隅から左上隅,右上隅,またはその近くに向かって伸びている分類器です。

plotroc (testT暴躁的)

图接收机工作特性(plotroc)包含一个轴对象。标题为ROC的轴线对象包含6个类型为line的对象。这些对象代表类1、类2、类3。

この例では,それぞれのワインの特性からワインを3つのワイナリーに分類するニューラルネットワークを設計する方法を説明しました。

ニューラルネットワークとそのアプリケーションの詳細は,他の例およびドキュメンテーションを参照してください。