멀티 클래스 불균형 문제에 대한 SMOTE 오류 발생


10

SMOTE를 사용하여 멀티 클래스 분류 문제의 불균형을 수정하려고합니다. SMOTE 도움말 문서에 따라 SMOTE가 홍채 데이터 세트에서 완벽하게 작동하지만 유사한 데이터 세트에서는 작동하지 않습니다. 내 데이터 모양은 다음과 같습니다. 값이 1, 2, 3 인 3 개의 클래스가 있습니다.

> data
   looking risk every status
1        0    1     0      1
2        0    0     0      1
3        0    0     0      2
4        0    0     0      1
5        0    0     0      1
6        3    0     0      1
7        0    0     0      1
8        0    0     0      1
9        0    1     0      1
10       0    0     0      1
11       0    0     0      3
12       0    0     0      1
13       0    0     0      1
14       0    0     0      1
15       0    0     0      2

홍채와 같은 데이터 프레임의 형태입니다.

> class(data)
[1] "data.frame"

SMOTE를 사용하는 코드와 발생하는 오류는 다음과 같습니다.

> newData <- SMOTE(status ~ ., data, perc.over = 600,perc.under=100)
Error in scale.default(T, T[i, ], ranges) : subscript out of bounds
In addition: Warning messages:
1: In FUN(newX[, i], ...) :
  no non-missing arguments to max; returning -Inf
2: In FUN(newX[, i], ...) :
  no non-missing arguments to max; returning -Inf
3: In FUN(newX[, i], ...) :
  no non-missing arguments to max; returning -Inf
4: In FUN(newX[, i], ...) : no non-missing arguments to min; returning Inf
5: In FUN(newX[, i], ...) : no non-missing arguments to min; returning Inf
6: In FUN(newX[, i], ...) : no non-missing arguments to min; returning Inf

타겟 열 (예 : "상태")을 요소로 변환하여 아래에 @xing의 게시물을 답으로 표시해보십시오.
Greenish

답변:


13

비슷한 문제가 발생하여 클래스 값 (귀하의 경우 "상태")을 요인 유형으로 전송하여 문제를 해결했습니다. 사용 후 data$status=factor(data$status), newData다음과 같이 인쇄 :

     looking risk every status
7          0    0     0      1
2          0    0     0      1
7.1        0    0     0      1
12         0    0     0      1
4          0    0     0      1
12.1       0    0     0      1
11         0    0     0      3
8         NA   NA    NA      3
9         NA   NA    NA      3
10        NA   NA    NA      3
111       NA   NA    NA      3
121       NA   NA    NA      3
13        NA   NA    NA      3

오류가 없습니다!


그것은 SMOTE레이블이 팩터 인 경우에만 작동한다는 것은 문서 에서 언급되지 않은 것이 유감입니다 !
Pop

그게 나야 요인으로 변환하여 수정했습니다.
Greenish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.