Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R....

48
Pemodelan Klasifikasi Departemen Statistika Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor

Transcript of Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R....

Page 1: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Pemodelan Klasifikasi

Departemen Statistika Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor

Page 2: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Deskripsi Mata Kuliah

• Deskripsi: Mata kuliah ini mendiskusikan beberapa algoritma dalam analisis data dan data mining untuk tujuan klasifikasi, yaitu menentukan kelas atau kelompok dari setiap amatan. Topik yang akan dibahas meliputi pendekatan un-supervised dan supervised, dengan penekanan lebih banyak pada yang kedua. Algoritma un-supervised yang akan dibahas adalah k-means, sedangkan algoritma supervised meliputi k-NN, regresi logistik, pohon klasifikasi dengan pendekatan ID3, C4.5, dan CHAID, pengenalan neural network, pengenalan support vector machine, naïve bayesian classifier. Juga akan didiskusikan pendekatan ensemble yaitu bagging, boosting, dan random forest. Tidak hanya algoritma yang akan dipelajari tetapi juga membahas proses evaluasi dan validasi model. Mata kuliah ini memiliki sks praktikum yang didalamnya akan mendiskusikan penggunaan beberapa software analisis data yaitu SAS dan R.

Page 3: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Pengajar

• Dr. Bagus Sartono

• Dr. Anang Kurnia

Page 4: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Silabus

• Pengantar • Un-supervised Classification: k-means • Pengantar mengenai supervised classification • k-NN • Penilaian kebaikan dugaan klasifikasi • Analisis Diskriminan • Regresi Logistik • Pohon Klasifikasi • Bagging • Boosting • Random Forest dan Rotation Forest • Naïve Bayesian Classifier • Pengenalan Support Vector Machine • Pengenalan klasifikasi banyak kelas

Page 5: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Pendekatan Pembelajaran

• Integrasi antara ceramah teori dan praktek

• Memerlukan (dan menuntut) keaktifan mahasiswa

• Di setiap pertemuan mahasiswa membawa komputer/laptop, dan dosen akan menyiapkan data dan programnya

• Menggunakan R (dan SAS)

Page 6: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Course Note dan Data

http://bit.ly/1Tebqfj

Page 7: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Data yang akan digunakan

• Data kredit bank di Jerman

• Data kualitas wine buatan Portugal

• Data tekstur

• Pima Indians Diabetes Data Set

Page 8: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Data Kredit Bank di Jerman

• Ketika suatu bank memperoleh aplikasi pinjaman dari calon nasabah, maka selanjutnya bank akan membuat keputusan menyetujui atau tidak berdasarkan profil calon nasabah tersebut. Setiap calon nasabah akan dikategorikan menjadi dua yaitu: – Good risk, yang berarti orang tersebut dianggap akan mampu membayar

pinjaman dan selanjutnya aplikasi pinjaman itu disetujui – Bad risk, yang berarti orang tersebut dianggap akan gagal membayar pinjaman

dan selanjutnya aplikasi pinjaman itu ditolak

• Pemodelan klasifikasi akan bergunanuntuk meminimumkan kerugian

(dalam perspektif bank), yaitu dengan menentukan calon nasabah mana yang disetuji dan mana yang tidak. Manajer pinjaman biasanya akan mempertimbangkan kondisi demografi dan sosio-ekonomi calon nasabah sebelum membuat keputusan.

• Data yang ada berisi informasi 1000 orang calon nasabah pinjaman yang terdiri atas 20 variabel.

Page 9: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Data Kualitas Wine

• Data kedua ini berasal dari pengamatan terhadap sejumlah tipe wine merah (ada 1599 jenis) dan wine putih (ada 4898 jenis) yang semuanya produksi Portugal.

• Harga dari wine sangat tergantung pada kualitas rasa yang bersifat abstrak. Biasanya ada sejumlah ahli rasa yang diminta mencicipi wine dan kemudian memberikan penilaian. Antar penilai bisa jadi sangat bervariasi opininya.

• Kualitas wine juga tergantung pada beberapa hasil physicochemical tests yang dilakukan di laboratorium dengan memeriksa antara lain acidity, pH level, kandungan gula, serta kandungan beberapa senyawa kimia lain.

• Akan sangat menarik kalau hasil pengukuran kualitas di laboratorium memiliki keterkaitan dengan penilaian subjektif oleh pakar rasa.

• Data yang ada hanya berisi data penilaian wine putih, yang meliputi 12 karakteristik hasil uji laboratorium serta hasil penilaian ahli rasar pada skala 1 – 10, dengan 1 untuk kualitas rasa yang paling buruk dan 10 untuk rasa yang paling baik. Ada tiga penilai, dan nilai akhir diperoleh dari median ketiganya.

Page 10: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Pima Indians Diabetes Data Set http://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes

