簡體   English   中英

KERAS IN R: Error in Summary.factor (c(1L, 1L, 1L, 1L,1L, 1L, 1L, 1L,1L, 1L, 1L, 1L, : 'min' 對因子沒有意義

[英]KERAS IN R: Error in Summary.factor (c(1L, 1L, 1L, 1L,1L, 1L, 1L, 1L,1L, 1L, 1L, 1L, : 'min' not meaningful for factors

我想根據

https://blogs.rstudio.com/tensorflow/posts/2018-01-24-keras-fraud-autoencoder/具有以下數據:

TX_ID          SENDER_ACCOUNT_ID RECEIVER_ACCOUNT_ID     TX_TYPE           TX_AMOUNT          TIMESTAMP     
 Min.   :       1   Min.   :    0     Min.   :    0       TRANSFER:12476012   Min.   :       0   Min.   :  0.00  
 1st Qu.: 3119004   1st Qu.:25007     1st Qu.:23989                           1st Qu.:      21   1st Qu.: 49.00  
 Median : 6238006   Median :49936     Median :48825                           Median :     155   Median : 99.00  
 Mean   : 6238006   Mean   :49542     Mean   :49532                           Mean   :   22643   Mean   : 99.46  
 3rd Qu.: 9357009   3rd Qu.:75006     3rd Qu.:73955                           3rd Qu.:     448   3rd Qu.:149.00  
 Max.   :12476012   Max.   :99999     Max.   :99999                           Max.   :21474836   Max.   :199.00  
  IS_FRAUD           ALERT_ID       
 False:12458960   Min.   :  -1.000  
 True :   17052   1st Qu.:  -1.000  
                  Median :  -1.000  
                  Mean   :   1.894  
                  3rd Qu.:  -1.000  
                  Max.   :3999.000  
> 
> str(df)
'data.frame':   12476012 obs. of  8 variables:
 $ TX_ID              : int  1 2 3 4 5 6 7 8 9 10 ...
 $ SENDER_ACCOUNT_ID  : int  5942 86700 86700 86700 86700 86700 86700 86700 86700 86700 ...
 $ RECEIVER_ACCOUNT_ID: int  92982 43995 95516 83911 82801 10605 88864 25971 74981 42920 ...
 $ TX_TYPE            : Factor w/ 1 level "TRANSFER": 1 1 1 1 1 1 1 1 1 1 ...
 $ TX_AMOUNT          : num  517 198 198 198 198 ...
 $ TIMESTAMP          : int  0 0 0 0 0 0 0 0 0 0 ...
 $ IS_FRAUD           : Factor w/ 2 levels "False","True": 1 1 1 1 1 1 1 1 1 1 ...
 $ ALERT_ID           : int  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ..

執行此部分時出現錯誤:現在讓我們創建數據集的規范化版本。 我們還將我們的數據幀轉換為矩陣,因為這是 Keras 所期望的格式。

desc <- df_train %>% 
  select(-Class) %>% 
  get_desc()

x_train <- df_train %>%
  select(-Class) %>%
  normalization_minmax(desc) %>%
  as.matrix()

x_test <- df_test %>%
  select(-Class) %>%
  normalization_minmax(desc) %>%
  as.matrix()

我收到錯誤:

錯誤摘要.factor(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : 'min' 對因子沒有意義

我怎么解決這個問題?

帖子的興趣功能是:

get_desc <- function(x) {
  map(x, ~list(
    min = min(.x),
    max = max(.x),
    mean = mean(.x),
    sd = sd(.x)
  ))
} 

#' Given a dataset and normalization constants it will create a min-max normalized
#' version of the dataset.
normalization_minmax <- function(x, desc) {
  map2_dfc(x, desc, ~(.x - .y$min)/(.y$max - .y$min))
}

現在您嘗試將其應用於包含factor的 data.frame 。 出於顯而易見的原因,沒有為某個因素定義minmax 您的因子( TX_TYPE )無論如何都是一個常量,因此最簡單的方法是從一開始就將其從數據框中刪除。 如果您有任何需要包含在模型中的因素,則必須對它們進行編碼(即將它們轉換為數值),參見。 例如一種熱編碼

df <- df %>% select(-TX_TYPE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM