1 Pendahuluan

1.1 Latar Belakang

Kanker payudara merupakan salah satu jenis kanker yang paling banyak dialami oleh perempuan di dunia dan menjadi penyebab utama kematian akibat kanker. Deteksi dini sangat penting untuk meningkatkan peluang keberhasilan pengobatan dan menurunkan angka kematian akibat penyakit tersebut. Seiring perkembangan teknologi informasi, penerapan machine learning dalam bidang kesehatan semakin banyak digunakan untuk membantu proses diagnosis secara cepat dan akurat (Aamir et al., 2022).

Salah satu metode machine learning yang sering digunakan untuk permasalahan klasifikasi adalah Support Vector Machine (SVM). Metode ini bekerja dengan membentuk hyperplane optimal yang mampu memisahkan kelas-kelas data secara efektif sehingga memiliki kemampuan klasifikasi yang baik, terutama pada data berdimensi tinggi (Cortes & Vapnik, 1995). Dalam bidang kesehatan, SVM telah banyak diterapkan untuk membantu proses identifikasi dan prediksi berbagai penyakit, termasuk kanker payudara.

Pada penelitian ini digunakan Breast Cancer Wisconsin (Diagnostic) Dataset yang berisi karakteristik sel hasil pemeriksaan kanker payudara. Dataset ini memiliki dua kategori diagnosis, yaitu benign (jinak) dan malignant (ganas). Dengan memanfaatkan metode SVM, penelitian ini bertujuan membangun model klasifikasi yang mampu membedakan kedua kategori tersebut serta mengevaluasi kinerjanya menggunakan metrik accuracy, sensitivity, specificity, dan Area Under Curve (AUC) (Wolberg et al., 1992).

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan, rumusan masalah dalam penelitian ini adalah sebagai berikut:

  1. Bagaimana membangun model klasifikasi kanker payudara menggunakan metode Support Vector Machine (SVM)?
  2. Bagaimana kinerja model SVM dalam mengklasifikasikan diagnosis kanker payudara menjadi benign dan malignant?
  3. Bagaimana perbandingan performa kernel Linear dan kernel Radial Basis Function (RBF) pada metode SVM?

1.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah:

  1. Membangun model klasifikasi kanker payudara menggunakan metode Support Vector Machine (SVM).
  2. Mengevaluasi performa model menggunakan metrik accuracy, sensitivity, specificity, dan Area Under Curve (AUC).
  3. Membandingkan performa kernel Linear dan kernel Radial Basis Function (RBF) dalam proses klasifikasi kanker payudara.

2 Deskripsi Data

2.1 Sumber Data

Data yang digunakan dalam penelitian ini adalah Breast Cancer Wisconsin (Diagnostic) Dataset yang diperoleh dari UCI Machine Learning Repository. Dataset ini dikembangkan oleh Wolberg, Street, dan Mangasarian (1992) dan merupakan salah satu dataset yang banyak digunakan dalam penelitian machine learning untuk klasifikasi kanker payudara. Data diperoleh dari hasil analisis citra digital Fine Needle Aspirate (FNA) jaringan payudara yang digunakan untuk mengidentifikasi karakteristik sel yang berkaitan dengan diagnosis kanker.

2.2 Unit Observasi

Unit observasi pada dataset ini adalah hasil pemeriksaan sampel sel kanker payudara dari setiap pasien. Setiap observasi merepresentasikan satu sampel jaringan yang telah diekstraksi karakteristik morfologinya melalui proses pengolahan citra. Karakteristik tersebut digunakan sebagai dasar dalam menentukan apakah suatu sampel termasuk kategori tumor jinak (benign) atau tumor ganas (malignant).

2.3 Variabel Respon

Variabel respon yang digunakan dalam penelitian ini adalah diagnosis, yang menunjukkan status kanker payudara pada setiap sampel. Variabel ini terdiri atas dua kategori, yaitu:

Kategori Keterangan
B Benign (Tumor Jinak)
M Malignant (Tumor Ganas)

Variabel diagnosis menjadi target klasifikasi yang akan diprediksi menggunakan metode Support Vector Machine (SVM).

