1

現在、分類タスクのためにバックプロパゲーションを使用して ANN に取り組んでいます。ただし、使用しているデータセットの正規化について少し混乱しています(強力な統計/確率の背景がありません)。

データのサンプルを以下に示します。

5.1, 3.5, 1.4, 0.2, 1
5.2, 2.7, 3.9, 1.4, 2
5.9, 3.0, 5.1, 1.8, 3

それぞれの最後のトークンはクラスです。

現在、シグモイド伝達関数を使用しているため、ネットワークは明らかに 1 より大きい値を出力できないため、データを正規化/スケーリングする必要があります。

私の最初の質問; 機能とクラスの両方をスケーリングする必要がありますか、それともクラスのみをスケーリングする必要がありますか?

私の2番目の質問は、そのようなスケーリングを行うための「事実上の」または一般的に使用される方法はありますか?

よろしく、ジャック・ハント

4

2 に答える 2

2

通常、フィーチャのスケーリングも行うことをお勧めします。スケーリングは、scaled_feature = (feature - min(featurearray))/(max(featurearray) - min(featurearray)) のように簡単にする必要があります。

したがって、最初の属性列の場合、新しいデータは次のようになります: (5.1-5.1)/(5.9-5.1); (5.2-5.1)/(5.9-5.1); (5.9-5.1)/(5.9-5.1)

于 2013-02-11T18:21:53.637 に答える
1

実際、スケーリングのトピックは、機械学習アルゴリズム、特にANNを採用する上で最も重要な側面の1つです。

はい、(feature-min / max --min)アプローチは1つの可能性です。

ただし、他にもさまざまな方法があります。たとえば、zスコア(平均からの標準偏差の観点から)を使用できます。あるいは、z軸正規化と呼ばれる手法もあります。この手法では、正規化されたベクトルに追加のコンポーネントが追加されます。また、スケーリングがまったく必要ない場合もあります。

于 2013-02-11T19:24:01.900 に答える