• Relevant Information: Several constraints were placed on the selection of these instances from a larger database. In particular, all patients here are females at least 21 years old of Pima Indian heritage. ADAP is an adaptive learning routine that generates and executes digital analogs of perceptron-like devices. It is a unique algorithm; see the paper for details.

• Number of Instances: 768 • Number of Attributes: 8 plus class • Attribute: (all numeric-valued)

– Number of times pregnant – Plasma glucose concentration a 2 hours in an oral glucose tolerance test – Diastolic blood pressure (mm Hg) – Triceps skin fold thickness (mm) – 2-Hour serum insulin (mu U/ml) – Body mass index (weight in kg/(height in m)^2) – Diabetes pedigree function – Age (years)

Page 11: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Pengantar

Page 12: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Analisis Klasifikasi

• Tujuan analisis: menentukan keanggotaan grup/kelompok dari suatu individu

• Tipe metode – Unsupervised, tidak terdapat informasi mengenai kelompok/grup dari

amatan pada data yang digunakan. Analisis dilakukan untuk menentukan keanggotaan grup dari amatan tersebut. Sering juga dikenal sebagai analisis gerombol (clustering, cluster analysis)

– Supervised, data memiliki informasi mengenai kelompok/grup sesungguhnya dari amatan. Analisis dilakukan untuk menentukan pembeda antar grup, dan aturan pembeda tersebut dapat dimanfaatkan untuk menentukan keanggotaan dari amatan lain yang tidak ada dalam data.

Page 13: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Kegunaan Analisis Klasifikasi

Page 14: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang
Page 15: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang
Page 16: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

K-Means

• Andaikan terdapat n buah amatan x1, x2, …, xn.

• Masing-masing amatan akan dikelompokkan ke dalam satu dari k buah kelompok. Besaran k umumnya jauh lebih kecil dibandingkan n.

• Andaikan c1, …, ck adalah centroid dari k buah kelompok.

• Intuisi dari pengelompokan adalah bahwa amatan akan dimasukkan ke kelompok j jika amatan tersebut memiliki jarak paling dekat dengan cj dibandingkan dengan centroid lainnya.

Page 17: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Algoritma

1. Tentukan secara acak c1, …, ck

2. Hitung jarak dari setiap xi ke cj

3. Masukkan amatan ke-i ke dalam kelompok ke-j jika dij adalah yang paling kecil dibandingkan dij’

4. Perbarui c1, …, ck dengan menghitung rata-rata dari semua xi yang menjadi anggota kelompok masing-masing

5. Kembali ke tahap 2 sampai konvergen

How do we decide when to stop? One criterion for stopping is if we observe the assignment functions in the two iterations are exactly the same. If the assignment function doesn't change anymore, then the centroid won't change either (and vice versa).

Page 18: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

18

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 1

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 3

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 4

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

0

0.5

1

1.5

2

2.5

3

x

y

Iteration 6

Page 19: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi

• Misal ada 10 amatan yang masing-masing bernilai: 1, 2, 2, 3, 4, 4, 8, 8, 9

ingin dikelompokkan menjadi dua grup

• Centroid awal c1 = 1 dan c2 = 2 • Iterasi 1

– Keanggotaan : {1}, {2, 2, 3, 4, 4, 8, 8, 9} – Centroid : c1 = 1, c2 = 5

• Iterasi 2 – Keanggotaan : {1, 2, 2, 3, 4, 4}, {8, 8, 9} – Centroid : c1 = 2.67, c2 = 8.33

• Iterasi 3 – Keanggotaan : {1, 2, 2, 3, 4, 4}, {8, 8, 9} – Centroid : c1 = 2.67, c2 = 8.33

• Stop

Page 20: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

setwd ("D:/bagusco/Kuliah S2 --- Pemodelan Klasifikasi/data")

data <- read.csv("ilustrasikm.csv")

cluster <- kmeans(data, 3)

plot(data[,1], data[,2], col=cluster$cluster)

points(cluster$centers, pch=9)

Page 21: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Data Kualitas Wine

• Data ini berasal dari pengamatan terhadap sejumlah tipe wine putih (ada 4898 jenis) yang semuanya produksi Portugal.

• Harga dari wine sangat tergantung pada kualitas rasa yang bersifat abstrak. Biasanya ada sejumlah ahli rasa yang diminta mencicipi wine dan kemudian memberikan penilaian. Antar penilai bisa jadi sangat bervariasi opininya.

• Kualitas wine juga tergantung pada beberapa hasil physicochemical tests yang dilakukan di laboratorium dengan memeriksa antara lain acidity, pH level, kandungan gula, serta kandungan beberapa senyawa kimia lain.

• Akan sangat menarik kalau hasil pengukuran kualitas di laboratorium memiliki keterkaitan dengan penilaian subjektif oleh pakar rasa.