2.4 Variabel Prediktor

Dataset ini memiliki 30 variabel prediktor numerik yang menggambarkan karakteristik inti sel hasil pemeriksaan jaringan payudara. Variabel-variabel tersebut merupakan hasil pengukuran terhadap ukuran, bentuk, tekstur, dan karakteristik morfologi lainnya dari inti sel. Beberapa variabel yang digunakan antara lain radius, texture, perimeter, area, smoothness, compactness, concavity, concave points, symmetry, dan fractal dimension beserta nilai rata-rata, standar error, dan nilai terburuk (worst value) dari masing-masing karakteristik.

Karakteristik tersebut dipilih karena memiliki keterkaitan dengan perubahan struktur sel yang sering ditemukan pada kasus kanker payudara sehingga dapat digunakan sebagai dasar dalam proses klasifikasi.

2.5 Dimensi Data

Berdasarkan hasil eksplorasi data, dataset terdiri atas 569 observasi dan 31 variabel, yang mencakup 30 variabel prediktor dan 1 variabel respon. Jumlah observasi yang cukup memadai serta keberadaan variabel numerik yang beragam menjadikan dataset ini sesuai untuk diterapkan pada metode Support Vector Machine.

Ringkasan dimensi dataset disajikan pada Tabel berikut.

ringkasan <- data.frame(
  Keterangan = c(
    "Jumlah Observasi",
    "Jumlah Variabel Prediktor",
    "Jumlah Variabel Respon",
    "Jumlah Kelas"
  ),
  Nilai = c(
    nrow(data),
    ncol(data)-1,
    1,
    length(unique(data$diagnosis))
  )
)

knitr::kable(
  ringkasan,
  caption = "Ringkasan Dataset Breast Cancer Wisconsin"
)
Ringkasan Dataset Breast Cancer Wisconsin
Keterangan Nilai
Jumlah Observasi 569
Jumlah Variabel Prediktor 30
Jumlah Variabel Respon 1
Jumlah Kelas 2

Berdasarkan ringkasan tersebut, dataset memiliki dua kelas diagnosis, yaitu benign dan malignant, yang menjadi dasar dalam proses klasifikasi menggunakan metode Support Vector Machine

3 Prapemrosesan dan Exploratory Data Analysis (EDA)

3.1 Pemeriksaan Missing Value

Sebelum membangun model klasifikasi, dilakukan pemeriksaan terhadap keberadaan nilai hilang (missing value) pada setiap variabel. Keberadaan missing value dapat memengaruhi kualitas model dan menyebabkan bias pada hasil analisis. Oleh karena itu, identifikasi missing value menjadi tahap penting dalam proses prapemrosesan data.

colSums(is.na(data))
##               diagnosis             radius_mean            texture_mean 
##                       0                       0                       0 
##          perimeter_mean               area_mean         smoothness_mean 
##                       0                       0                       0 
##        compactness_mean          concavity_mean     concave.points_mean 
##                       0                       0                       0 
##           symmetry_mean  fractal_dimension_mean               radius_se 
##                       0                       0                       0 
##              texture_se            perimeter_se                 area_se 
##                       0                       0                       0 
##           smoothness_se          compactness_se            concavity_se 
##                       0                       0                       0 
##       concave.points_se             symmetry_se    fractal_dimension_se 
##                       0                       0                       0 
##            radius_worst           texture_worst         perimeter_worst 
##                       0                       0                       0 
##              area_worst        smoothness_worst       compactness_worst 
##                       0                       0                       0 
##         concavity_worst    concave.points_worst          symmetry_worst 
##                       0                       0                       0 
## fractal_dimension_worst 
##                       0

Hasil pemeriksaan menunjukkan bahwa seluruh variabel memiliki nilai missing value sebesar 0. Dengan demikian, tidak diperlukan proses penanganan data hilang seperti imputasi maupun penghapusan observasi.

3.2 Pembagian Data Latih dan Data Uji

Untuk mengevaluasi kemampuan generalisasi model, dataset dibagi menjadi dua bagian yaitu data latih (training set) dan data uji (testing set). Pada penelitian ini digunakan proporsi 80% data latih dan 20% data uji. Pembagian dilakukan menggunakan fungsi createDataPartition() dengan mempertahankan proporsi kelas pada kedua kelompok data.

