Perkembangan teknologi informasi mendorong penggunaan metode pembelajaran mesin untuk menganalisis data dan menghasilkan prediksi. Salah satu metode klasifikasi yang dapat digunakan adalah K-Nearest Neighbors (K-NN). K-NN merupakan metode supervised learning nonparametrik yang mengklasifikasikan suatu observasi berdasarkan kelas mayoritas dari sejumlah tetangga terdekat pada data latih. K-NN termasuk pendekatan instance-based learning atau lazy learning karena proses prediksi dilakukan dengan membandingkan observasi baru terhadap data yang telah tersedia, bukan dengan membentuk model parametrik terlebih dahulu (Kubat, 2021; Halder et al., 2024).
Kinerja K-NN dipengaruhi oleh pemilihan jumlah tetangga terdekat atau nilai \(k\), serta ukuran jarak yang digunakan. Nilai \(k\) yang terlalu kecil dapat menyebabkan model sensitif terhadap derau, sedangkan nilai \(k\) yang terlalu besar dapat menghasilkan batas keputusan yang terlalu halus dan berisiko mengabaikan pola lokal. Selain itu, karena K-NN menggunakan perhitungan jarak, penskalaan fitur diperlukan agar variabel dengan rentang nilai besar tidak mendominasi perhitungan jarak. Penelitian terbaru menunjukkan bahwa metode normalisasi dan metrik jarak dapat memengaruhi kinerja klasifikasi K-NN (Halder et al., 2024; Yusran et al., 2025).
Pada praktikum ini dilakukan klasifikasi data medis menggunakan
Wisconsin Breast Cancer Database yang tersedia pada paket
mlbench. Variabel respons Class digunakan
untuk mengelompokkan tumor ke dalam kelas jinak (benign) atau
ganas (malignant). Dataset Wisconsin Breast Cancer juga
digunakan dalam penelitian klasifikasi dan diagnosis kanker payudara
dengan pendekatan pembelajaran mesin (Manir dan Deshpande, 2024).
Pemodelan dilakukan dengan membandingkan nilai \(k\) sebesar 3, 5, 7, 9, dan 11. Karena NPM
praktikan adalah 20 (genap), data dibagi menjadi 80% data latih dan 20%
data uji dengan inisialisasi set.seed(12320). Kinerja model
dibandingkan menggunakan accuracy, sensitivity, dan
specificity, dengan perhatian khusus pada kesalahan false
negative dalam mendeteksi tumor ganas.
Berdasarkan tujuan praktikum tersebut, rumusan masalah yang dibahas adalah sebagai berikut:
Bagaimana konsep fundamental, formulasi matematis, dan prinsip kerja algoritma K-Nearest Neighbors (K-NN) sebagai metode non-parametric supervised learning?
Bagaimana pentingnya penerapan feature scaling dalam perhitungan jarak pada algoritma K-NN?
Bagaimana implementasi algoritma K-NN menggunakan bahasa
pemrograman R dengan pustaka class dan
caret?
Bagaimana hasil evaluasi performa model klasifikasi K-NN berdasarkan Confusion Matrix, Accuracy, Sensitivity, Specificity, dan Positive Predictive Value?
Bagaimana menentukan nilai k yang optimal melalui
hyperparameter tuning dan bagaimana visualisasi hubungan nilai
k terhadap performa model menggunakan paket
ggplot2?
Tujuan dari praktikum algoritma K-Nearest Neighbors (K-NN) adalah sebagai berikut:
Memahami konsep fundamental, formulasi matematis, dan prinsip kerja algoritma K-Nearest Neighbors (K-NN) sebagai metode non-parametric supervised learning.
Memahami pentingnya penskalaan fitur (feature scaling) dalam komputasi berbasis metrik jarak (distance metrics).
Mengimplementasikan algoritma K-NN secara terstruktur
dan mandiri menggunakan bahasa pemrograman R dengan pustaka
class dan caret.
Mengevaluasi performa model klasifikasi menggunakan Confusion Matrix, Akurasi (Accuracy), Sensitivitas (Sensitivity), Spesifisitas (Specificity), dan Nilai Prediksi Positif (Positive Predictive Value).
Melakukan eksplorasi optimasi hiperparameter nilai k
(hyperparameter tuning) serta memvisualisasikan kurva
performanya menggunakan paket ggplot2.
K-Nearest Neighbors (K-NN) merupakan algoritma klasifikasi nonparametrik yang termasuk dalam kelompok instance-based learning atau lazy learning. Algoritma ini mengklasifikasikan suatu observasi berdasarkan kelas mayoritas dari \(k\) observasi pada data latih yang memiliki jarak paling dekat dengan observasi tersebut. Dengan demikian, proses pembentukan model tidak menghasilkan persamaan parametrik, tetapi menggunakan data latih sebagai acuan ketika terdapat data baru yang akan diprediksi (Kubat, 2021; Halder et al., 2024).
Secara umum, untuk suatu observasi baru, algoritma menghitung jarak terhadap seluruh observasi pada data latih. Selanjutnya, dipilih sebanyak \(k\) observasi dengan jarak terkecil. Kelas hasil prediksi ditentukan melalui mekanisme majority voting, yaitu kelas yang paling banyak muncul di antara tetangga terdekat. Prinsip tersebut membuat hasil klasifikasi K-NN bergantung pada nilai \(k\), ukuran jarak, dan kualitas data yang digunakan.
Metrik jarak digunakan untuk mengukur kedekatan antara dua observasi berdasarkan nilai variabel prediktor. Salah satu ukuran jarak yang umum digunakan pada K-NN adalah jarak Euclidean. Untuk dua observasi \(x\) dan \(y\) dengan \(p\) variabel, jarak Euclidean dirumuskan sebagai:
\[ d(x,y)=\sqrt{\sum_{j=1}^{p}(x_j-y_j)^2} \]
Semakin kecil nilai jarak antara dua observasi, semakin dekat
karakteristik kedua observasi tersebut. Pada praktikum ini digunakan
jarak Euclidean melalui fungsi knn() dari paket
class. Jarak Euclidean merupakan salah satu metrik yang
umum digunakan pada K-NN, meskipun pemilihan metrik jarak yang sesuai
tetap bergantung pada karakteristik data (Halder et al., 2024; Yusran et
al., 2025). Oleh karena itu, seluruh variabel prediktor numerik perlu
dipersiapkan dalam skala yang sebanding sebelum perhitungan jarak
dilakukan.
Penskalaan fitur (feature scaling) merupakan proses mengubah rentang nilai variabel agar perbedaan skala antarvariabel tidak mendominasi perhitungan jarak. Tahapan ini penting pada K-NN karena kedekatan antarobservasi ditentukan berdasarkan ukuran jarak pada seluruh prediktor. Penelitian Niño-Adan et al. (2022) serta Yusran et al. (2025) menunjukkan bahwa pemilihan metode normalisasi dapat memengaruhi hasil klasifikasi K-NN. Salah satu teknik yang dapat digunakan adalah normalisasi Min-Max, yang mengubah nilai data ke dalam rentang 0 sampai 1. Rumus normalisasi Min-Max adalah:
\[ x_{\text{scaled}}=\frac{x-x_{\min}}{x_{\max}-x_{\min}} \]
Nilai minimum dan maksimum untuk setiap prediktor dihitung berdasarkan data latih. Nilai tersebut kemudian digunakan kembali untuk mentransformasikan data uji. Cara ini dilakukan agar informasi dari data uji tidak digunakan dalam proses pra-pemrosesan data latih. Apabila suatu prediktor memiliki nilai minimum dan maksimum yang sama, nilai hasil transformasinya ditetapkan menjadi nol.
Nilai \(k\) menunjukkan banyaknya tetangga terdekat yang dipertimbangkan dalam menentukan kelas suatu observasi. Nilai \(k\) yang kecil dapat menghasilkan model yang lebih fleksibel, tetapi sensitif terhadap pencilan dan derau. Sebaliknya, nilai \(k\) yang besar cenderung menghasilkan keputusan yang lebih halus dan berpotensi menyebabkan underfitting. Oleh karena itu, pemilihan nilai \(k\) perlu mempertimbangkan karakteristik data dan hasil evaluasi model (Kubat, 2021; Halder et al., 2024).
Pemilihan nilai \(k\) perlu dilakukan dengan membandingkan kinerja beberapa nilai yang berbeda. Pada praktikum ini digunakan \(k \in \{3,5,7,9,11\}\). Seluruh nilai \(k\) diuji menggunakan pembagian data latih dan data uji yang sama sehingga hasil evaluasi dapat dibandingkan secara konsisten.
Evaluasi model dilakukan menggunakan confusion matrix yang membandingkan kelas aktual dengan kelas hasil prediksi. Dalam klasifikasi ini, kelas malignant ditetapkan sebagai kelas positif, sedangkan kelas benign sebagai kelas negatif. Komponen confusion matrix terdiri atas true positive (TP), true negative (TN), false positive (FP), dan false negative (FN).
Metrik evaluasi yang digunakan adalah:
\[ Accuracy=\frac{TP+TN}{TP+TN+FP+FN} \]
\[ Sensitivity=\frac{TP}{TP+FN} \]
\[ Specificity=\frac{TN}{TN+FP} \]
Pada konteks deteksi tumor ganas, false negative merupakan kondisi ketika observasi yang sebenarnya malignant diprediksi sebagai benign. Kesalahan tersebut perlu mendapat perhatian karena dapat menyebabkan kasus tumor ganas tidak teridentifikasi oleh model. Penelitian Manir dan Deshpande (2024) menunjukkan penggunaan metrik evaluasi seperti accuracy, sensitivity, specificity, dan precision dalam analisis klasifikasi kanker payudara. Oleh sebab itu, pemilihan model dalam praktikum ini tidak hanya mempertimbangkan accuracy, tetapi juga sensitivity dan jumlah false negative.
Data yang digunakan dalam praktikum ini adalah Wisconsin Breast
Cancer Database yang dimuat melalui paket mlbench pada
perangkat lunak R. Dataset tersebut berisi hasil pengamatan
karakteristik sel yang digunakan untuk mengklasifikasikan tumor payudara
ke dalam dua kelas, yaitu benign dan malignant.
Variabel Class digunakan sebagai variabel respons,
sedangkan variabel karakteristik sel digunakan sebagai prediktor.
Variabel Id tidak digunakan karena hanya berfungsi sebagai
identitas observasi.
Pemodelan dilakukan menggunakan algoritma K-NN dengan lima variasi
nilai \(k\), yaitu 3, 5, 7, 9, dan 11.
Berdasarkan NPM 20 yang termasuk NPM genap, pembagian data dilakukan
dengan proporsi 80% data latih dan 20% data uji. Inisialisasi bilangan
acak menggunakan set.seed(12320) agar pembagian data dapat
direproduksi.
| Komponen | Keterangan |
|---|---|
| Dataset | Wisconsin Breast Cancer Database |
| Variabel respons | Class |
| Kelas positif | malignant |
| Kelas negatif | benign |
| Proporsi data latih | 80% |
| Proporsi data uji | 20% |
| Seed | 12320 |
| Nilai \(k\) | 3, 5, 7, 9, 11 |
| Metrik evaluasi | Accuracy, Sensitivity, Specificity, dan False Negative |
Tahapan analisis yang dilakukan dalam praktikum ini adalah:
Id serta menangani nilai
hilang.set.seed(12320).knitr::opts_chunk$set(echo = FALSE)
# Memuat package
library(class)
library(caret)
library(ggplot2)
library(mlbench)
library(dplyr)
library(knitr)
# Memuat dataset
data(BreastCancer, package = "mlbench")
# Melihat struktur dan enam data pertama
str(BreastCancer)## 'data.frame': 699 obs. of 11 variables:
## $ Id : chr "1000025" "1002945" "1015425" "1016277" ...
## $ Cl.thickness : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 5 5 3 6 4 8 1 2 2 4 ...
## $ Cell.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 1 1 2 ...
## $ Cell.shape : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 2 1 1 ...
## $ Marg.adhesion : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 5 1 1 3 8 1 1 1 1 ...
## $ Epith.c.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 2 7 2 3 2 7 2 2 2 2 ...
## $ Bare.nuclei : Factor w/ 10 levels "1","2","3","4",..: 1 10 2 4 1 10 10 1 1 1 ...
## $ Bl.cromatin : Factor w/ 10 levels "1","2","3","4",..: 3 3 3 3 3 9 3 3 1 2 ...
## $ Normal.nucleoli: Factor w/ 10 levels "1","2","3","4",..: 1 2 1 7 1 7 1 1 1 1 ...
## $ Mitoses : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 5 1 ...
## $ Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
## Id Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 1 1000025 5 1 1 1 2
## 2 1002945 5 4 4 5 7
## 3 1015425 3 1 1 1 2
## 4 1016277 6 8 8 1 3
## 5 1017023 4 1 1 3 2
## 6 1017122 8 10 10 8 7
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 1 1 3 1 1 benign
## 2 10 3 2 1 benign
## 3 2 3 1 1 benign
## 4 4 3 7 1 benign
## 5 1 3 1 1 benign
## 6 10 9 7 1 malignant
##
## benign malignant
## 458 241
Dataset BreastCancer memuat variabel identitas, sejumlah
variabel karakteristik sel, dan variabel kelas. Variabel
Class menjadi target klasifikasi dengan dua kategori, yaitu
benign dan malignant. Pemeriksaan struktur data
dilakukan untuk mengetahui tipe setiap variabel serta memastikan bahwa
variabel yang digunakan sesuai dengan kebutuhan algoritma K-NN.
## [1] 683 10
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 0 0 0 0 0
##
## benign malignant
## 444 239
| Keterangan | Nilai |
|---|---|
| Jumlah observasi setelah pembersihan | 683 |
| Jumlah variabel prediktor | 9 |
| Jumlah variabel respons | 1 |
| Jumlah nilai hilang | 0 |
Berdasarkan keluaran struktur data (str), dataset awal BreastCancer terdiri atas 699 observasi dan 11 variabel, yang mencakup variabel identitas (Id), sembilan variabel karakteristik sel bertipe ordered factor dan factor (Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bare.nuclei, Bl.cromatin, Normal.nucleoli, dan Mitoses), serta satu variabel target Class. Pada kondisi awal sebelum pembersihan, distribusi variabel target menunjukkan terdapat 458 observasi pada kelas benign dan 241 observasi pada kelas malignant. Setelah dilakukan tahap pra-pemrosesan berupa penghapusan variabel Id, konversi seluruh prediktor ke tipe numerik, serta penghapusan 16 observasi yang mengandung nilai hilang (? pada variabel Bare.nuclei), diperoleh dataset bersih berjumlah 683 observasi dengan 9 variabel prediktor dan 1 variabel respons tanpa adanya nilai hilang tersisa. Proporsi kelas akhir setelah pembersihan terdiri atas 444 kasus tumor jinak (benign) dan 239 kasus tumor ganas (malignant).
| Data | Jumlah | Persentase |
|---|---|---|
| Training | 548 | 80.23 |
| Testing | 135 | 19.77 |
| Total | 683 | 100.00 |
sebagai data training dan 135 observasi (19,77%) sebagai data testing. Selisih persentase desimal kecil dari target 80% dan 20% tersebut terjadi karena fungsi createDataPartition() menerapkan metode stratified random sampling agar proporsi kelas benign dan malignant tetap seimbang di kedua kelompok data. Pembagian ini memastikan bahwa model K-NN dilatih pada mayoritas data yang representatif sekaligus diuji secara objektif pada 135 data baru yang belum pernah dikenali sebelumnya.
## Cl.thickness Cell.size Cell.shape Marg.adhesion
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.1111 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.3333 Median :0.0000 Median :0.0000 Median :0.0000
## Mean :0.3838 Mean :0.2425 Mean :0.2496 Mean :0.2107
## 3rd Qu.:0.5556 3rd Qu.:0.4444 3rd Qu.:0.4444 3rd Qu.:0.3333
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.1111 1st Qu.:0.0000 1st Qu.:0.1111 1st Qu.:0.0000
## Median :0.1111 Median :0.0000 Median :0.2222 Median :0.0000
## Mean :0.2553 Mean :0.2922 Mean :0.2760 Mean :0.2060
## 3rd Qu.:0.3333 3rd Qu.:0.6667 3rd Qu.:0.4444 3rd Qu.:0.3333
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## Mitoses
## Min. :0.00000
## 1st Qu.:0.00000
## Median :0.00000
## Mean :0.06509
## 3rd Qu.:0.00000
## Max. :1.00000
prediktor telah berhasil ditransformasikan menggunakan metode normalisasi Min-Max sehingga memiliki nilai minimum sebesar 0.0000 dan nilai maksimum sebesar 1.0000. Selain rentang nilai yang seragam pada interval \([0, 1]\), teramati variasi sebaran pemusatan data pada tiap fitur, di mana variabel seperti Cl.thickness memiliki rata-rata relatif lebih tinggi (0.3838), sedangkan variabel Mitoses memiliki rata-rata terendah (0.06509) karena mayoritas observasinya bernilai nol setelah diskalakan. Keseragaman skala pada seluruh fitur ini menjamin bahwa perhitungan jarak Euclidean tidak akan didominasi oleh variabel tertentu dengan rentang angka awal yang lebih besar.
## $`3`
## [1] benign benign benign benign benign benign benign
## [8] malignant malignant malignant
## Levels: benign malignant
##
## $`5`
## [1] benign benign benign benign benign benign benign
## [8] benign malignant benign
## Levels: benign malignant
##
## $`7`
## [1] benign benign benign benign benign benign benign
## [8] malignant malignant benign
## Levels: benign malignant
##
## $`9`
## [1] benign benign benign benign benign benign benign
## [8] malignant malignant benign
## Levels: benign malignant
##
## $`11`
## [1] benign benign benign malignant benign benign benign
## [8] malignant malignant benign
## Levels: benign malignant
Berdasarkan sepuluh sampel prediksi pertama pada data testing, terlihat adanya dinamika perubahan hasil klasifikasi seiring bergantinya jumlah tetangga terdekat (\(k\)) yang digunakan. Pada \(k = 3\) dan \(k = 9\), tiga observasi terakhir (indeks ke-8, ke-9, dan ke-10) seluruhnya diklasifikasikan sebagai malignant. Namun, ketika nilai \(k\) diubah menjadi 5, 7, dan 11, observasi ke-10 bergeser menjadi benign, bahkan pada \(k = 5\) observasi ke-8 ikut berubah menjadi benign serta pada \(k = 11\) observasi ke-4 terklasifikasi sebagai malignant. Pergeseran prediksi pada beberapa titik uji tersebut membuktikan bahwa perubahan nilai \(k\) secara langsung memengaruhi keputusan majority voting di sekitar batas keputusan antar-kelas.
| k | Accuracy | Sensitivity | Specificity | False_Negative |
|---|---|---|---|---|
| 3 | 0.9852 | 0.9574 | 1 | 2 |
| 5 | 0.9704 | 0.9149 | 1 | 4 |
| 7 | 0.9704 | 0.9149 | 1 | 4 |
| 9 | 0.9704 | 0.9149 | 1 | 4 |
| 11 | 0.9704 | 0.9149 | 1 | 4 |
##
##
## Confusion Matrix untuk k = 3
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 88 2
## malignant 0 45
##
## Accuracy : 0.9852
## 95% CI : (0.9475, 0.9982)
## No Information Rate : 0.6519
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.967
##
## Mcnemar's Test P-Value : 0.4795
##
## Sensitivity : 0.9574
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9778
## Prevalence : 0.3481
## Detection Rate : 0.3333
## Detection Prevalence : 0.3333
## Balanced Accuracy : 0.9787
##
## 'Positive' Class : malignant
##
##
##
## Confusion Matrix untuk k = 5
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 88 4
## malignant 0 43
##
## Accuracy : 0.9704
## 95% CI : (0.9259, 0.9919)
## No Information Rate : 0.6519
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9334
##
## Mcnemar's Test P-Value : 0.1336
##
## Sensitivity : 0.9149
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9565
## Prevalence : 0.3481
## Detection Rate : 0.3185
## Detection Prevalence : 0.3185
## Balanced Accuracy : 0.9574
##
## 'Positive' Class : malignant
##
##
##
## Confusion Matrix untuk k = 7
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 88 4
## malignant 0 43
##
## Accuracy : 0.9704
## 95% CI : (0.9259, 0.9919)
## No Information Rate : 0.6519
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9334
##
## Mcnemar's Test P-Value : 0.1336
##
## Sensitivity : 0.9149
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9565
## Prevalence : 0.3481
## Detection Rate : 0.3185
## Detection Prevalence : 0.3185
## Balanced Accuracy : 0.9574
##
## 'Positive' Class : malignant
##
##
##
## Confusion Matrix untuk k = 9
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 88 4
## malignant 0 43
##
## Accuracy : 0.9704
## 95% CI : (0.9259, 0.9919)
## No Information Rate : 0.6519
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9334
##
## Mcnemar's Test P-Value : 0.1336
##
## Sensitivity : 0.9149
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9565
## Prevalence : 0.3481
## Detection Rate : 0.3185
## Detection Prevalence : 0.3185
## Balanced Accuracy : 0.9574
##
## 'Positive' Class : malignant
##
##
##
## Confusion Matrix untuk k = 11
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 88 4
## malignant 0 43
##
## Accuracy : 0.9704
## 95% CI : (0.9259, 0.9919)
## No Information Rate : 0.6519
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9334
##
## Mcnemar's Test P-Value : 0.1336
##
## Sensitivity : 0.9149
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9565
## Prevalence : 0.3481
## Detection Rate : 0.3185
## Detection Prevalence : 0.3185
## Balanced Accuracy : 0.9574
##
## 'Positive' Class : malignant
##
Tabel evaluasi menyajikan nilai accuracy, sensitivity, dan specificity untuk setiap nilai \(k\). Accuracy menggambarkan proporsi seluruh prediksi yang benar, sedangkan sensitivity menunjukkan kemampuan model dalam mengenali tumor ganas. Specificity menunjukkan kemampuan model dalam mengenali tumor jinak. Jumlah false negative juga ditampilkan untuk mengetahui banyaknya kasus tumor ganas yang salah diklasifikasikan sebagai tumor jinak.
| k | Accuracy | Sensitivity | Specificity | False_Negative |
|---|---|---|---|---|
| 3 | 0.9852 | 0.9574 | 1 | 2 |
| 5 | 0.9704 | 0.9149 | 1 | 4 |
| 7 | 0.9704 | 0.9149 | 1 | 4 |
| 9 | 0.9704 | 0.9149 | 1 | 4 |
| 11 | 0.9704 | 0.9149 | 1 | 4 |
## Nilai k terbaik berdasarkan prioritas evaluasi adalah: 3
## False Negative: 2
## Sensitivity: 0.9574
## Accuracy: 0.9852
## Specificity: 1
Penentuan model terbaik dilakukan dengan memprioritaskan jumlah false negative yang paling kecil karena kesalahan dalam mengklasifikasikan tumor ganas sebagai tumor jinak perlu diminimalkan. Apabila terdapat lebih dari satu model dengan jumlah false negative yang sama, model dengan sensitivity lebih tinggi diprioritaskan. Selanjutnya, accuracy dan specificity digunakan sebagai pertimbangan tambahan. Dengan demikian, model terbaik tidak hanya ditentukan berdasarkan ketepatan klasifikasi secara keseluruhan, tetapi juga mempertimbangkan kemampuan mendeteksi kelas malignant.
Grafik garis perbandingan metrik evaluasi memperlihatkan performa model K-NN pada rentang \(k = 3\) hingga \(k = 11\) berada pada tingkat yang sangat tinggi dan stabil. Garis biru (Specificity) bertahan konstan tepat di angka 100% pada seluruh nilai \(k\), yang menunjukkan bahwa model tidak pernah salah mengklasifikasikan pasien tumor jinak menjadi tumor ganas (false positive bernilai nol). Sementara itu, garis merah (Accuracy) dan garis hijau (Sensitivity) mencapai titik tertinggi pada \(k = 3\) (mendekati 100% untuk accuracy dan di atas 95% untuk sensitivity), kemudian mengalami sedikit penurunan lalu mendatar secara konstan mulai dari \(k = 5\) hingga \(k = 11\). Pola visual ini mengindikasikan bahwa \(k = 3\) memberikan kemampuan deteksi kasus tumor ganas (sensitivity) paling optimal dibandingkan nilai \(k\) lainnya yang lebih besar
Berdasarkan praktikum yang telah dilakukan, algoritma K-NN dapat
diterapkan untuk mengklasifikasikan tumor payudara ke dalam kelas
benign dan malignant menggunakan Wisconsin Breast
Cancer Database. Sebelum pemodelan, data melalui tahapan
pra-pemrosesan berupa penghapusan variabel identitas, penanganan nilai
hilang, konversi prediktor menjadi numerik, dan normalisasi Min-Max.
Pembagian data dilakukan dengan proporsi 80% data training dan
20% data testing sesuai dengan NPM 20 (genap), menggunakan
set.seed(12320).
Pemodelan dilakukan dengan membandingkan nilai \(k\) sebesar 3, 5, 7, 9, dan 11. Kinerja setiap model dievaluasi menggunakan accuracy, sensitivity, specificity, dan jumlah false negative. Nilai \(k\) terbaik ditentukan dengan memprioritaskan jumlah false negative terkecil, kemudian sensitivity, accuracy, dan specificity. Nilai serta model terpilih mengikuti hasil yang diperoleh ketika dokumen R Markdown dijalankan.
Praktikum selanjutnya dapat mempertimbangkan pengujian beberapa teknik penskalaan dan ukuran jarak untuk mengetahui pengaruhnya terhadap kinerja K-NN. Selain itu, pemilihan nilai \(k\) dapat diperluas dan diuji menggunakan validasi silang agar kestabilan model dapat dievaluasi pada beberapa pembagian data. Untuk penerapan pada permasalahan medis, evaluasi sebaiknya tetap memperhatikan sensitivity dan false negative, bukan hanya accuracy, karena kesalahan dalam mengenali kasus tumor ganas memiliki konsekuensi yang penting.
Halder, R. K., Uddin, M. N., Uddin, M. A., Aryal, S., dan Khraisat, A. (2024). Enhancing K-nearest neighbor algorithm: A comprehensive review and performance analysis of modifications. Journal of Big Data, 11, Artikel 113. https://doi.org/10.1186/s40537-024-00973-y
Kubat, M. (2021). An Introduction to Machine Learning (Edisi ke-3). Springer. https://doi.org/10.1007/978-3-030-81935-4
Manir, S. B., dan Deshpande, P. (2024). Critical risk assessment, diagnosis, and survival analysis of breast cancer. Diagnostics, 14(10), 984. https://doi.org/10.3390/diagnostics14100984
Niño-Adan, I., Landa-Torres, I., Portillo, E., dan Manjarres, D. (2022). Influence of statistical feature normalisation methods on K-nearest neighbours and K-means in the context of Industry 4.0. Engineering Applications of Artificial Intelligence, 111, 104807. https://doi.org/10.1016/j.engappai.2022.104807
Yusran, M., Sadik, K., Soleh, A. M., dan Suhaeni, C. (2025). Effect of feature normalization and distance metrics on K-nearest neighbors performance for diabetes disease classification. Journal of Mathematics, Computations, and Statistics, 8(2), 341–354. https://doi.org/10.35580/jmathcos.v8i2.8012