Saya memiliki dataset yang saya coba prediksi variabel targetnya.
Col1 Col2 Col3 Col4 Col5
1 2 23 11 1
2 22 12 14 1
22 11 43 38 3
14 22 25 19 3
12 42 11 14 1
22 11 43 38 2
1 2 23 11 4
2 22 12 14 2
22 11 43 38 3
Saya telah memberikan data sampel, tetapi catatan saya memiliki ribuan catatan yang didistribusikan dengan cara yang sama. Di sini, Col1, Col2, Col3, Col4 adalah fitur saya dan Col5 adalah variabel target. Karenanya prediksi harus 1,2,3 atau 4 karena ini adalah nilai saya untuk variabel target. Saya telah mencoba menggunakan algoritme seperti hutan acak, pohon keputusan, dll. Untuk prediksi.
Di sini, jika Anda melihat, nilai 1,2 dan 3 lebih sering terjadi dibandingkan dengan 4. Oleh karena itu sambil memprediksi, model saya lebih condong ke arah 1 2 dan 3 sedangkan saya hanya mendapatkan sedikit prediksi untuk 4 (Hanya mendapat 1 prediksi untuk policy4 dari ribuan catatan ketika saya melihat matriks kebingungan).
Untuk membuat model saya digeneralisasi, saya menghapus persentase data yang sama yang memiliki nilai 1,2 dan 3 secara acak. Saya dikelompokkan berdasarkan setiap nilai dalam Col5 dan kemudian menghapus persentase tertentu, sehingga saya menurunkan jumlah catatan. Sekarang saya bisa melihat peningkatan tertentu dalam persentase akurasi dan juga peningkatan yang wajar dalam prediksi untuk nilai 4 dalam matriks kebingungan.
Apakah ini pendekatan yang tepat untuk ditangani (menghapus data secara acak dari kelompok-kelompok yang menjadi bias model)?
Saya mencoba untuk algoritma python in-built seperti Adaboost, teknik GradientBoost menggunakan sklearn. Saya membaca algoritma ini untuk menangani kelas ketidakseimbangan. Tapi saya tidak bisa berhasil meningkatkan akurasi saya, bukan dengan menghapus data secara acak, di mana saya bisa melihat beberapa perbaikan.
Apakah pengurangan ini adalah teknik undersampling dan apakah ini pendekatan yang tepat untuk pengambilan sampel yang kurang?
Apakah ada paket pra-didefinisikan dalam sklearn atau logika apa pun yang dapat saya terapkan dalam python untuk menyelesaikan ini, jika penghapusan acak saya salah?
Juga, saya belajar tentang teknik SMOTE, yang berhubungan dengan oversampling. Haruskah saya mencoba ini untuk nilai 4? Dan bisakah kita melakukan ini menggunakan paket bawaan dengan python? Akan lebih bagus jika seseorang membantu saya dalam situasi ini.