Anda di halaman 1dari 35

Jurusan

Statistika
CART SVR
Association Rule K-Nearest Neighbor
Bayes
DATA Preprocessing Data
Clustering

MINING K-Means
K-Medoids

C45
Support Vector Machine

Pertemuan 7: k-Nearest Neighbors


Team Teaching: Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Algoritma KNN

KNN yang merupakan kependekan dari K Nearest


Neighbor adalah algoritma Supervised Machine
Learning yang mengklasifikasikan titik data baru
ke dalam kelas target, tergantung pada fitur titik
data tetangganya.

K adalah banyaknya tetangga yang digunakan


sebagai dasar dalam klasifikasi.

2
Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Misalkan kita ingin mesin membedakan antara gambar


kucing & anjing.

Untuk melakukan ini kita harus memasukkan dataset


gambar kucing dan anjing dan kita harus melatih model
kita untuk mendeteksi gambar hewan berdasarkan fitur
tertentu.

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

• Misalnya, fitur-fitur seperti telinga runcing dapat


digunakan untuk mengidentifikasi kucing dan kita juga
dapat mengidentifikasi anjing berdasarkan telinga
panjang mereka.

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Setelah mempelajari dataset selama fase pelatihan, ketika


gambar baru diberikan ke model, algoritma KNN akan
mengklasifikasikannya menjadi kucing atau anjing
tergantung pada kesamaan dalam fitur mereka.

Jadi jika gambar baru memiliki telinga yang runcing,


algoritma akan mengklasifikasikan gambar itu sebagai
kucing karena mirip dengan gambar kucing.

Dengan cara ini, algoritma KNN mengklasifikasikan titik


data berdasarkan seberapa mirip titik tersebut dengan
titik data tetangganya.
Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Fitur Algoritma KNN


KNN adalah algoritma Supervised Learning yang menggunakan
set input data berlabel (memiliki kelas atau kategori) untuk
memprediksi output dari data point.

KNN adalah salah satu algoritma machine learning yang paling


sederhana dan dapat dengan mudah diimplementasikan
untuk beragam masalah.

KNN didasarkan pada kesamaan fitur. KNN memeriksa


seberapa mirip suatu titik data dengan tetangganya dan
mengklasifikasikan titik data ke dalam kelas yang paling mirip
dengannya.

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Tidak seperti kebanyakan algoritma, KNN adalah model


non-parametrik yang berarti tidak membuat asumsi
tentang data set.
Hal ini membuat algoritma lebih efektif karena dapat
menangani data realistis.

KNN adalah lazy algorithm, yang berarti algoritma ini


menghafal/mengingat training data set alih-alih
mempelajari fungsi diskriminatif dari training data.

KNN dapat digunakan untuk menyelesaikan masalah


klasifikasi dan regresi.
Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Gambaran umum
Pada gambar samping, kita
memiliki dua kelas data, yaitu
kelas A (kotak) dan Kelas B
(segitiga).
Masalahnya adalah jika
terdapat data point baru,
masuk ke kelas manakah titik
baru tersebut.
Langkah pertama dalam
algoritma KNN adalah
menentukan K yaitu
banyaknya tetangga terdekat
(Nearest Neighbors)
Misalkan kita tetapkan
nilai K adalah 3.
Algoritma akan
mempertimbangkan 3
tetangga terdekat dari titik
data baru untuk
memutuskan kelas dari
data baru tersebut.
2 tetangga kotak, 1
tetangga segitiga → kelas
dari titik baru adalah
kotak (kelas A)
Misalkan K=7
Algoritma mencari 7
tetangga terdekat dari titik
baru untuk menentukan
kelas titik baru
4 segitiga, 3 kotak → kelas
dari titik baru adalah
segitiga (kelas B)
Jurusan Statistika

Contoh Aplikasi KNN


Di bidang perbankan untuk menentukan layak atau tidak
nasabah mendapat pinjaman

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Contoh Aplikasi KNN


Di bidang pendidikan untuk memprediksi kemampuan
calon mahasiswa S2 untuk menyelesaikan pendidikan

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Di bidang kesehatan, untuk memprediksi apakah


seseorang memiliki penyakit hipertensi atau tidak

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

• Bintang = menderita hipertensi


• Bulat = tidak menderita hipertensi

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

• Contoh lain adalah untuk rekomendasi produk bagi


pelanggan.
• Misal di suatu toko online, seseorang A membeli novel
bergenre misteri Game of Thrones dan Lord of The
Rings. Beberapa hari berikutnya pelanggan lain B
membeli novel Lord of The Ring tapi tidak membeli
novel Game of Thrones, maka toko online tersebut
akan merekomendasikan novel Game of Thrones
kepada pembeli tersebut karena memiliki perilaku
membeli dan pilihan yang mirip dengan pembeli A

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Jarak
• Untuk mengukur kedekatan titik data baru dengan
tetangga digunakan jarak. Terdapat beberapa jarak
yang dapat digunakan

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Jarak yang banyak dipakai adalah jarak Euclid.


