3

neuralnet 패키지로 신경망을 작성하려고하는데 문제가 있습니다. nnet 패키지로 성공했지만 행운은 neuralnet입니다. 전체 문서 패키지를 읽었으며 솔루션을 찾을 수 없거나 어쩌면 그것을 발견 할 수 없습니다.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 (같은 backpropagation 대신 respent backpropagation)과 같은 알고리즘을 사용해 보았으며 아무 것도 활성화 함수 (그리고 linear.output=F)와 그 밖의 거의 모든 것을 변경했으며 결과는 개선되지 않았다. 예상 값은 모두 동일합니다. neuralnet 하나는하지 않는 동안 왜 nnet 나를 위해 작동하는지 이해가 안돼요.

두 가지 (신경망과 R)에 대한 이해가 부족하여 실제로 도움이 될 수는 있지만 그 원인을 찾을 수는 없습니다.

내 데이터 세트는 UCI입니다. 나는 이진 분류를 위해 신경망을 사용하고 싶다. 데이터의 샘플이 될 것이다 : 예측값의

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 

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. 

는 수치로 요인 매트릭스로 변환 Wilcoxon-Mann-Whitney 테스트 (곡선 아래 영역)는 예측 성능이 가상과 동일 함을 보여줍니다.

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

답변

7

신경망에서 이상한 결과를 얻을 때 고려해야 할 첫 번째 이유는 정규화입니다. 귀하의 데이터는 정규화되어야합니다. 그렇지 않으면, 교육은 항상 동일한 결과를 산출하는 비뚤어진 NN을 야기합니다. 이는 흔한 증상입니다.

데이터 세트를 보면 값이 >> 1인데 이는 모두 NN으로 처리된다는 의미입니다. 그 이유는 전통적으로 사용 된 응답 함수가 거의 0의 범위를 벗어나 거의 일정하다는 것입니다.

신경망에 입력하기 전에 항상 데이터를 정규화하십시오.

관련 문제