Riefan Abdul Hakim (3338240020)
Program Studi Statistika
Fakultas Teknik
Universitas Sultan Ageng Tirtayasa
2025
Dengan menyebut nama Tuhan Yang Maha Esa, kami panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat, hidayah, dan inayah- Nya kepada kami, sehingga kami dapat tugas pengantar data sains mengenai analisis data iris menggunakan analisis sensitivitas. Adapun laporan analisis ini telah kami usahakan semaksimal mungkin dan tentunya dengan bantuan berbagai pihak, sehingga dapat memperlancar pembuatan laporan analisis ini. Untuk itu kami tidak lupa menyampaikan banyak terima kasih kepada pihak yang telah membantu kami dalam pembuatan laporan analisis ini. Namun tidak lepas dari semua itu, kami menyadari sepenuhnya bahwa ada kekurangan baik dari segi penyusun bahasanya maupun segi lainnya. Oleh karena itu dengan lapang dada dan tangan terbuka kami membuka selebar-lebarnya bagi pembaca yang ingin memberi saran dan kritik kepada kami sehingga kami dapat memperbaiki laporan analisis pengantar data sains ini. Akhirnya penyusun mengharapkan semoga dari laporan analisis ini kita dapat mengambil hikmah dan manfaatnya sehingga dapat memberikan inspirasi terhadap pembaca.
Laporan ini menyajikan analisis mendalam mengenai klasifikasi spesies bunga Iris (Iris setosa, Iris versicolor, dan Iris virginica) menggunakan algoritma Support Vector Machine (SVM) dengan kernel Radial Basis Function (RBF). Fokus utama penelitian ini adalah memvisualisasikan batas keputusan nonlinier (nonlinear decision boundaries) dan melakukan analisis sensitivitas terhadap hyperparameter model (\(C\) dan \(\gamma\)). Kami mengevaluasi bagaimana variasi parameter ini mempengaruhi fleksibilitas batas keputusan dan risiko overfitting atau underfitting. Hasil menunjukkan bahwa pemilihan parameter yang tepat sangat krusial dalam membentuk batas keputusan yang optimal pada ruang fitur dimensi rendah maupun tinggi.
Kata Kunci: Support Vector Machine (SVM), Kernel RBF, Analisis Sensitivitas, Batas Keputusan Nonlinier, Dataset Iris, Visualisasi Data.
Dataset Iris, atau sering dikenal sebagai Fisher’s Iris data set, adalah salah satu dataset multivariat tertua dan paling ikonik dalam literatur statistika dan pembelajaran mesin (machine learning). Diperkenalkan oleh ahli biologi dan statistik Inggris, Ronald Fisher, pada tahun 1936 dalam makalahnya yang berjudul “The use of multiple measurements in taxonomic problems”, dataset ini awalnya dikumpulkan oleh Edgar Anderson untuk mengukur variasi morfologi bunga iris dari tiga spesies terkait: Iris setosa, Iris versicolor, dan Iris virginica.
Dataset ini terdiri dari 150 sampel, dengan masing-masing 50 sampel untuk setiap spesies. Empat fitur numerik diukur dari setiap sampel: panjang dan lebar sepal (sepal length, sepal width) serta panjang dan lebar petal (petal length, petal width). Kesederhanaan namun kekayaan struktur dari dataset ini menjadikannya “batu ujian” standar untuk menguji algoritma klasifikasi baru.
Salah satu karakteristik menarik dari dataset Iris adalah sifat distribusinya di ruang fitur. Spesies Iris setosa diketahui memiliki karakteristik yang sangat berbeda dan dapat dipisahkan secara linier (linearly separable) dari dua spesies lainnya dengan akurasi sempurna menggunakan model sederhana. Namun, tantangan utama muncul ketika membedakan antara Iris versicolor dan Iris virginica. Kedua spesies ini memiliki distribusi fitur yang saling tumpang tindih (overlap) di ruang dimensi rendah.
Metode klasifikasi linier tradisional seringkali gagal mencapai akurasi maksimal pada pemisahan Versicolor dan Virginica karena batas keputusan yang optimal di antara keduanya bukanlah garis lurus (atau hyperplane datar), melainkan sebuah kurva yang kompleks. Oleh karena itu, diperlukan pendekatan nonlinier untuk menangkap pola distribusi yang rumit ini tanpa mengorbankan kemampuan generalisasi model.
Support Vector Machine (SVM) adalah algoritma supervised learning yang kuat, yang bekerja dengan prinsip memaksimalkan margin—jarak antara batas keputusan dan titik data terdekat dari setiap kelas. Keunggulan utama SVM terletak pada kemampuannya menangani data nonlinier melalui teknik yang disebut Kernel Trick.
Dalam penelitian ini, kami menggunakan kernel Radial Basis Function (RBF). Kernel RBF memungkinkan SVM untuk memproyeksikan data input ke dalam ruang fitur berdimensi tak hingga, di mana data yang awalnya saling tumpang tindih dapat dipisahkan dengan lebih mudah. Namun, kekuatan fleksibilitas kernel RBF datang dengan tantangan tersendiri: pemilihan hyperparameter.
Kualitas model SVM dengan kernel RBF sangat bergantung pada dua hyperparameter utama: \(C\) (biaya penalti kesalahan) dan \(\gamma\) (lebar kernel). * Nilai \(C\) mengontrol trade-off antara margin yang halus dan klasifikasi yang benar pada data latih. * Nilai \(\gamma\) menentukan seberapa jauh jangkauan pengaruh satu data latih tunggal.
Seringkali, praktisi data science hanya menggunakan parameter default tanpa memahami implikasi geometrisnya. Hal ini berisiko menyebabkan overfitting (model menghafal noise) atau underfitting (model gagal menangkap pola). Oleh karena itu, analisis sensitivitas—yaitu studi sistematis tentang bagaimana variasi dalam output model dapat dikaitkan dengan variasi input parameternya—menjadi sangat krusial. Laporan ini akan membedah secara visual bagaimana perubahan kecil pada parameter ini dapat mengubah topologi batas keputusan secara drastis.
Tujuan dari laporan analisis ini adalah:
Melakukan eksplorasi data visual (EDA) untuk memahami distribusi fitur.
Membangun model klasifikasi nonlinier menggunakan SVM Kernel RBF.
Melakukan Analisis Sensitivitas dengan memvariasikan hyperparameter untuk melihat perubahan topologi batas keputusan secara visual.
Mengevaluasi performa model menggunakan metrik statistik.
Support Vector Machine (SVM) adalah algoritma supervised learning yang berakar pada Statistical Learning Theory yang dikembangkan oleh Vapnik dan Chervonenkis. Tidak seperti algoritma probabilistik (seperti Naive Bayes), SVM adalah pengklasifikasi non-probabilistik yang bertujuan untuk menemukan hyperplane pemisah optimal dalam ruang fitur n-dimensi.
Konsep inti dari SVM adalah Maksimasi Margin. Margin didefinisikan sebagai jarak tegak lurus antara hyperplane keputusan dengan titik data terdekat dari setiap kelas. Titik-titik data terdekat yang menopang atau menentukan posisi hyperplane ini disebut sebagai Support Vectors.
Diberikan dataset pelatihan \(D = \{(x_i, y_i) | x_i \in \mathbb{R}^p, y_i \in \{-1, 1\}\}_{i=1}^n\). SVM mencari vektor bobot \(w\) dan bias \(b\) yang memenuhi pertidaksamaan:
\[ y_i (w^T x_i + b) \geq 1, \quad \forall i = 1, \dots, n \]
Jarak antara dua margin adalah \(\frac{2}{||w||}\). Oleh karena itu, untuk memaksimalkan margin, kita perlu meminimalkan norma \(||w||\). Masalah optimasinya adalah:
\[ \min_{w,b} \frac{1}{2} ||w||^2 \]
Pada data dunia nyata seperti Iris dataset, pemisahan linier sempurna seringkali tidak mungkin dilakukan karena adanya noise atau overlap kelas (khususnya antara Versicolor dan Virginica). Untuk mengatasi ini, Cortes dan Vapnik (1995) memperkenalkan variabel slack \(\xi_i \geq 0\) yang mengizinkan beberapa titik data berada di sisi margin yang salah.
Masalah optimasi berubah menjadi:
\[ \min_{w,b,\xi} \left( \frac{1}{2} ||w||^2 + C \sum_{i=1}^n \xi_i \right) \]
Dengan kendala: \[ y_i (w^T x_i + b) \geq 1 - \xi_i \]
Di sini, \(C\) (Cost) adalah hyperparameter regularisasi yang krusial: * \(C\) Besar: Memberikan penalti besar pada kesalahan (\(\xi_i\)). Model akan berusaha keras mengklasifikasikan semua data latih dengan benar. Risiko: Overfitting dan margin sempit. * \(C\) Kecil: Memberikan penalti kecil. Model lebih toleran terhadap kesalahan klasifikasi demi mendapatkan margin yang lebih lebar. Risiko: Underfitting (bias tinggi).
Ketika batas keputusan antar kelas sangat nonlinier, SVM menggunakan teknik yang disebut Kernel Trick. Ide dasarnya adalah memetakan data input dari ruang dimensi rendah (Input Space) ke ruang dimensi tinggi (Feature Space) menggunakan fungsi pemetaan \(\phi(x)\), di mana data diharapkan dapat dipisahkan secara linier.
Alih-alih menghitung transformasi \(\phi(x)\) secara eksplisit (yang mahal secara komputasi), kita menggunakan fungsi Kernel \(K(x, x')\) yang menghitung hasil kali titik (dot product) di ruang fitur:
\[ K(x_i, x_j) = \langle \phi(x_i), \phi(x_j) \rangle \]
Dalam penelitian ini, kernel yang digunakan adalah RBF (juga dikenal sebagai kernel Gaussian), yang didefinisikan sebagai:
\[ K(x, x') = \exp(-\gamma ||x - x'||^2) \]
Dimana \(\gamma > 0\) adalah parameter kernel. Parameter ini mengontrol lebar “lonceng” kurva Gaussian: * \(\gamma\) Besar: Varians kecil. Kurva Gaussian sangat sempit. Pengaruh satu sampel pelatihan hanya mencakup area yang sangat dekat. Ini menghasilkan batas keputusan yang sangat detail dan berlekuk-lekuk (complex model). * \(\gamma\) Kecil: Varians besar. Kurva Gaussian melebar. Pengaruh satu sampel pelatihan menyebar jauh. Ini menghasilkan batas keputusan yang lebih halus dan linier.
Untuk mengukur efektivitas model klasifikasi, digunakan Confusion Matrix. Dari matriks ini, kita menurunkan metrik berikut:
Dimana: * \(TP\): True Positive * \(TN\): True Negative * \(FP\): False Positive (Type I Error) * \(FN\): False Negative (Type II Error)
Dalam konteks dataset Iris yang seimbang (50 sampel per kelas), Akurasi adalah metrik yang cukup representatif, namun kita tetap akan memperhatikan matriks konfusi untuk melihat kesalahan spesifik antar spesies.
Sebelum menganalisis menggunakan bahasa pemrograman R. Beberapa package khusus digunakan untuk membantu dalam komputasi statistik dan visualisasi.
# Memuat package yang diperlukan
library(ggplot2) # Visualisasi grafis
library(caret) # Framework Machine Learning
library(e1071) # Algoritma SVM
library(dplyr) # Manipulasi Data
library(gridExtra) # Mengatur layout plot
library(RColorBrewer) # Manajemen warna
library(knitr) # Formatting tabel laporan
library(reshape2) # Transformasi bentuk data
library(kernlab) # kernel RBF
Berdasarkan output di atas, dataset terdiri dari 150 observasi dengan 5 variabel (4 fitur numerik dan 1 label kelas). Distribusi kelas menunjukkan keseimbangan sempurna (perfectly balanced), di mana setiap spesies (Setosa, Versicolor, dan Virginica) memiliki tepat 50 sampel. Hal ini merupakan kondisi ideal untuk pelatihan model SVM, sehingga teknik penyeimbangan data seperti Oversampling (SMOTE) atau Undersampling tidak diperlukan.
Data akan dimasukkan ke dalam algoritma pembelajaran mesin, serangkaian teknik pra-pemrosesan (preprocessing) diterapkan untuk meningkatkan kualitas input dan memastikan validitas model.
Algoritma Support Vector Machine (SVM) termasuk dalam kategori algoritma berbasis jarak (distance-based algorithms). SVM bekerja dengan mencari hyperplane yang memaksimalkan margin, di mana margin tersebut dihitung berdasarkan jarak Euclidean antar vektor fitur (titik data) di ruang multidimensi.
Jika fitur-fitur dalam dataset memiliki rentang skala yang berbeda secara signifikan (misalnya, satu fitur dalam satuan milimeter dan fitur lain dalam satuan meter), fitur dengan magnitudo nilai yang lebih besar akan mendominasi perhitungan jarak. Hal ini menyebabkan dua masalah utama: 1. Bias Model: Model akan menganggap fitur berskala besar lebih penting daripada fitur berskala kecil. 2. Konvergensi Lambat: Proses optimasi untuk menemukan minimum global akan memakan waktu lebih lama.
Meskipun fitur pada dataset Iris memiliki satuan yang sama (cm), varians antar fitur masih berbeda. Oleh karena itu, diterapkan teknik Standardisasi (Z-Score Normalization). Teknik ini mentransformasi data sehingga memiliki rata-rata (mean) 0 dan standar deviasi 1.
Secara matematis, untuk setiap nilai fitur \(x\), nilai terstandarisasi \(z\) dihitung sebagai:
\[ z = \frac{x - \mu}{\sigma} \]
Dimana: * \(x\) adalah nilai asli fitur. * \(\mu\) adalah rata-rata populasi dari fitur tersebut. * \(\sigma\) adalah standar deviasi populasi dari fitur tersebut.
(Catatan Teknis: Dalam implementasi kode nanti, proses scaling
ini akan diintegrasikan langsung ke dalam pipeline pelatihan menggunakan
parameter preProcess pada paket caret. Hal ini
dilakukan untuk mencegah kebocoran data (data leakage), yaitu kondisi di
mana statistik dari data uji secara tidak sengaja ikut terhitung dalam
proses scaling data latih.)
Untuk memvalidasi performa model secara objektif dan menguji kemampuan generalisasinya terhadap data baru (unseen data), dataset dibagi menjadi dua himpunan bagian yang saling lepas (mutually exclusive):
Kami menerapkan teknik Stratified Sampling (Pengambilan Sampel Berstrata). Berbeda dengan pengambilan sampel acak sederhana (simple random sampling), teknik ini menjamin bahwa proporsi setiap kelas pada data latih dan data uji tetap konsisten dengan proporsi pada data asli (yaitu 1/3 untuk masing-masing kelas).
# Mengatur seed untuk menjamin reproduktifitas hasil (reproducibility)
set.seed(42)
# Membuat indeks partisi data menggunakan Stratified Sampling
# p = 0.8 mengindikasikan 80% data untuk training
# list = FALSE agar output berupa matriks indeks, bukan list
trainIndex <- createDataPartition(y = iris$Species,
p = 0.8,
list = FALSE,
times = 1)
# Memisahkan data berdasarkan indeks yang telah dibuat
irisTrain <- iris[ trainIndex,]
irisTest <- iris[-trainIndex,]
# Verifikasi proporsi kelas pada data training
prop_train <- prop.table(table(irisTrain$Species))
print("Proporsi Kelas di Data Training (Verifikasi Stratified Sampling):")
## [1] "Proporsi Kelas di Data Training (Verifikasi Stratified Sampling):"
print(prop_train)
##
## setosa versicolor virginica
## 0.3333333 0.3333333 0.3333333
# Menampilkan dimensi data akhir
cat("Jumlah Data Training:", nrow(irisTrain), "baris\n")
## Jumlah Data Training: 120 baris
cat("Jumlah Data Testing :", nrow(irisTest), "baris\n")
## Jumlah Data Testing : 30 baris
Output menunjukkan bahwa proporsi kelas pada data training tetap terjaga (~33.3% per kelas). Ini memastikan model akan belajar mengenali ketiga spesies dengan bobot yang setara, tanpa bias terhadap kelas tertentu.
Pada bagian ini, kita akan memvisualisasikan bagaimana perubahan hyperparameter mempengaruhi topologi batas keputusan.
Dataset Iris memiliki 4 dimensi fitur. Karena kita tidak dapat memvisualisasikan hyperplane 4-dimensi secara langsung dalam media cetak 2-dimensi, untuk tujuan visualisasi batas keputusan di bagian ini, kita akan melatih model SVM menggunakan dua fitur paling diskriminatif saja, yaitu Petal Length dan Petal Width. (Evaluasi performa kuantitatif pada bab selanjutnya tetap akan menggunakan seluruh 4 fitur).
Untuk mempermudah simulasi, kita membangun fungsi
plot_decision_boundary. Fungsi ini bekerja dengan cara: 1.
Melatih model SVM pada data 2D. 2. Membuat grid titik-titik halus di
latar belakang. 3. Memprediksi kelas untuk setiap titik di grid. 4.
Memetakan area prediksi dan titik data asli.
# Fungsi kustom untuk memplot batas keputusan SVM
plot_decision_boundary <- function(data, cost_val, gamma_val, title_text) {
# 1. Melatih Model SVM Sederhana (Hanya untuk visualisasi 2D)
# Formula: Species diprediksi oleh Petal.Length dan Petal.Width
model <- svm(Species ~ Petal.Length + Petal.Width,
data = data,
kernel = "radial",
type = "C-classification",
cost = cost_val,
gamma = gamma_val)
# 2. Membuat Grid Background
# Membuat rentang nilai sedikit lebih lebar dari data asli
r1 <- seq(min(data$Petal.Length) - 0.5, max(data$Petal.Length) + 0.5, by = 0.05)
r2 <- seq(min(data$Petal.Width) - 0.5, max(data$Petal.Width) + 0.5, by = 0.05)
grid_set <- expand.grid(Petal.Length = r1, Petal.Width = r2)
# 3. Prediksi Kelas pada Grid
y_grid <- predict(model, grid_set)
# 4. Visualisasi Plot
ggplot() +
# Layer 1: Area Keputusan (Grid)
geom_tile(data = grid_set, aes(x = Petal.Length, y = Petal.Width, fill = y_grid), alpha = 0.3) +
# Layer 2: Data Asli (Points)
geom_point(data = data, aes(x = Petal.Length, y = Petal.Width, color = Species),
size = 2.5, shape = 19, alpha = 0.9) +
# Layer 3: Estetika
labs(title = title_text,
subtitle = paste("Parameter: Cost =", cost_val, "| Gamma =", gamma_val),
fill = "Area Prediksi",
color = "Observasi Asli",
x = "Petal Length (cm)",
y = "Petal Width (cm)") +
theme_minimal() +
theme(panel.border = element_rect(colour = "black", fill=NA, size=1),
legend.position = "bottom") +
scale_fill_brewer(palette = "Set2") +
scale_color_brewer(palette = "Dark2")
}
Parameter Gamma (\(\gamma\)) pada kernel Radial Basis Function (RBF) memegang peranan vital dalam menentukan bentuk topologi batas keputusan. Secara intuitif, \(\gamma\) mendefinisikan seberapa jauh jangkauan pengaruh dari satu contoh pelatihan tunggal.
Hubungan matematisnya sering digambarkan sebagai invers dari standar deviasi pada distribusi Gaussian: \[\gamma = \frac{1}{2\sigma^2}\]
Dalam simulasi ini, kita akan menetapkan nilai Cost tetap pada level moderat (\(C = 1\)) dan memvariasikan nilai \(\gamma\) secara bertahap.
Pada skenario pertama, kita menggunakan nilai \(\gamma\) yang sangat rendah. Ini memaksa model untuk mengambil pandangan “global” terhadap data, mengabaikan variasi lokal yang kecil.
plot_decision_boundary(data = iris,
cost_val = 1,
gamma_val = 0.1,
title_text = "Sensitivitas Gamma: Nilai Rendah (0.1)")
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Batas keputusan yang dihasilkan terlihat sangat halus dan sederhana,
hampir menyerupai garis lurus atau lengkungan landai. Meskipun model ini
berhasil memisahkan Setosa dengan sempurna, ia mungkin terlalu kaku
untuk menangkap nuansa perbatasan yang rumit antara Versicolor dan
Virginica. Ini adalah indikasi model dengan bias tinggi (potensi
underfitting).
Selanjutnya, kita meningkatkan nilai \(\gamma\) menjadi 10. Radius pengaruh setiap support vector kini menyempit, artinya pengaruh satu titik data menjadi lebih terlokalisasi. Model mulai lebih memperhatikan detail variasi data lokal dibandingkan struktur global.
plot_decision_boundary(data = iris,
cost_val = 1,
gamma_val = 10,
title_text = "Sensitivitas Gamma: Nilai Tinggi (10)")
Perubahan drastis terlihat pada topologi batas keputusan dibandingkan
dengan \(\gamma\) rendah. Garis
pembatas kini mulai berlekuk-lekuk, mencoba mengikuti kontur spesifik
dari persebaran data.
Skenario terakhir untuk parameter gamma adalah pengujian stres (stress test) dengan menggunakan nilai yang sangat ekstrem, yaitu \(\gamma = 100\). Ini mensimulasikan kondisi di mana model menjadi hipersensitif terhadap data latih. Secara matematis, radius pengaruh kernel Gaussian menjadi sangat sempit, sehingga model hanya melihat area lokal yang sangat kecil di sekitar setiap titik data.
plot_decision_boundary(data = iris,
cost_val = 1,
gamma_val = 100,
title_text = "Sensitivitas Gamma: ekstrem (100) - Overfitting")
Batas keputusan tidak lagi berupa garis kontinu yang logis dan halus.
Sebaliknya, wilayah keputusan terpecah menjadi “pulau-pulau”
(islands) atau “gelembung” kecil yang terisolasi. Ini terjadi
karena model berusaha melingkupi setiap titik data individual dengan
radius pengaruh (\(\gamma\)) yang
sangat sempit.
Setelah memahami perilaku geometris dari hyperparameter melalui visualisasi 2D pada bab sebelumnya, tahap selanjutnya adalah membangun model klasifikasi final yang kuat. Pada tahap ini, kita akan menggunakan seluruh dimensi fitur (Sepal Length, Sepal Width, Petal Length, Petal Width) untuk memaksimalkan informasi yang tersedia.
Untuk menjamin validitas statistik dan menghindari bias, evaluasi model dilakukan menggunakan teknik 10-Fold Cross-Validation yang dikombinasikan dengan Grid Search untuk menemukan parameter optimal secara otomatis.
Kita tidak akan menebak parameter secara manual. Sebaliknya, kita
mendefinisikan ruang pencarian (search space) untuk kombinasi
\(C\) dan \(\sigma\) (di mana \(\sigma\) dalam paket caret
berkorelasi dengan \(\gamma\)).
Algoritma akan menguji setiap kombinasi pada 10 lipatan data yang
berbeda.
# 1. Menentukan Kontrol Pelatihan: 10-fold Cross Validation
trctrl <- trainControl(method = "cv",
number = 10,
savePredictions = "final")
# 2. Membuat Grid Parameter
# Kita menguji rentang C dari kecil ke besar
# Dan Sigma (Gamma) dari sangat halus ke sangat tajam
grid <- expand.grid(C = c(0.1, 0.5, 1, 10, 50, 100),
sigma = c(0.01, 0.05, 0.1, 0.5, 1))
# 3. Melatih Model (Training)
set.seed(123) # Untuk reproduktifitas
svm_tune <- train(Species ~.,
data = irisTrain,
method = "svmRadial",
trControl = trctrl,
preProcess = c("center", "scale"), # Standardisasi otomatis
tuneGrid = grid)
# 4. Menampilkan Parameter Terbaik
print("Model Terbaik Hasil Tuning:")
## [1] "Model Terbaik Hasil Tuning:"
print(svm_tune$bestTune)
## sigma C
## 14 0.5 1
Grafik di bawah ini memvisualisasikan hasil dari proses Grid Search. Grafik ini menunjukkan hubungan antara parameter biaya (Cost) pada sumbu X, estimasi performa akurasi (Accuracy) pada sumbu Y, dan parameter kernel (Sigma/Gamma) yang diwakili oleh garis berwarna berbeda.
Visualisasi ini membantu kita memahami trade-off bias-varians: * Di sisi kiri (Cost rendah), akurasi mungkin lebih rendah karena underfitting. * Di titik puncak, kita menemukan keseimbangan optimal. * Di sisi kanan (Cost tinggi), akurasi mungkin stagnan atau menurun jika terjadi overfitting.
# Memvisualisasikan objek hasil training caret
# Grafik ini otomatis memplot Akurasi vs Cost untuk setiap nilai Sigma
plot(svm_tune,
main = "Profil Akurasi Cross-Validation: Cost vs Sigma",
xlab = "Cost (Parameter Regularisasi)",
ylab = "Akurasi (Cross-Validation)")
Berdasarkan laporan analisis mengenai visualisasi batas keputusan nonlinier pada data Iris menggunakan analisis sensitivitas, dapat disimpulkan bahwa Dataset Iris membutuhkan pemisahan nonlinier, khususnya untuk membedakan spesies Versicolor dan Virginica. EDA menunjukkan tumpang tindih signifikan pada fitur Sepal, namun fitur Petal memberikan daya diskriminasi yang lebih baik. Peran Hyperparameter pada Parameter Gamma (\(\gamma\)) Memiliki dampak visual paling drastis terhadap bentuk batas keputusan.
\(\gamma\) Rendah: Menghasilkan batas keputusan yang terlalu sederhana (potensi underfitting).
\(\gamma\) Tinggi: Menyebabkan fragmentasi batas keputusan (overfitting parah), di mana model menangkap noise alih-alih pola data.
Pada Parameter Cost (\(C\)), Nilai
\(C\) yang tinggi meningkatkan kekakuan
model terhadap data latih, mengurangi toleransi kesalahan, namun
berisiko mengurangi kemampuan generalisasi pada data baru jika terlalu
tinggi.Kinerja Model: Melalui tuning otomatis menggunakan Grid Search
dan 10-Fold Cross-Validation, ditemukan kombinasi parameter optimal
(misalnya, \(C=1\) dan \(\sigma=0.5\)) yang memberikan akurasi
tinggi (>93%) pada data uji. Untuk Efektivitas SVM Kernel RBF,
Algoritma SVM dengan kernel RBF terbukti efektif dan robust untuk
dataset berukuran kecil hingga menengah dengan fitur yang kompleks,
seperti pada kasus Data Iris ini.
Fisher, R. A. (1936). The use of multiple measurements in taxonomic problems. *Annals of Eugenics*, 7(2), 179–188. https://doi.org/10.1111/j.1469-1809.1936.tb02137.x
Anderson, E. (1935). The irises of the Gaspe Peninsula. *Bulletin of the American Iris Society*, 59, 2–5.
Cortes, C., & Vapnik, V. (1995). Support-vector networks. *Machine Learning*, 20(3), 273–297. https://doi.org/10.1007/BF00994018
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). *An Introduction to Statistical Learning: with Applications in R*. Springer New York.
Kuhn, M. (2008). Building Predictive Models in R Using the caret Package. *Journal of Statistical Software*, 28(5), 1–26.