Contoh

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Langkah-langkah Algoritma KNN


1. Pilih banyaknya tetangga yaitu K
2. Hitung jarak antara titik data baru dengan data lama
3. Ambil K tetangga terdekat berdasarkan jarak yang
telah dihitung
4. Diantara K tetangga ini, hitung banyaknya data point
untuk setiap kategori
5. Masukkan data point ke kategori/kelas yang memiliki
anggota terbanyak dalam K tetangga terdekat

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

X1=Daya
X2=Kekuatan Y=Kualitas
No Tahan
(kg/m2) Kertas
Asam(detik)
1 8 4 Baik
2 4 5 Buruk
3 4 6 Buruk
4 7 7 Baik
5 5 6 Buruk
6 6 5 Baik
7 9 5 Baik
8 10 6 Baik
9 7 6 Baik
10 8 5 Buruk
Contoh KNN menggunakan Excel

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Aplikasi KNN Menggunakan R


Problem
Mempelajari data kredit suatu bank untuk memprediksi
apakah seseorang yang mengajukan kredit disetujui atau
tidak berdasarkan profil sosio-ekonominya
Deskripsi Dataset: berisi informasi 1000 applicants
(pelanggan).
Termasuk didalamnya adalah
checking_balance, months_loan,_duration, credit_history,
purpose, etc

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Berdasar data tersebut ingin diprediksi apakah


menyetujui atau tidak pengajuan kredit dari seorang
nasabah bank.
Masalah ini dapat diselesaikan dengan KNN yang akan
mengklasifikasikan pelanggan ke kategori/kelas :
1. Disetujui(Yes)
2. Tidak disetujui (No)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

1. Import Dataset
#Import dataset
install.packages("readxl")
library(readxl)
loan<-read_excel("D:/credit_new.xlsx")
loan
#Melihat struktur dataset
str(loan)

Variabel output atau variable target adalah decision

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

2. Data Cleaning
• Terdapat 17 Variabel untuk menentukan apakah
pelanggan akan disetujui atau tidak pengajuan
kreditnya
• Namun tidak semua variable relevan untuk
menentukan keputusan tersebut, sehingga perlu
dihilangkan karena semakin banyak variable tentu
semakin kompleklah model machine learning tersebut
• Misalkan dipilih 5 variable months_loan_duration;
credit_history; amount; age; dependents

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

loan.subset<-
loan[c('decision','months_loan_duration','credit_history','
amount','age','dependents’)]
str(loan.subset)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

3. Normalisasi Data
Dataset perlu dilakukan normalisasi agar outputnya tidak
bias.
normalisasi<-function(x){ return((x-min(x))/(max(x)-
min(x)))}

normal.loan.subset<-
as.data.frame(lapply(loan.subset[,2:5],normalisasi))

head(normal.loan.subset)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

4. Data Splicing
Data splicing adalah memecah dataset menjadi data training
dan data testing
set.seed(123)

dat.d <-
sample(1:nrow(normal.loan.subset),size=nrow(normal.loan.su
bset)*0.7,replace = FALSE) #seleksi random 70% data.

train.loan <- loan.subset[dat.d,] # 70% training data

test.loan <- loan.subset[-dat.d,] # sisanya 30% test data

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Membuat dataframe yang terpisah berdasar fitur


'decision' yang merupakan variabel target
train.loan_labels <- loan.subset[dat.d,1]

test.loan_labels <-loan.subset[-dat.d,1]

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

5. Membangun model
#Install class package
install.packages('class')
# Load class package
library(class)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

• Menghitung banyaknya observasi dalam training


dataset.
• Untuk inisialisasi K dalam KNN
• Salah satu cara menentukan K adalah akar dari
banyaknya observasi dalam dataset
#Menentukan banyaknya observasi
NROW(train.loan_labels)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Banyaknya observari dalam training data set adalah 700


Akar dari 700 adalah 26.45 → buat dua model :K=26 dan
K=27

knn.26 <- knn(train=train.loan, test=test.loan,


cl=train.loan_labels, k=26)

knn.27 <- knn(train=train.loan, test=test.loan,


cl=train.loan_labels, k=27)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

6. Evaluasi Model
#Menghitung proporsi yang diklsifikasikan dengan tepat.

ACC.26 <- 100 * sum(test.loan_labels ==


knn.26)/NROW(test.loan_labels)

ACC.27 <- 100 * sum(test.loan_labels ==


knn.27)/NROW(test.loan_labels)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.
Jurusan Statistika

Cek nilai prediksi vs nilai actual dalam bentuk table

table(knn.26 ,test.loan_labels)

Data Mining : Dr. Dra. Umu Sa`Adah, M.Si. ♦ Dr. Eni Sumarminingsih, S.Si, MM ♦ Dwi Ayu Lusia, S.Si., M.Si.

Anda mungkin juga menyukai