set.seed(123) 
trainIndex <- createDataPartition( 
  data$diagnosis, 
  p = 0.8, 
  list = FALSE 
  ) 

train <- data[trainIndex, ] 
test <- data[-trainIndex, ] 
dim(train) 
## [1] 456  31
dim(test)
## [1] 113  31

Data latih digunakan untuk membangun model Support Vector Machine, sedangkan data uji digunakan untuk mengevaluasi performa model yang telah dibentuk.

3.3 Standardisasi Data

Support Vector Machine merupakan metode yang sensitif terhadap perbedaan skala antar variabel. Oleh karena itu, dilakukan proses standardisasi menggunakan metode centering dan scaling sehingga seluruh variabel numerik memiliki skala yang sebanding.

preProc <- preProcess( 
train[, -1], 
method = c("center","scale") 
) 
train_scaled <- train 
test_scaled <- test 

train_scaled[, -1] <- predict( 
  preProc, 
  train[, -1] 
  ) 

test_scaled[, -1] <- predict( 
  preProc, 
  test[, -1] 
  )

Proses standardisasi dilakukan hanya berdasarkan data latih untuk menghindari terjadinya data leakage pada tahap pemodelan.

3.4 Distribusi Diagnosis

Visualisasi distribusi kelas dilakukan untuk mengetahui proporsi data pada masing-masing kategori diagnosis.

ggplot( 
  data, 
  aes( 
    x = diagnosis, 
    fill = diagnosis 
    ) 
  ) + 
  geom_bar() + 
  labs( 
    title = "Distribusi Diagnosis", 
    x = "Diagnosis", 
    y = "Frekuensi" 
    ) + 
  theme_minimal()

Berdasarkan grafik distribusi diagnosis, jumlah kasus benign lebih banyak dibandingkan kasus malignant. Namun demikian, kedua kelas masih memiliki proporsi yang cukup baik sehingga model dapat dilatih tanpa memerlukan teknik penyeimbangan data tambahan.

3.5 Korelasi Antar Variabel

Analisis korelasi dilakukan untuk mengetahui hubungan antar variabel prediktor. Korelasi yang sangat tinggi antar variabel dapat mengindikasikan adanya redundansi informasi dalam data.

numeric_data <- data[, names(data) != "diagnosis"] 

corrplot( 
  cor(numeric_data), 
  method = "color", 
  tl.cex = 0.5 
)

Visualisasi korelasi menunjukkan bahwa beberapa variabel memiliki hubungan yang cukup kuat satu sama lain. Hal ini wajar karena variabel-variabel tersebut merupakan hasil pengukuran karakteristik yang berasal dari objek pengamatan yang sama, yaitu inti sel kanker payudara.

4 Metode Penelitian

4.1 Support Vector Machine (SVM)

Support Vector Machine (SVM) merupakan salah satu metode machine learning yang digunakan untuk menyelesaikan permasalahan klasifikasi. SVM bekerja dengan mencari hyperplane optimal yang mampu memisahkan dua kelas data dengan margin maksimum sehingga menghasilkan kemampuan generalisasi yang baik pada data baru (Cortes & Vapnik, 1995). Misalkan terdapat himpunan data pelatihan:

\[ D = {(x_i,y_i)}_{i=1}^{n} \] dengan:

\[(x_i)\] = vektor prediktor ke-(i) \[(y_i)\] = label kelas ke-(i)

Persamaan hyperplane pada SVM dinyatakan sebagai:

\[ w^T x + b = 0 \] dengan:

  1. = vektor bobot (weight)
  2. = vektor prediktor
  3. = bias

Tujuan utama SVM adalah mencari hyperplane optimal dengan memaksimalkan margin antar kelas melalui pendekatan Structural Risk Minimization (Vapnik, 1998). Permasalahan optimasi SVM dapat dituliskan sebagai:

\[ \min \frac{1}{2} ||w||^2 \]

dengan kendala:

\[ y_i(w^Tx_i+b)\ge1,\quad i=1,2,\ldots,n \]

