Функция Scale возвращает: ошибка в FUN (x, aperm (массив (STATS, dims [perm]), order (perm)), ...) - PullRequest
1 голос
/ 25 июня 2019

Попытка обучить NeuralNet, но я не могу нормализовать свои данные.

Определение Max и Mins для масштабирования работает нормально.

 maxs <- apply(tour_weahter_data, 2, max) 
 mins <- apply(tour_weahter_data, 2, min)

Вот данные, которые я пытаюсь масштабировать:

head(tour_weahter_data)
Start Time Starting          Station ID Duration  Distance Temperatur Humidity
    1 2016-07-07 13:00:00                3063       12  578.7915         18       72
    2 2016-07-07 13:00:00                3040       10 1262.4654         18       72
    3 2016-07-07 13:00:00                3063       19 1660.0441         18       72
    4 2016-07-07 13:00:00                3018       10  907.1427         18       72
    5 2016-07-07 13:00:00                3076       10 1004.5161         18       72
    6 2016-07-07 13:00:00                3034        4  448.0982         18       72

Это вызов функции:

 scaled <- as.data.frame(scale(tour_weahter_data, center = mins, scale = maxs - mins))

Это сообщение об ошибке, которое я получаю:

Ошибка в FUN (x, aperm (массив (STATS, dims [perm]), order (perm)), ...): нечисловой аргумент бинарного оператора
Дополнительно: предупреждающее сообщение:
В scale.default (tour_weahter_data, center = mins, scale = maxs -: НС, введенные по принуждению

Есть ли проблема с моими данными или я неправильно использую функцию?

1 Ответ

1 голос
/ 25 июня 2019

Вы должны использовать scale с numeric переменными, поэтому вы должны использовать его только с числовыми переменными.

Вот подход, использующий dplyr.

library(dplyr)

vars_scale <- tour_weahter_data %>% 
  select_if(is.numeric) %>% 
  colnames()


scale_min_max <- function(x) scale(x, center = min(x), scale = max(x) - min(x))


tour_weahter_data %>% 
  mutate_at(vars_scale, scale_min_max)

## A tibble: 6 x 7
#  Start[,1] Time_Starting       Station_ID[,1] Duration[,1]
#      <dbl> <dttm>                       <dbl>        <dbl>
#1       0   2016-07-07 13:00:00          0.776        0.533
#2       0.2 2016-07-07 13:00:00          0.379        0.4  
#3       0.4 2016-07-07 13:00:00          0.776        1    
#4       0.6 2016-07-07 13:00:00          0            0.4  
#5       0.8 2016-07-07 13:00:00          1            0.4  
#6       1   2016-07-07 13:00:00          0.276        0    
## ... with 3 more variables: Distance[,1] <dbl>,
##   Temperatur[,1] <dbl>, Humidity[,1] <dbl>
...