🍌Support Vector Regression
Pengantar konsep non-linear dengan SVT
Memahami Support Vector
Dalam statistik dan analisis data, "Support Vector" merujuk kepada konsep yang umumnya digunakan dalam berbagai konteks, termasuk regresi, pemisahan data, dan pemodelan statistik. Support Vector adalah titik-titik data yang memiliki peran penting dalam analisis atau pemodelan statistik. Mereka adalah titik-titik yang secara signifikan memengaruhi pemahaman kita tentang distribusi data, tren, atau pemisahan kelas.
Vector itu sendiri adalah sebuah titik data yang paling dekat dengan hyperplane dan yang mempengaruhi posisi hyperplane. Karena vektor-vektor ini mendukung hyperplane, maka disebut support vector sebagaiman ter-visualkan pada gambar berikut.

Konsep Maximum Margin
Margin adalah jarak antara support vector dari masing-masing kelas di sekitar hyperplane. Pada gambar dibawah, margin diilustrasikan dengan jarak antara 2 garis putus. Margin terbesar (max margin) dapat ditemukan dengan memaksimalkan nilai jarak antara hyperplane dan titik terdekatnya.
Dapat dilihat pada gambar bagian kanan memiliki margin lebih besar daripada gambar bagian kiri. Secara intuitif, margin yang lebih besar akan menghasilkan performa klasifikasi yang lebih baik.

Dalam berbagai konteks analisis data, Support Vectors menjadi sangat penting karena mereka membantu mengungkap informasi penting tentang data, membentuk dasar untuk model, dan dapat digunakan untuk pemahaman yang lebih dalam tentang distribusi data. Meskipun istilah ini sering dikaitkan dengan SVM, konsep Support Vector itu sendiri memiliki signifikansi yang lebih luas dalam analisis data. agar lebih mudah difahami mari kita gunakan analogi.
Analogi yang sering digunakan untuk memahami Support Vector adalah "garis pembatas pada lapangan sepak bola." Bayangkan Anda memiliki lapangan sepak bola yang digunakan untuk pertandingan antara dua tim, Tim A dan Tim B. Di tengah lapangan terdapat garis yang memisahkan lapangan menjadi dua bagian, sisi Tim A dan sisi Tim B.

Analogi ini dapat membantu dalam pemahaman Support Vector dengan penjelasan sebagai berikut:
Tim A dan Tim B: Anggap saja bahwa Tim A dan Tim B adalah dua kelas data yang ingin dipisahkan, seperti dalam masalah klasifikasi. Tim A mewakili satu kelas (misalnya, kelas positif), sementara Tim B mewakili kelas lain (misalnya, kelas negatif).
Garis Pembatas: Garis yang ada di tengah lapangan sepak bola adalah analogi untuk hyperplane dalam konteks Support Vector Machines. Hyperplane adalah batas keputusan yang memisahkan dua kelas. Jadi, garis ini mewakili hyperplane yang akan kita temukan dalam analisis data.
Support Vector: Sekarang, bayangkan bahwa beberapa pemain dari Tim A dan Tim B berdiri sangat dekat dengan garis pembatas ini. Mereka adalah pemain yang memiliki peran kunci dalam menentukan di mana garis pembatas seharusnya berada. Pemain-pemain ini adalah analogi untuk Support Vectors. Mereka adalah titik-titik data yang paling dekat dengan hyperplane dan memiliki pengaruh besar terhadap penentuan posisi hyperplane.
Margin: Margin yaitu jarak antara garis pembatas (hyperplane) dan Support Vectors, dapat dianggap sebagai lebar lapangan di sekitar garis pembatas. Margin yang lebih lebar menunjukkan tingkat kepercayaan yang lebih tinggi dalam pemisahan kelas, sedangkan margin yang lebih sempit menunjukkan tingkat ketidakpastian yang lebih besar.
Analogi ini menggambarkan bagaimana Support Vector digunakan dalam pemisahan data dan bagaimana mereka adalah titik-titik data yang memiliki peran penting dalam menentukan batas keputusan. Seperti halnya garis pembatas pada lapangan sepak bola, Support Vectors memainkan peran sentral dalam menentukan di mana hyperplane seharusnya ditempatkan untuk memisahkan dua kelas data dengan cara yang optimal.
Support Vector Regression (SVR)
Support Vector Regression (SVR) adalah salah satu teknik dalam pembelajaran mesin yang digunakan untuk melakukan regresi, yaitu memprediksi nilai numerik atau kontinu berdasarkan data pelatihan. SVR adalah varian dari Support Vector Machines (SVM) yang awalnya dikembangkan untuk klasifikasi, tetapi kemudian diperluas ke masalah regresi. Untuk lebih mudahnya mari kita awali dari penjelasan SVM melalui ilustrasi SVM dengan melihat gambar 3.7 di bawah ini:
Support Vector Machines (SVM)