Pada penelitian ini, metode SVM digunakan untuk mengklasifikasikan diagnosis kanker payudara ke dalam dua kategori, yaitu benign (jinak) dan malignant (ganas).

4.2 SVM Kernel Linear

Kernel linear merupakan kernel paling sederhana dalam metode SVM dan digunakan ketika data dapat dipisahkan secara linear pada ruang fitur asli (Cortes & Vapnik, 1995). Fungsi kernel linear dinyatakan sebagai:

\[ K(x_i,x_j)=x_i^Tx_j \]

Kernel linear menghitung hasil kali dalam (inner product) antara dua observasi tanpa melakukan transformasi ke ruang berdimensi yang lebih tinggi.

Model SVM linear dibangun menggunakan package e1071 dengan parameter kernel = “linear”.

svm_linear <- svm(
  diagnosis ~ .,
  data = train_scaled,
  kernel = "linear",
  probability = TRUE
)

pred_linear <- predict(
  svm_linear,
  test_scaled
)

cm_linear <- confusionMatrix(
  pred_linear,
  test_scaled$diagnosis
)

4.3 SVM Kernel Radial Basis Function (RBF)

Kernel Radial Basis Function (RBF) merupakan salah satu kernel yang paling banyak digunakan pada metode SVM karena mampu menangani hubungan nonlinier antar variabel dengan memetakan data ke ruang berdimensi lebih tinggi (Vapnik, 1998). Fungsi kernel RBF dinyatakan sebagai:

\[ K(x_i,x_j)= \exp(-\gamma ||x_i-x_j||^2) \]

dengan:

\[(\gamma)\] = parameter kernel \[(x_i,x_j) \]= dua observasi yang dibandingkan

Model SVM RBF dibangun menggunakan package e1071 dengan parameter kernel = “radial”.

svm_rbf <- svm(
  diagnosis ~ .,
  data = train_scaled,
  kernel = "radial",
  probability = TRUE
)

pred_rbf <- predict(
  svm_rbf,
  test_scaled
)

cm_rbf <- confusionMatrix(
  pred_rbf,
  test_scaled$diagnosis
)

4.4 Evaluasi Model

Performa model dievaluasi menggunakan confusion matrix yang terdiri atas True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN). Berdasarkan nilai-nilai tersebut dapat dihitung berbagai metrik evaluasi untuk menilai kemampuan model klasifikasi (Kuhn & Johnson, 2013).

Accuracy

Accuracy menunjukkan proporsi prediksi yang benar terhadap seluruh observasi.

\[ Accuracy= \frac{TP+TN} {TP+TN+FP+FN} \]

Sensitivity

Sensitivity menunjukkan kemampuan model dalam mengidentifikasi kelas positif secara benar.

\[ Sensitivity= \frac{TP} {TP+FN} \]

Specificity

Specificity menunjukkan kemampuan model dalam mengidentifikasi kelas negatif secara benar.

\[ Specificity= \frac{TN} {TN+FP} \]

Receiver Operating Characteristic (ROC)

ROC Curve digunakan untuk mengevaluasi kemampuan model dalam membedakan dua kelas diagnosis pada berbagai nilai ambang klasifikasi. Kurva ROC menggambarkan hubungan antara True Positive Rate dan False Positive Rate (Fawcett, 2006).

Area Under Curve (AUC)

AUC merupakan luas area di bawah kurva ROC yang digunakan untuk mengukur kemampuan diskriminasi model. Nilai AUC berada pada rentang:

\[ 0 \le AUC \le 1 \]

Semakin mendekati 1, maka kemampuan model dalam membedakan kelas positif dan negatif semakin baik (Fawcett, 2006).

5 Hasil dan Pembahasan

5.1 Hasil Klasifikasi Menggunakan SVM Kernel Linear

Model pertama yang dibangun dalam penelitian ini adalah Support Vector Machine dengan kernel linear. Model dilatih menggunakan data latih yang telah melalui proses standardisasi dan selanjutnya dievaluasi menggunakan data uji.

Hasil evaluasi model SVM kernel linear disajikan pada Tabel berikut.

