Saya mencoba menggunakan SMOTE untuk memperbaiki ketidakseimbangan dalam masalah klasifikasi multi-kelas saya. Meskipun SMOTE bekerja dengan sempurna pada dataset iris sesuai dengan dokumen bantuan SMOTE, ia tidak bekerja pada dataset yang sama. Inilah tampilan data saya. Catatan itu memiliki tiga kelas dengan nilai 1, 2, 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
Itu dalam bentuk bingkai data, sama seperti iris:
> class(data)
[1] "data.frame"
Ini kode saya menggunakan SMOTE dan kesalahan yang dilemparnya:
> 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
coba konversi kolom target Anda (yaitu "status") menjadi faktor dan pertimbangkan untuk menandai posting @ xing di bawah ini sebagai jawabannya.
—
Hijau