13

ニューラルネット パッケージを使用してニューラル ネットワークを構築しようとしていますが、問題が発生しています。私はパッケージで成功しましたが、nnetパッケージでは運がありませんneuralnet. ドキュメント パッケージ全体を読みましたが、解決策が見つからないか、見つけられない可能性があります。

私が使用しているトレーニングコマンドは

nn<-neuralnet(V15 ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14,data=test.matrix,lifesign="full",lifesign.step=100,hidden=8) 

そして予測のために

result<- compute(nn,data.matrix)$net.result

トレーニングは、nnet トレーニングよりもはるかに時間がかかります。nnet私は(回復力のあるバックプロパゲーションの代わりにバックプロパゲーション)と同じアルゴリズムを使用しようとしましたが、何も変更せず、アクティベーション関数(およびlinear.output=F)と他のほとんどすべてを変更しましたが、結果は改善されませんでした。予測値はすべて同じです。なぜnnetが機能するのに、nnetが機能しないのかわかりneuralnetません。

私は実際にいくつかの助けを借りることができました.2つのこと(ニューラルネットとR)の私の(欠如)理解はおそらく原因ですが、理由を見つけることができません.

私のデータセットはUCIからのものです。二項分類にニューラル ネットワークを使用したいと考えています。データのサンプルは次のようになります。

25,Private,226802,11th,7,Never-married,Machine-op-inspct,Own-child,Black,Male,0,0,40,United-States,<=50K.
38,Private,89814,HS-grad,9,Married-civ-spouse,Farming-fishing,Husband,White,Male,0,0,50,United-States,<=50K.
28,Local-gov,336951,Assoc-acdm,12,Married-civ-spouse,Protective-serv,Husband,White,Male,0,0,40,United-States,>50K.
44,Private,160323,Some-college,10,Married-civ-spouse,Machine-op-inspct,Husband,Black,Male,7688,0,40,United-States,>50K.
18,?,103497,Some-college,10,Never-married,NA,Own-child,White,Female,0,0,30,United-States,<=50K.
34,Private,198693,10th,6,Never-married,Other-service,Not-in-family,White,Male,0,0,30,United-States,<=50K.
29,?,227026,HS-grad,9,Never-married,?,Unmarried,Black,Male,0,0,40,United-States,<=50K.
63,Self-emp-not-inc,104626,Prof-school,15,Married-civ-spouse,Prof-specialty,Husband,White,Male,3103,0,32,United-States,>50K.
24,Private,369667,Some-college,10,Never-married,Other-service,Unmarried,White,Female,0,0,40,United-States,<=50K.
55,Private,104996,7th-8th,4,Married-civ-spouse,Craft-repair,Husband,White,Male,0,0,10,United-States,<=50K.
65,Private,184454,HS-grad,9,Married-civ-spouse,Machine-op-inspct,Husband,White,Male,6418,0,40,United-States,>50K.
36,Federal-gov,212465,Bachelors,13,Married-civ-spouse,Adm-clerical,Husband,White,Male,0,0,40,United-States,<=50K.
26,Private,82091,HS-grad,9,Never-married,Adm-clerical,Not-in-family,White,Female,0,0,39,United-States,<=50K.

係数を数値として行列に変換します。

V1  V2  V3  V4  V5  V6  V7  V8  V9  V10 V11 V12 V13 V14 V15
39  7   77516   10  13  5   1   2   5   2   2174    0   40  39  0
50  6   83311   10  13  3   4   1   5   2   0   0   13  39  0
38  4   215646  12  9   1   6   2   5   2   0   0   40  39  0
53  4   234721  2   7   3   6   1   3   2   0   0   40  39  0
28  4   338409  10  13  3   10  6   3   1   0   0   40  5   0
37  4   284582  13  14  3   4   6   5   1   0   0   40  39  0
49  4   160187  7   5   4   8   2   3   1   0   0   16  23  0
52  6   209642  12  9   3   4   1   5   2   0   0   45  39  1
31  4   45781   13  14  5   10  2   5   1   14084   0   50  39  1
42  4   159449  10  13  3   4   1   5   2   5178    0   40  39  1
37  4   280464  16  10  3   4   1   3   2   0   0   80  39  1
30  7   141297  10  13  3   10  1   2   2   0   0   40  19  1
23  4   122272  10  13  5   1   4   5   1   0   0   30  39  0

予測値の要約:

      V1           
 Min.   :0.2446871  
 1st Qu.:0.2446871  
 Median :0.2446871  
 Mean   :0.2451587  
 3rd Qu.:0.2446871  
 Max.   :1.0000000  

Wilcoxon-Mann-Whitney 検定の値 (曲線下の領域) は、予測性能が実質的に無作為と同じであることを示しています。

performance(predneural,"auc")@y.values
[1] 0.5013319126
4

4 に答える 4

4

@sashkello からの回答と同様に、以前にデータが適切に正規化されていないときに同様の問題に直面しました。データを正規化すると、すべてが正しく実行されました。

最近、この問題に再び直面し、デバッグした後、ニューラル ネットワークが同じ出力を与える別の理由がある可能性があることがわかりました。RSNNSパッケージのような重み減衰項を持つニューラル ネットワークがある場合は、すべての重みが実質的に 0 になるほど減衰項が大きくならないようにしてください。

R ではキャレットパッケージを使用していました。最初は、減衰ハイパーパラメータ = 0.01 を使用していました。診断結果を見ると、(交差検証の) 分割ごとに RMSE が計算されていることがわかりましたが、R2 乗は常に NA でした。この場合、すべての予測が同じ値になりました。

減衰をかなり低い値 (1E-5 以下) に下げると、期待どおりの結果が得られました。

これが役立つことを願っています。

于 2019-02-06T22:09:29.510 に答える