hasil_linear <- data.frame(
  Metrik = c(
    "Accuracy",
    "Sensitivity",
    "Specificity",
    "AUC"
  ),
  Nilai = c(
    round(as.numeric(cm_linear$overall["Accuracy"]),4),
    round(as.numeric(cm_linear$byClass["Sensitivity"]),4),
    round(as.numeric(cm_linear$byClass["Specificity"]),4),
    round(as.numeric(auc(roc_linear)),4)
  )
)

knitr::kable(
  hasil_linear,
  caption = "Hasil Evaluasi SVM Kernel Linear"
)
Hasil Evaluasi SVM Kernel Linear
Metrik Nilai
Accuracy 0.9823
Sensitivity 0.9718
Specificity 1.0000
AUC 0.9953

Berdasarkan Tabel di atas, model SVM kernel linear mampu melakukan klasifikasi diagnosis kanker payudara dengan tingkat akurasi yang tinggi. Nilai sensitivity menunjukkan kemampuan model dalam mengidentifikasi kasus kanker ganas (malignant), sedangkan specificity menunjukkan kemampuan model dalam mengenali kasus kanker jinak (benign). Nilai AUC yang diperoleh menunjukkan bahwa model memiliki kemampuan diskriminasi yang baik dalam membedakan kedua kelas diagnosis (Fawcett, 2006).

plot( 
  roc_linear, 
      main = "ROC Curve SVM Kernel Linear" 
)

Kurva ROC menunjukkan hubungan antara True Positive Rate dan False Positive Rate pada berbagai nilai ambang klasifikasi. Semakin dekat kurva menuju sudut kiri atas, semakin baik performa model dalam membedakan kedua kelas diagnosis.

5.2 Hasil Klasifikasi Menggunakan SVM Kernel RBF

Model kedua yang digunakan adalah Support Vector Machine dengan kernel Radial Basis Function (RBF). Kernel ini digunakan untuk mengakomodasi kemungkinan hubungan nonlinier antar variabel prediktor.

Hasil evaluasi model SVM kernel RBF disajikan pada Tabel berikut.

hasil_rbf <- data.frame(
  Metrik = c(

    "Accuracy",
    "Sensitivity",
    "Specificity",
    "AUC"
  ),
  Nilai = c(
    round(as.numeric(cm_rbf$overall["Accuracy"]),4),
    round(as.numeric(cm_rbf$byClass["Sensitivity"]),4),
    round(as.numeric(cm_rbf$byClass["Specificity"]),4),
    round(as.numeric(auc(roc_rbf)),4)
  )
)

knitr::kable(
  hasil_rbf,
  caption = "Hasil Evaluasi SVM Kernel RBF"
)
Hasil Evaluasi SVM Kernel RBF
Metrik Nilai
Accuracy 0.9823
Sensitivity 0.9718
Specificity 1.0000
AUC 0.9997

Berdasarkan hasil evaluasi, model SVM kernel RBF menunjukkan kemampuan klasifikasi yang sangat baik. Penggunaan kernel RBF memungkinkan model membentuk batas keputusan yang lebih fleksibel sehingga mampu menangkap pola data yang tidak dapat dipisahkan secara linear (Vapnik, 1998).

plot(
  roc_rbf,
  main = "ROC Curve SVM Kernel RBF"
)

Kurva ROC pada model SVM kernel RBF menunjukkan kemampuan model dalam membedakan kelas diagnosis kanker payudara. Nilai AUC yang diperoleh digunakan sebagai indikator utama dalam menilai kemampuan diskriminasi model.

5.3 Perbandingan Performa Model

Metode Untuk menentukan model terbaik, dilakukan perbandingan antara SVM kernel linear dan SVM kernel RBF berdasarkan nilai Accuracy, Sensitivity, Specificity, dan AUC.

