Skip to content

Instantly share code, notes, and snippets.

@yusuf601
Created June 21, 2026 11:01
Show Gist options
  • Select an option

  • Save yusuf601/1922ba3f019c018cb85b4250a35f4190 to your computer and use it in GitHub Desktop.

Select an option

Save yusuf601/1922ba3f019c018cb85b4250a35f4190 to your computer and use it in GitHub Desktop.

Jika memang kewajibannya hanya boleh menggunakan algoritma klasifikasi SVM, maka kita tidak bisa menyentuh bagian model akhirnya. Namun, hasil ini masih jauh dari kata optimal.

Dalam Machine Learning klasik seperti SVM, pepatah yang berlaku adalah "Garbage In, Garbage Out" atau performa SVM sangat bergantung pada seberapa bagus fitur yang Anda berikan (bukan pada algoritma SVM itu sendiri).

Agar metode SVM di notebook tersebut mencapai titik optimal, Anda harus melakukan perombakan di tahap Ekstraksi Fitur (Feature Engineering). Berikut saran untuk memaksimalkan akurasinya:

1. Jangan Hanya GLCM (Gabungkan 3 Jenis Fitur Sekaligus)

GLCM hanya mengekstrak tekstur. Padahal, mata kita membedakan sampah organik dan anorganik dari 3 hal: Tekstur, Warna, dan Bentuk. Anda perlu menggabungkan ketiganya menjadi satu vektor fitur sebelum dimasukkan ke SVM ( Fitur_Total = [Fitur_Tekstur, Fitur_Warna, Fitur_Bentuk] ):

• Fitur Bentuk (Shape) -> Tambahkan HOG (Histogram of Oriented Gradients) Gunakan skimage.feature.hog . HOG sangat ampuh untuk membaca garis luar benda. Ini akan membantu SVM membedakan bentuk botol plastik/kardus kotak (anorganik) dengan dedaunan/sisa makanan yang bentuknya acak (organik). • Fitur Warna (Color) -> Tambahkan Color Histogram (HSV) Ubah gambar asli ke ruang warna HSV (Hue, Saturation, Value), lalu ambil distribusi warnanya menggunakan cv2.calcHist . Warna cokelat/hijau (organik) akan langsung terpisah tegas dari warna-warni plastik/logam (anorganik) oleh SVM.

2. Jangan Masukkan Background Putih ke Ekstraksi Fitur

Di kode saat ini, setelah background dihapus ( rembg ), background dijadikan putih. Jika Anda menghitung GLCM atau Histogram dari gambar yang 70% isinya warna putih, fitur objeknya akan "tertutup" oleh fitur background putihnya. Solusi: Buat masking dari background tersebut. Saat mengekstrak warna (histogram) atau menghitung rata-rata GLCM, pastikan kodenya hanya menghitung piksel yang bukan background.

3. Reduksi Dimensi dengan PCA

Jika Anda menggabungkan GLCM (12 fitur) + Histogram Warna (misal 50 fitur) + HOG (misal 500 fitur), jumlah fiturnya akan membengkak. Karena Anda memakai SVM, gunakan PCA (Principal Component Analysis) dari library sklearn.decomposition untuk memadatkan fitur tersebut (misalnya menjadi 50-100 fitur utama terbaik) sebelum dimasukkan ke GridSearchCV SVM. Ini mencegah SVM mengalami penurunan performa akibat terlalu banyak dimensi tak berguna (curse of dimensionality).

4. Tambahkan class_weight='balanced' di SVM

Pastikan di GridSearchCV SVM Anda menambahkan parameter pembobotan kelas, terutama jika jumlah gambar organik dan anorganik di dataset tidak sama persis.

Kesimpulan: Jika Anda hanya menambahkan HOG dan Color Histogram di samping GLCM, lalu menggabungkannya untuk dilatih oleh SVM, Anda kemungkinan besar bisa mendorong akurasinya naik menembus 90%-95%. Saat ini, hanya mengandalkan 12 fitur tekstur GLCM untuk mengenali seluruh jenis sampah adalah pendekatan yang under- fitting (terlalu sederhana).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment