Pybrain-testing-network
PyBrain-テストネットワーク
この章では、データをトレーニングし、トレーニングしたデータのエラーをテストする例をいくつか見ていきます。
私たちはトレーナーを利用するつもりです-
BackpropTrainer
BackpropTrainerは、エラーを(時間を通して)バックプロパゲーションすることにより、教師付きまたはClassificationDataSetデータセット(潜在的にシーケンシャル)に従ってモジュールのパラメーターをトレーニングするトレーナーです。
TrainUntilConvergence
収束するまで、データセットでモジュールをトレーニングするために使用されます。
ニューラルネットワークを作成すると、与えられたトレーニングデータに基づいてトレーニングされますが、ネットワークが適切にトレーニングされているかどうかは、そのネットワークでテストされたテストデータの予測に依存します。
ニューラルネットワークを構築し、トレーニングエラー、テストエラー、検証エラーを予測する実際の例を順を追って見てみましょう。
ネットワークをテストする
以下は、ネットワークをテストするために従う手順です-
- 必要なPyBrainおよびその他のパッケージのインポート
- ClassificationDataSetを作成する
- データセットをテストデータとして25%、トレーニング済みデータとして75%に分割
- TestDataとトレーニングデータをClassificationDataSetに変換して戻す
- ニューラルネットワークの作成
- ネットワークのトレーニング
- エラーと検証データの視覚化
- テストデータエラーの割合
ステップ1
必要なPyBrainおよびその他のパッケージをインポートします。
必要なパッケージは、以下に示すようにインポートされます-
ステップ2
次のステップは、ClassificationDataSetを作成することです。
データセットの場合、以下に示すように、sklearnデータセットのデータセットを使用します-
以下のリンクでsklearnのload_digitsデータセットを参照してください-
- ステップ3 *
データセットをテストデータとして25%、トレーニング済みデータとして75%に分割-
そのため、ここでは、値が0.25のsplitWithProportion()というデータセットのメソッドを使用しました。これは、データセットをテストデータとして25%、トレーニングデータとして75%に分割します。
- ステップ4 *
TestdataとトレーニングデータをClassificationDataSetに変換します。
データセットでsplitWithProportion()メソッドを使用すると、データセットがsuperviseddatasetに変換されるため、上記の手順に示すように、データセットを再度classificationdatasetに変換します。
- ステップ5 *
次のステップは、ニューラルネットワークの作成です。
入力と出力がトレーニングデータから使用されるネットワークを作成しています。
- ステップ6 *
ネットワークのトレーニング
今、重要な部分は、以下に示すように、データセット上のネットワークを訓練することです-
BackpropTrainer()メソッドを使用し、作成されたネットワーク上のデータセットを使用しています。
- ステップ7 *
次のステップは、エラーの可視化とデータの検証です。
エポック10で収束するトレーニングデータでtrainUntilConvergenceというメソッドを使用します。 以下に示すようにプロットしたトレーニングエラーと検証エラーを返します。 青い線はトレーニングエラーを示し、赤い線は検証エラーを示します。
上記のコードの実行中に受信した合計エラーは以下に示されています-
エラーは0.04から始まり、エポックごとに低下します。つまり、ネットワークはトレーニングされ、エポックごとに改善されます。
- ステップ8 *
テストデータエラーの割合
以下に示すpercentErrorメソッドを使用して、パーセントエラーを確認できます-
- testDataのエラー率*-3.34075723830735
エラーの割合、つまり3.34%を取得しています。これは、ニューラルネットワークの精度が97%であることを意味します。
以下は完全なコードです-