hasil <- data.frame(
  Model = c("SVM Linear","SVM RBF"),
  Accuracy = c(
    round(as.numeric(cm_linear$overall["Accuracy"]),4),
    round(as.numeric(cm_rbf$overall["Accuracy"]),4)
  ),
  Sensitivity = c(
    round(as.numeric(cm_linear$byClass["Sensitivity"]),4),
    round(as.numeric(cm_rbf$byClass["Sensitivity"]),4)
  ),
  Specificity = c(
    round(as.numeric(cm_linear$byClass["Specificity"]),4),
    round(as.numeric(cm_rbf$byClass["Specificity"]),4)
  ),
  AUC = c(
    round(as.numeric(auc(roc_linear)),4),
    round(as.numeric(auc(roc_rbf)),4)
  )
)

knitr::kable(
  hasil,
  caption = "Perbandingan Performa SVM Kernel Linear dan RBF"
)
Perbandingan Performa SVM Kernel Linear dan RBF
Model Accuracy Sensitivity Specificity AUC
SVM Linear 0.9823 0.9718 1 0.9953
SVM RBF 0.9823 0.9718 1 0.9997

Berdasarkan hasil perbandingan pada Tabel di atas, model dengan nilai Accuracy dan AUC tertinggi dipilih sebagai model terbaik. Nilai AUC digunakan sebagai indikator utama karena mampu menggambarkan kemampuan model dalam membedakan kelas positif dan negatif secara keseluruhan (Fawcett, 2006).

Apabila model SVM kernel RBF menghasilkan nilai Accuracy dan AUC yang lebih tinggi dibandingkan kernel linear, maka dapat disimpulkan bahwa hubungan antar variabel pada dataset cenderung bersifat nonlinier sehingga lebih sesuai dimodelkan menggunakan kernel RBF. Sebaliknya, apabila performa kedua model relatif sama, maka kernel linear dapat dipilih karena memiliki struktur model yang lebih sederhana dan lebih mudah diinterpretasikan.

6 Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, dapat disimpulkan bahwa model klasifikasi kanker payudara menggunakan metode Support Vector Machine (SVM) berhasil dibangun melalui tahapan prapemrosesan data, pembagian data latih dan data uji, standardisasi variabel, serta penerapan kernel Linear dan kernel Radial Basis Function (RBF). Model yang dibangun mampu memanfaatkan karakteristik sel pada Breast Cancer Wisconsin (Diagnostic) Dataset untuk membedakan diagnosis kanker payudara ke dalam kategori benign dan malignant.

Hasil evaluasi menunjukkan bahwa metode SVM memiliki performa yang baik dalam mengklasifikasikan diagnosis kanker payudara. Hal ini ditunjukkan oleh nilai Accuracy, Sensitivity, Specificity, dan Area Under Curve (AUC) yang tinggi sehingga model mampu mengidentifikasi kasus kanker payudara secara efektif. Dengan demikian, metode SVM dapat digunakan sebagai salah satu pendekatan machine learning yang potensial dalam membantu proses diagnosis kanker payudara.

Berdasarkan perbandingan performa model, diperoleh bahwa kernel yang menghasilkan nilai Accuracy dan AUC tertinggi merupakan model terbaik untuk klasifikasi kanker payudara pada penelitian ini. Oleh karena itu, kernel tersebut direkomendasikan untuk digunakan karena memiliki kemampuan yang lebih baik dalam membedakan kasus benign dan malignant dibandingkan kernel lainnya.

Secara keseluruhan, penelitian ini menunjukkan bahwa metode Support Vector Machine merupakan metode klasifikasi yang efektif untuk diagnosis kanker payudara dan mampu memberikan hasil prediksi yang akurat berdasarkan karakteristik sel yang diamati.

7 Daftar Pustaka

Aamir, S., Rahman, M., Khan, A., Ahmad, J., & Alenezi, F. (2022). Predicting breast cancer leveraging supervised machine learning techniques. Computational Intelligence and Neuroscience, 2022, 1–12.

Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3), 273–297.

Fawcett, T. (2006). An introduction to ROC analysis. Pattern Recognition Letters, 27(8), 861–874.

Kuhn, M., & Johnson, K. (2013). Applied predictive modeling. Springer.

Vapnik, V. N. (1998). Statistical learning theory. Wiley.

Wolberg, W. H., Street, W. N., & Mangasarian, O. L. (1992). Breast Cancer Wisconsin (Diagnostic) Dataset. UCI Machine Learning Repository.