gpt4 book ai didi

r - SMOTE困难,矩阵上的下标数量不正确

转载 作者:行者123 更新时间:2023-12-03 07:51:53 27 4
gpt4 key购买 nike

谁能帮我解决这个错误。从我在网上阅读的内容中,我将类型更改为因数和数值,并估算出所有缺失的值,但似乎没有一个可行的方法。

> status<-df_status(train1)
variable q_zeros p_zeros q_na p_na q_inf p_inf type unique
1 Num 0 0.00 0 0 0 0 numeric 6146
2 Repaid 5610 91.28 0 0 0 0 factor 2
3 Score 0 0.00 0 0 0 0 factor 10
4 REGION 0 0.00 0 0 0 0 factor 8
5 Gender 0 0.00 0 0 0 0 factor 3
6 CUST_TITLE 0 0.00 0 0 0 0 factor 5
7 Age 0 0.00 0 0 0 0 factor 9
8 CUSTTYPE 0 0.00 0 0 0 0 factor 4
9 LOAN_TYPE 0 0.00 0 0 0 0 factor 3
10 EFFECTIVE_RATE 0 0.00 0 0 0 0 numeric 2582
11 Work.numberincluded 1282 20.86 0 0 0 0 factor 2
12 Number.of.contact.numbers 58 0.94 0 0 0 0 factor 4
13 Months_since_wirte_off 3 0.05 0 0 0 0 numeric 160
14 ORIG_WRITEOFF_AMT 1 0.02 0 0 0 0 numeric 6145
15 ACT_CAPITAL_BAL_WOFF 15 0.24 0 0 0 0 numeric 6129
16 CURR_OUTSTANDING.at.Purchase.date 0 0.00 0 0 0 0 numeric 6141
17 CURR_OUTSTAND_ACT_CAP_BAL 13 0.21 0 0 0 0 numeric 6132
18 LAST_PMT_RECVD_AMT 1684 27.40 0 0 0 0 numeric 1229
19 Months_since_last_payment 6 0.10 0 0 0 0 numeric 62
20 Total.credit.less.total.debit 921 14.99 0 0 0 0 numeric 4194
21 Months.since.repo 1315 21.40 0 0 0 0 numeric 150
22 Repoed 0 0.00 0 0 0 0 factor 2
23 PROCEEDS_AMT 1315 21.40 0 0 0 0 numeric 678
24 Manufactured.YEAR 0 0.00 0 0 0 0 numeric 26
25 Relatives.number.Provided 0 0.00 0 0 0 0 factor 2
26 MONTHS_TO_PRESCRIPTION 0 0.00 0 0 0 0 numeric 51
27 REASON_FOR_INTERRUPTION 0 0.00 0 0 0 0 factor 2
> is.factor(train1$Repaid)
[1] TRUE
> balanced.data <- SMOTE(Repaid ~., train1, perc.over = 4000, k = 5, perc.under = 100)
Error in T[, col] <- data[, col] :
incorrect number of subscripts on matrix
In addition: Warning messages:
1: In if (class(data[, col]) %in% c("factor", "character")) { :
the condition has length > 1 and only the first element will be used
2: In if (class(data[, col]) %in% c("factor", "character")) { :
the condition has length > 1 and only the first element will be used

最佳答案

我遇到了类似的问题,并且能够通过将数据集转换为数据框而不是小标题来解决此问题(不确定原因)。

smote_dataset <- as.data.frame(full_dataset)
smote_dataset$label <- as.factor(smote_dataset$label)
然后,我可以运行:
smote_round1 <-
DMwR::SMOTE(
form = label ~ .,
data = smote_dataset,
perc.over = 600,
perc.under = 100
)
我不确定您是否正在使用tidyverse/以小标题的形式进行广播,但这对我有用。

关于r - SMOTE困难,矩阵上的下标数量不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62658546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com