• Data yang ada hanya berisi data penilaian wine putih, yang meliputi 12 karakteristik hasil uji laboratorium serta hasil penilaian ahli rasar pada skala 1 – 10, dengan 1 untuk kualitas rasa yang paling buruk dan 10 untuk rasa yang paling baik. Ada tiga penilai, dan nilai akhir diperoleh dari median ketiganya.

Page 22: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Data dan Program

http://bit.ly/1Tebqfj

Page 23: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Supervised Classification

• Data terdiri atas amatan-amatan yang berisi informasi mengenai:

– Keanggotaan Kelas/Grup

– Karakteristik amatan (sering disebut sebagai variabel, atribut, feature)

• Informasi dari data digunakan untuk memperoleh “aturan” bagi penentuan keanggotaan kelas dari amatan lainnya nanti.

Page 24: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Supervised Classification

• Terbagi atas:

– Metode yang berbasis model

– Metode yang tidak berbasis model

• Metode yang berbasis model

– Model berupa fungsi matematis

– Model berupa aturan logika

Page 25: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Supervised Classification

• Metode yang tidak berbasis model

– k-nearest neighbor

• Metode yang berbasis model

– Regresi logistik

– Analisis diskriminan

– Classification tree

– SVM

– dll

Page 26: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

K Nearest Neighbor

• Nama lain: – K-Nearest Neighbors

– Memory-Based Reasoning

– Example-Based Reasoning

– Instance-Based Learning

– Case-Based Reasoning

– Lazy Learning

Page 27: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

KNN

• Konsep dasar

– Menyimpan data training

– Mengklasifikasikan amatan baru berdasarkan kemiripan dengan amatan dalam data training

– Kelas yang dipilih adalah kelas dari amatan-amatan yang paling mirip (tetangga terdekatnya)

Page 28: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: data training

X2

X1

Page 29: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: masuk kelas mana amatan baru ini?

X2

X1

Page 30: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: k-NN dengan k = 1

X2

X1

Amatan baru masuk ke kelas lingkaran biru

Page 31: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: k-NN dengan k = 3

X2

X1 Amatan baru masuk ke kelas lingkaran biru, karena dari tiga

tetangga, dua dari kelas tersebut

Page 32: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: k-NN dengan k = 5

X2

X1 Amatan baru masuk ke kelas lingkaran biru, karena dari lima

tetangga, tiga dari kelas tersebut

Page 33: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Perhatikan ilustrasi berikut

Age Loan Default Distance 25 $40,000 N 102000 35 $60,000 N 82000 45 $80,000 N 62000 20 $20,000 N 122000 35 $120,000 N 22000 52 $18,000 N 124000 23 $95,000 Y 47000 40 $62,000 Y 80000 60 $100,000 Y 42000 48 $220,000 Y 78000 33 $150,000 Y 8000

48 $142,000 ?

2

21

2

