[英]ggadjustedcurves survminer Error in if (xi > xj) 1L else -1L
[英]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 。 出於顯而易見的原因,沒有為某個因素定義min
和max
。 您的因子( TX_TYPE
)無論如何都是一個常量,因此最簡單的方法是從一開始就將其從數據框中刪除。 如果您有任何需要包含在模型中的因素,則必須對它們進行編碼(即將它們轉換為數值),參見。 例如一種熱編碼。
df <- df %>% select(-TX_TYPE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.