R Machine Learning - пакет нейронной сети - PullRequest
0 голосов
/ 02 февраля 2019

Я структурировал данные, как показано ниже:

> str(df.train)
'data.frame':   124 obs. of  11 variables:
 $ predictor01            : int  6 3 2 10 1 5 0 1 11 9 ...
 $ predictor02            : int  148 78 197 168 189 166 118 115 143 171 ...
 $ predictor03            : int  72 50 70 74 60 72 84 70 94 110 ...
 $ predictor04            : int  35 32 45 0 23 19 47 30 33 24 ...
 $ predictor05            : int  0 88 543 0 846 175 230 96 146 240 ...
 $ predictor06            : num  33.6 31 30.5 38 30.1 25.8 45.8 34.6 36.6 45.4 ...
 $ predictor07            : num  0.627 0.248 0.158 0.537 0.398 0.587 0.551 0.529 0.254 0.721 ...
 $ predictor08            : int  50 26 53 34 59 51 31 32 51 54 ...
 $ class-target          : Factor w/ 2 levels "Sem_diabetes",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ class-target-binaray1 : logi  TRUE TRUE TRUE TRUE TRUE TRUE ...
 $ class-target-binaray2 : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...

, и вот их резюме:

predictor01         predictor02        predictor03         predictor04        predictor05         predictor06          
 Min.   : 0.000000   Min.   :  0.0000   Min.   :  0.00000   Min.   : 0.00000   Min.   :  0.00000   Min.   : 0.00000  
 1st Qu.: 1.000000   1st Qu.:102.0000   1st Qu.: 64.75000   1st Qu.: 0.00000   1st Qu.:  0.00000   1st Qu.:26.97500  
 Median : 3.000000   Median :124.0000   Median : 72.00000   Median :25.00000   Median :  0.00000   Median :33.20000  
 Mean   : 3.725806   Mean   :127.6371   Mean   : 69.98387   Mean   :22.37903   Mean   : 78.41129   Mean   :32.90242  
 3rd Qu.: 6.000000   3rd Qu.:151.2500   3rd Qu.: 80.50000   3rd Qu.:34.00000   3rd Qu.:131.25000   3rd Qu.:37.40000  
 Max.   :14.000000   Max.   :197.0000   Max.   :110.00000   Max.   :63.00000   Max.   :846.00000   Max.   :67.10000  
 predictor07        predictor08        class-target      class-target-binaray1       class-target-binaray2   
 Min.   :0.078000   Min.   :21.00000   Target1     :62   Mode :logical               Mode :logical  
 1st Qu.:0.262500   1st Qu.:23.75000   Target2     :62   FALSE:62                    FALSE:62       
 Median :0.407000   Median :27.50000                     TRUE :62                    TRUE :62       
 Mean   :0.495871   Mean   :32.20161                                                    
 3rd Qu.:0.657500   3rd Qu.:39.50000                                                    
 Max.   :2.420000   Max.   :67.00000  

Я создал шаблон, выполнив ...

 mod.rn <- neuralnet( class-target-binaray1 + class-target-binaray2 ~ predictor01 +  predictor03 + predictor04 +
                         predictor05 + predictor06 + predictor07, 
                         df.train, hidden=4,
                         linear.output = TRUE, stepmax=1e6)

До этого момента все в порядке.

Затем я применил сгенерированную модель к тестовым данным, выполнив:

test_result <- compute(mod.rn, df.test[,1:8])

Структура тестовых данных аналогична обучающей,Поэтому я сделал [,1:8], чтобы выбрать только переменные предиктора.

Когда я выполнил последнюю команду, указанную выше, я получил следующее сообщение об ошибке:

Error in neurons[[i]] %*% weights[[i]] : argumentos não compatíveis

Есть идеи?

1 Ответ

0 голосов
/ 02 февраля 2019

Вы, похоже, не укомплектовали свою модель 8 предикторами - predictor02 и predictor08 отсутствуют в вашем neuranet().

Попробуйте явно сохранить только соответствующие предикторы, например:

myvars <- c('predictor01', 'predictor03', 'predictor04', 'predictor05', 'predictor06', 'predictor07')
test_result <- compute(mod.rn, df.test[myvars])

В качестве альтернативы, если вы по ошибке пропустили эти 2 предиктора, добавьте их обратно в определение neuralnet(), и ваш код должен работать как есть.

...