21 )()( yyxxD

Page 34: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Perhatikan ilustrasi berikut

Age Loan Default Distance 0.125 0.11 N 0.7652 0.375 0.21 N 0.5200 0.625 0.31 N 0.3160

0 0.01 N 0.9245 0.375 0.50 N 0.3428

0.8 0.00 N 0.6220 0.075 0.38 Y 0.6669

0.5 0.22 Y 0.4437 1 0.41 Y 0.3650

0.7 1.00 Y 0.3861 0.325 0.65 Y 0.3771

0.7 0.61 ?

MinMax

MinXX s

Page 35: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Beberapa isu dalam analisis kNN

• Bagaimana menghitung kemiripan antar amatan?

– Jarak apa yang digunakan? Euclid? Mahalanobis? Lainnya?

– Perlu pembakuan data? Penskalaan variabel?

• Berapa banyak tetangga (k)?

– Saran: • Gunakan nilai ganjil

• Lakukan validasi atau validasi silang

Page 36: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: data

• Data ilustrasiknn.txt

• Terdiri atas dua variabel x1 dan x2

• Berisi data dari dua kelompok, yang diindikasikan oleh kolom ‘class’ – class = 1, 14 amatan

– class = 2, 10 amatan

• data <- read.table("D:/bagusco/Kuliah S2 --- Pemodelan

Klasifikasi/ilustrasiknn.txt", header=TRUE)

Page 37: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: plot tebaran data

plot(data$x1, data$x2, col=data$class)

10 15 20 25

14

16

18

20

22

24

data$x1

da

ta$

x2

class = 2

class = 1

Page 38: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: plot tebaran data

plot(data$x1, data$x2, col=data$class,

pch=ifelse(data$class>1,17,12))

class = 2

class = 1

10 15 20 25

14

16

18

20

22

24

data$x1

da

ta$

x2

Page 39: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi kelas dari amatan baru, x1=15, x2=19

> plot(data$x1, data$x2, col=data$class,

pch=ifelse(data$class>1,17,12))

> points(x=15, y=19, pch = 13, cex=1.5)

class = 2

class = 1

10 15 20 25

14

16

18

20

22

24

data$x1

da

ta$

x2

amatan baru

Page 40: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi kelas dari amatan baru, x1=15, x2=19

training <- data[,1:2]

kelas <- as.factor(data[,3])

maudiprediksi <- c(15,19)

library(class)

prediksi <- knn(training, maudiprediksi, kelas, k = 5)

prediksi

Amatan dengan x1=15, x2=19 masuk ke class = 2

Page 41: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi kelas dari amatan baru, x1=20, x2=19

> plot(data$x1, data$x2, col=data$class,

pch=ifelse(data$class>1,17,12))

> points(x=20, y=19, pch = 13, cex=1.5)

class = 2

class = 1

amatan baru

10 15 20 25

14

16

18

20

22

24

data$x1

da

ta$

x2

Page 42: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi kelas dari amatan baru, x1=20, x2=19

training <- data[,1:2]

kelas <- as.factor(data[,3])

maudiprediksi <- c(20,19)

library(class)

prediksi <- knn(training, maudiprediksi,

kelas, k = 5)

prediksi

Amatan dengan x1=20, x2=19 masuk ke class = 1

Page 43: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi batas antar kelas berdasarkan knn dengan k = 5

> m <- NULL > a <- seq(8, 26, by = 0.5) > b <- seq(14, 25, by = 0.5) > for (i in a){ for (j in b) { m <- rbind(m, c(i, j)) } } prediksi <- knn(training, m, kelas, k = 12) > plot(m[,1], m[,2], col=ifelse(prediksi=="1","cyan","yellow"), pch=ifelse(prediksi=="2",17,12)) > points(data$x1, data$x2, col=data$class, pch=ifelse(data$class>1,17,12), cex=2)

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

Page 44: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi batas antar kelas berdasarkan knn dengan k = 3

> m <- NULL > a <- seq(8, 26, by = 0.5) > b <- seq(14, 25, by = 0.5) > for (i in a){ for (j in b) { m <- rbind(m, c(i, j)) } } prediksi <- knn(training, m, kelas, k = 3) > plot(m[,1], m[,2], col=ifelse(prediksi=="1","cyan","yellow"), pch=ifelse(prediksi=="2",17,12)) > points(data$x1, data$x2, col=data$class, pch=ifelse(data$class>1,17,12), cex=2)

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

Page 45: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Ilustrasi: mengidentifikasi batas antar kelas berdasarkan knn dengan k = 1

> m <- NULL > a <- seq(8, 26, by = 0.5) > b <- seq(14, 25, by = 0.5) > for (i in a){ for (j in b) { m <- rbind(m, c(i, j)) } } prediksi <- knn(training, m, kelas, k = 1) > plot(m[,1], m[,2], col=ifelse(prediksi=="1","cyan","yellow"), pch=ifelse(prediksi=="2",17,12)) > points(data$x1, data$x2, col=data$class, pch=ifelse(data$class>1,17,12), cex=2)

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

Page 46: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Perbedaan batas kelas hasil kNN dengan k berbeda-beda

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

10 15 20 25

14

16

18

20

22

24

m[, 1]

m[, 2

]

k=12 k=3 k=1

Mana yang lebih baik?

Gunakan validasi atau validasi silang

Page 47: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Validasi

• Tidak semua amatan pada data digunakan sebagai data training

• Sebagian disisihkan terlebih dahulu untuk dijadikan gugus data untuk validasi

• Dilakukan pendugaan atau prediksi terhadap amatan pada gugus validasi, dan kemudian dinilai kemampuan prediksinya menggunakan data tersebut dengan membandingkan kelas hasil prediksi dan kelas yang sebenarnya

Page 48: Pemodelan Klasifikasi - stat.ipb.ac.id Klasifikasi/Pemodelan... · analisis data yaitu SAS dan R. Pengajar • Dr. Bagus Sartono • Dr. Anang Kurnia . Silabus ... yang berarti orang

Validasi

set.seed(10) acak <- sample(1:nrow(data), 4) training <- data[-acak,1:2] kelastraining <- as.factor(data[-acak,3]) validasi <- data[acak,1:2] kelasvalidasi <- as.factor(data[acak,3]) prediksi.validasi <- knn(training, validasi, kelastraining, k = 12) prediksi.validasi table(prediksi.validasi,kelasvalidasi) mean(prediksi.validasi == kelasvalidasi)

Membagi data menjadi dua bagian

Menentukan nomor baris pembagian secara acak

Memprediksi data validasi

Membandingkan prediksi dan kelas sebenarnya