Melalui gambar 3.8 di atas, kita dapat mengidentifikasi adanya 3 garis sejajar diagonal yang mengarah dari kiri bawah ke kanan atas. Mari kita bagi gambar ini menjadi 3 garis yang berperan penting dalam konsep ini:
Garis Paling Atas (Garis Putus-Putus): Garis ini adalah garis batas positif (+), yang berarti garis ini melewati atau melalui titik-titik data yang termasuk dalam kluster positif. Titik-titik data ini sering disebut sebagai "support vectors" dan menjadi titik-titik terluar dari kluster positif. Garis ini juga bertindak sebagai batas eksternal bagi kluster positif. Penting untuk dicatat bahwa jarak antara garis ini dan garis tengah harus tegak lurus atau bersifat "perpendicular."
Garis Tengah: Garis ini disebut sebagai "hyperplane" atau "separating plane/line." Garis ini bertindak sebagai pemisah antara dua zona (kluster positif dan negatif). Dalam konteks SVM, hyperplane ini berfungsi memisahkan dua kelompok data atau kluster, yang sering dinamakan sebagai kluster A dan B, 1 dan 2, dan sebagainya. Nama klasifikasi ini dapat disesuaikan, tetapi konvensi umum menggunakan tanda positif (+) dan negatif (-).
Garis Paling Bawah (Garis Putus-Putus): Garis ini adalah garis batas negatif (-), yang artinya garis ini melewati satu titik data yang termasuk dalam kluster negatif. Konsepnya serupa dengan garis batas positif.
Penting untuk diingat bahwa jarak antara garis paling atas dan garis tengah sama dengan jarak antara garis paling bawah dan garis tengah, dan jarak ini disebut sebagai epsilon (ε).
Inti dari gambar ini adalah bagaimana mencapai pembagian yang optimal dari dua zona (kluster) dengan memaksimalkan jarak epsilon (ε), sehingga tercapai pembagian yang paling optimal. Dalam pembagian yang optimal, semua titik data akan masuk ke salah satu dari dua zona ini dengan tingkat kepastian yang tinggi, dan jarak epsilon (ε) mencapai maksimum.
Jadi, SVM adalah tentang pembagian dataset menjadi dua zona dengan pembagian yang optimal, sementara SVR, sebaliknya, berfokus pada cara memasukkan semua dataset ke dalam satu zona dengan meminimalkan nilai epsilon (ε).
Untuk merangkum, dapat disimpulkan bahwa SVM bertujuan memisahkan dataset menjadi dua zona, sementara SVR bertujuan memasukkan semua dataset ke dalam satu zona sambil meminimalkan nilai epsilon (ε), dengan kata lain SVM membagi menjadi dua zona sedangkan SVR memasukkan semuanya menjadi satu zona.

