4

音声機能と加速度計の測定値を含むデータセットで、Matlab Neural Network Toolbox を使用してフィード フォワード NN をトレーニングしました。Targetset には、データセットの 2 つのターゲット クラス (0 と 1) が含まれています。トレーニング、検証、およびパフォーマンスはすべて問題なく、このネットワークのコードを生成しました。

ここで、このニューラル ネットワークをリアルタイムで使用してパターンを認識し、以前にトレーニングした NN に対して新しいデータセットをテストするときに 0 または 1 を生成する必要があります。しかし、コマンドを発行すると:

   c = sim(net, j)

「j」は新しいデータセット[24x11]です。代わりに 0 または 1 を出力として取得します (正しい分類の割合を取得すると仮定しますが、分類結果自体はありません):

c =

  Columns 1 through 9

    0.6274    0.6248    0.9993    0.9991    0.9994    0.9999    0.9998    0.9934    0.9996

  Columns 10 through 11

    0.9966    0.9963

では、実際に分類結果を確認できるコマンドまたは方法はありますか? どんな助けでも大歓迎です!ありがとう

4

2 に答える 2

4

私は matlab ユーザーではありませんが、論理的な観点からすると、重要な点が欠けています。

ニューラル ネットワークへの入力は単一のベクトルで、行列を渡します。したがって、matlab は、一連のベクトル (この場合は 11) を分類したいと考えています。したがって、得られるベクトルは、これら 11 個のベクトルすべての出力アクティベーションです。

出力アクティベーションは 0 から 1 の間の値なので (シグモイドを使用していると思います)、これは完全に正常です。あなたの仕事は、データに最適なしきい値を取得することです。このしきい値は、トレーニング/テスト データの相互検証で取得するか、1 つ (0.5?) を選択するだけで取得でき、結果が「良好」かどうかを確認し、必要に応じて変更できます。

于 2013-01-04T19:23:11.757 に答える
2

NN は通常、ロジスティック関数などを使用して、出力を (0,1) 内の値に変換します。これはパーセンテージや確率ではなく、確実性の相対的な尺度です。いずれにせよ、これは、2 つのクラスを区別するためにしきい値 (0.5 など) を手動で使用する必要があることを意味します。適合率と再現率の間で最適なトレードオフを選択する必要があるため、最適なしきい値を見つけるのは困難です。

于 2013-01-04T21:49:35.310 に答える