Di milis sc-ina, mas Achmad Widodo (PKNU-Busan) mengemukakan masalah yang dihadapinya dalam memakai Support Vector Machine (SVM) untuk time-series prognosis. Saya kutip di sini tanggapan yg saya berikan, sebagai dokumentasi yang barangkali bermanfaat untuk yad. Kebetulan saat ini sedang menyiapkan materi e-tutorial SVM di milis indo-dm, jadi sekalian saja dimasukkan ke materi.
Point-point yang diperiksa jika SVM tidak berhasil mencapai performa yang memuaskan:
- Data Preprocessing
- Apakah sudah dicoba prediksi itu dengan melibatkan data sebelumnya pada interval tertentu ? Misalnya untuk memprediksi situasi saat waktu=t, model itu dilatih dengan input yang terdiri dari data pada waktu t-1, t-2,t-3,…. Saya dulu pernah membuat prediktor kemunculan kabut memakai neural network dari data hasil observasi kondisi cuaca. Datanya meliputi tekanan udara, kecepatan angin, bentuk awan, dsb. yang diamati tiap 30 menit. Untuk mendapatkan hasil yg baik saat itu saya masukkan juga data 30 menit, 60 & 90 menit sebelumnya, dst. dan dicari yg terbaik (paper1, paper2)
- Apakah memungkinkan jika dilakukan feature selection/extraction untuk mereduksi input yang tidak diperlukan ? Di studi yang saya lakukan mengenai analisa data interferon, SVM relatif lebih stabil terhadap keberadaan irrelevant features, dibandingkan dengan k-NN. Walau demikian, proses feature selection ini mungkin bisa membantu agar proses training SVM berlangsung efektif.
- Training
- Apakah sudah diselidiki kemungkinan pilihan fungsi Kernel & proses optimisasi parameternya kurang berhasil ?
Selama ini saya lebih sering memakai Gaussian Kernel, dan lakukan grid search terhadap dua parameter (sigma-nya Gaussian Kernel & nilai C pada SVM). Tetapi kalau datanya skala besar, mungkin bisa memakai strategi DOE (Design of Experiment). - Dari ulasan yg diberikan, mas Widodo memakai Hold-Out method untuk melakukan optimisasi parameter. Hold Out : membagi data menjadi dua: satu bagian untuk training dan satu bagian lagi untuk testing. Kalau parameter tuning dilakukan terhadap test-set, akan berakibat hasilnya kurang well-generalized. Kalau memungkinkan, ada baiknya dibagi 3 yang saling independen : training set, validation set dan test-set. Validation set dipakai untuk melakukan optimasi parameter.
- Salah satu hal yang mungkin bisa terjadi (walaupun ini jarang terjadi) adalah statistical characteristics (distribusi data) antara training set dan test-set berlainan. Akibatnya sejauh apapun parameter di optimize terhadap training set, hasilnya tidak akan bagus terhadap test-set. Ada baiknya dicoba mengubah pembagian datanya, untuk menghindari kemungkinan ini.
- Apakah sudah diselidiki kemungkinan pilihan fungsi Kernel & proses optimisasi parameternya kurang berhasil ?
- -
Referensi