Gambar diatas menggambarkan adanya sebuah hyperplane (garis diagonal di tengah) yang dikelilingi oleh dua garis batas, yaitu garis batas positif (+) dan garis batas negatif (-) yang telah dijelaskan sebelumnya. Pada gambar tersebut, juga terdapat (ε) yang mengukur jarak antara hyperplane dengan kedua garis batas tersebut. Poin-poin data yang dilingkari menunjukkan potensi support vectors, yaitu titik-titik data yang memiliki potensi untuk menjadi titik pembatas, sehingga semua data dapat dimasukkan ke dalam satu kluster dengan upaya meminimalkan nilai (ε). Oleh karena itu, gambar tersebut mencoba memvisualisasikan bahwa hyperplane seharusnya melewati sebanyak mungkin dari titik-titik data ini. Hasil visualisasi ini sering mirip dengan grafik regresi pada umumnya.
Berikut adalah langkah-langkah dalam menggunakan Support Vector Regression (SVR):
Menyiapkan Training Set:
Kita memulai dengan menyiapkan training set yang terdiri dari pasangan data input-output.
Training set ini direpresentasikan sebagai , di mana adalah input (fitur) dan adalah output (nilai yang ingin diprediksi).
Memilih Kernel dan Parameter serta Regularisasi:
Langkah selanjutnya adalah memilih jenis kernel yang sesuai (seperti linear, polinomial, atau radial basis function) dan mengatur parameter-parameter kernel tersebut.
Juga, kita perlu mempertimbangkan proses regularisasi untuk menghindari overfitting. Hal ini dapat dilakukan dengan mengatur parameter C.
Membuat Korelasi Matriks:
Dalam SVR, kita membuat matriks korelasi yang mengukur hubungan antara data-input dengan data-input lainnya.
Matriks korelasi ini memungkinkan kita untuk mengukur sejauh mana data-input berhubungan satu sama lain dalam ruang fitur yang diperluas.
Melatih Model untuk Mendapatkan Koefisien:
Selanjutnya, kita melatih model SVR menggunakan training set dan matriks korelasi yang telah dibuat.
Hasil dari pelatihan ini adalah koefisien , yang digunakan untuk menghasilkan model regresi.
Menggunakan Koefisien untuk Membuat Estimator:
Terakhir, kita menggunakan koefisien yang telah diperoleh untuk membuat estimator .
Estimator ini dapat digunakan untuk memprediksi nilai berdasarkan data-input baru .
Langkah-langkah ini mengilustrasikan proses umum dalam penggunaan SVR untuk pemodelan regresi. Setelah melalui langkah-langkah ini, kita dapat menggunakan model yang telah dilatih untuk memprediksi nilai numerik berdasarkan data-input yang diberikan.
Mungkin ada yang merasa bahwa langkah-langkah di atas terlalu rumit, terutama karena melibatkan kalkulasi vektor dan istilah kernel yang mungkin belum familiar. Namun, penting untuk diingat bahwa langkah-langkah ini akan lebih mudah dipahami saat diaplikasikan dalam kasus nyata. Selain itu, tidak semua istilah dan konsep ini harus dipahami dalam satu waktu. Semua ini akan lebih terasa konkret ketika diterapkan dalam pemecahan masalah praktis.
Berikut adalah beberapa poin penting sebagai kesimpulan tentang SVR:
Tujuan Regresi: Tujuan utama SVR adalah memprediksi nilai numerik atau kontinu, berbeda dengan SVM yang digunakan untuk klasifikasi (memisahkan data menjadi kelas-kelas).
Support Vector: Seperti pada SVM, dalam SVR juga terdapat Support Vector. Ini adalah titik-titik data yang paling dekat dengan garis (atau hyperplane) regresi. Mereka adalah titik-titik yang penting dalam menentukan posisi garis regresi.
Margin: SVR juga mempertimbangkan margin, tetapi konsep margin dalam SVR adalah "corridor" atau "pipa" (tube) yang mengelilingi garis regresi. Margin ini adalah rentang di mana model SVR berusaha untuk memasukkan sebagian besar titik data pelatihan. Semakin lebar margin, semakin besar toleransi terhadap kesalahan dalam prediksi.
Fungsi Kernel: Seperti dalam SVM, SVR dapat menggunakan fungsi kernel untuk memetakan data ke dalam ruang berdimensi tinggi, yang memungkinkan pemodelan hubungan yang lebih kompleks antara variabel independen dan variabel dependen.
Parameter C dan Epsilon: Dalam SVR, ada dua parameter penting yang harus diatur: C dan epsilon (ε). Parameter C mengontrol trade-off antara margin yang lebih lebar dan kesalahan pada data pelatihan. Parameter epsilon (ε) mengontrol lebar pipa (tube) dan memengaruhi toleransi terhadap kesalahan dalam prediksi.
Regresi Linier dan Non-Linier: SVR dapat digunakan baik untuk regresi linier maupun non-linier. Regresi linier adalah ketika garis regresi adalah garis lurus, sedangkan regresi non-linier memungkinkan model untuk menyesuaikan pola yang lebih kompleks.
Evaluasi: Evaluasi kinerja SVR biasanya menggunakan metrik seperti Mean Absolute Error (MAE), Mean Squared Error (MSE), atau Coefficient of Determination ((R^2)) untuk mengukur sejauh mana model cocok dengan data testing.
SVR sangat berguna dalam situasi di mana hubungan antara variabel independen dan variabel dependen tidak linier atau kompleks. Dengan memilih fungsi kernel yang sesuai dan menyesuaikan parameter C dan epsilon, SVR dapat digunakan untuk memodelkan berbagai jenis data regresi dengan tingkat akurasi yang tinggi.
Evaluasi Model SVR
Setelah Anda melatih model SVR, sangat penting untuk mengevaluasi seberapa baik model tersebut berperforma. Berikut adalah beberapa metrik evaluasi umum yang digunakan untuk model SVR:
Mean Absolute Error (MAE): MAE mengukur rata-rata dari selisih absolut antara nilai aktual dan nilai prediksi. Semakin rendah nilai MAE, semakin baik model SVR Anda. Rumusnya adalah:
Di sini, adalah nilai aktual, adalah nilai prediksi, dan adalah jumlah data poin.
Mean Squared Error (MSE): MSE mengukur rata-rata dari kuadrat selisih antara nilai aktual dan nilai prediksi. MSE memberikan "penalty" yang lebih besar pada error yang besar. Rumusnya adalah:
Seperti pada MAE, adalah nilai aktual, adalah nilai prediksi, dan adalah jumlah data poin.
Root Mean Squared Error (RMSE): RMSE adalah akar kuadrat dari MSE dan memberikan hasil dalam satuan yang sama dengan variabel target. Semakin kecil RMSE, semakin baik model Anda.
R-squared Score: R-squared mengukur seberapa baik variabilitas dalam data target dapat dijelaskan oleh model. Rentang skor R-squared antara 0 hingga 1, dan semakin mendekati 1, semakin baik model Anda dalam menjelaskan variasi data.
Nilai yang mendekati 1 menunjukkan bahwa model Anda sangat baik dalam menjelaskan variasi data.
Dengan mengukur berbagai metrik evaluasi ini, Anda dapat memahami sejauh mana model SVR Anda cocok dengan data target dan seberapa baik performanya dalam melakukan prediksi.
Last updated