Senin, 18 Oktober 2021

Klasifikasi Naive Bayes

 



Assalamualaikum warahmatullahi wabarakatuh...

Halo teman teman semua pada blog sebelumnya kita telah membahas tentang machine learning beserta contoh soalnya, kali ini kita kan lanjut dengan judul yang baru yaitu klasifikasi dari Naive bayes.

Naive Bayes Classifier adalah salah satu klasifikasi statistik, dimana dalam pengklasifikasiannya  memprediksi probabilitas keanggotaan kelas suatu data yang akan masuk ke dalam kelas tertentu, sesuai dengan perhitungan probabilitas.

Naive Bayes bertujuan untuk melakukan klasifikasi data pada kelas tertentu, kemudian pola tersebut dapat digunakan untuk memperkirakan nasabah yang bergabung, sehingga perusahaan bisa mengambil keputusan menerima atau menolak calon nasabah tersebut.

Berikut ini adalah beberapa model yang digunakan untuk mengklasifikasi sebuah dataset

1.Naive Bayes (NB). Pada model ini terkait dengan probabilitas (kemunculan suatu kelas dari data yang ada)

2.K Nears Neighbords (KNN), intinya adalah melihat tetangga terdekat dari data yang ada.

3.Decision Tree (DT), intinya adalah melihat percabangan pohon terakhirnya menuju ke kelas yang mana.

4.Support Vector Machine (SVM), kerjanya yaitu kita coba membuat sebuah pemisah (bisa berupa garis yang biasa disebut plane atau bidang yang biasa disebut hyperplane). Kunci dari model ini adalah bagaimana kita membuat plane atau pemisah hyperplane yang terbaik untuk kelas-kelas tersebut (dilihat dari titik-titik yang ada disekitar pemisah itu).

5.Neural Network (NN), kuncinya adalah kita mencari bobot.

6.Ensemble Learning (EL) berarti menggabungkan beberapa model menjadi 1 model yang baru. Biasanya memakai voting (pemilihan suara terbanyak) dari model-model yang digunakan


Berikut ini adalah rumus dari Naive Bayes : 





Keterangan : 

P(C|X) : Probabilitas hipotesis berdasar kondisi (posterior probability)

P(X|C) : Probabilitas berdasarkan kondisi pada hipotesis

P(C) : Probabilitas hipotesis (prior probability)

P(X) : Probabilitas C

C : Hipotesis data merupakan suatu class spesifik

X : Data dengan class yang belum diketahui


Dengan menggunakan rumus tersebut, terdapat beberapa tahapan algoritmanya antara lain:

1.Baca Data Training

2.Hitung jumlah class

3.Hitung jumlah kasus yang sama dengan class yang sama

4,Kalikan semua nilai hasil sesuai dengan data X yang dicari class-nya.


Berikut contoh dari tahapan algoritma Naive Bayes :

1.Membaca Dataset









Dari data tersebut terdapat 5 informasi yaitu 

1.Outlook

2.Temperature

3.Humadity

4.Windy

5.Play golf

Data tersebut adalah tipe data kategorikal. Untuk informasi outlook, terdapat 3 kondisi yaitu :

Rainy, Sunny dan, Overcast.


Terdapat 3 informasi kondisi yang ada pada temperature, yaitu :

1.Mild

2,Cool

3.Hot


Dan pada humadity, terdapat 2 informasi kondisi yaitu :

HIGH dan NORMAL. 


Untuk informasi windy, terdapat 2 kondisi yaitu : TRUE dan FALSE. 

Pada play golf, terdapat 2 informasi kondisi yaitu : YES dan NO.

Dari dataset tersebut terdapat 14 data. Jika seseorang ingin memutuskan bermain golf atau tidak, kita bisa lihat berdasarkan 4 parameter atau variabel di atas yaitu outlook, temperature, humadity dan windy. Pada kasus di atas, kelas yang akan kita cari atau keputusan atau outputnya adalah play golf, dimana ada  2 kelas (binary class) didalamnya yaitu yes & no.  Dari data di atas kita dapat cek berapa kelas yes dan berapa kelas no, karena belum tentu nilainya seimbang. Balance adalah jumlah kelasnya sama, inbalance adalah jumlahnya berbeda (ada yang lebih besar).

 Dari data tersebut kita peroleh hasil sebagai berikut:









2. Hitung Jumlah Class/Label

Terdapat 2 class dari data training tersebut, yaitu:





Maka:

P (C1) = 9/14 = 0.64285

P (C2) = 5/14 = 0.35714

Pertanyaan:

Data X = (outlook = rainy, temperature = cool, humadity = high, windy = true)

Main golf atau tidak?


Berikut tahapan penyelesaiannya:







3. Hitung Jumlah Kasus yang sama dengan Class yang sama

Untuk P(Ci) yaitu P(C1) dan P(C2) sudah diketahui hasilnya di langkah sebelumnya. Selanjutnya hitung P(X|Ci) untuk i=1 dan 2, antara lain sebagai berikut:

P(outlook="sunny" | play="yes") = 2/9 = 0.22222

P(outlook="sunny" | play="no") = 3/5 = 0.6

P(outlook="overcast" | play="yes") = 4/9 = 0.44444

P(outlook="overcast" | play="no") = 0/5 = 0

P(outlook="rainy" | play="yes") = 3/9 = 0.33333

P(outlook="rainy" | play="no") = 2/5 = 0.4


Jika semua atribut dihitung, maka didapat hasil akhirnya seperti berikut ini:









4. Kalikan Semua Nilai Hasil Sesuai dengan Data X yang Dicari Class-nya


Pertanyaan:

Data X = (outlook = rainy, temperature = cool, humadity = high, windy = true)

Main golf atau tidak?

Kalikan semua nilai hasil dari data X

P(X | play="yes") = 0.33333*0.33333*0.33333*0.33333 = 0.01234

P(X | play="no") = 0.4*0.2*0.8*0.6 = 0,0384

P(X | play="yes")*P(C1) = 0.01234*0.64285 = 0.00793

P(X | play="yes")*P(C1) = 0,0384*0.35714 = 0.01371

Nilai "no" lebih besar dari nilai "yes" maka class dari data X tersebut adalah "No".

Selasa, 05 Oktober 2021

Pengantar Machine Learning & Regresi Linear



Data science adalah sebuah ilmu interdisiplin yang berarti data science terbentuk dari berbagai ilmu.Garis besar bidang utamanya yaitu matematika dan statistik, computer science / IT dan domains / business knowledge. Ketika matematika dan statistic bergabung dengan computer science/IT maka akan menghasilkan ilmu machine learning. 

Apa itu machine learning ?

Machine learning merupakan irisan dari ilmu matematika dan statistika dengan ilmu komputer. Machine Learning adalah cabang dari disiplin ilmu kecerdasan buatan AI atau (Artificial Intelligence) yang bertujuan memberikan kemampuan kepada komputer untuk dapat melakukan proses belajar.

Istilah machine learning pertama kali dikemukakan oleh beberapa ilmuwan matematika seperti Adrien Marie Legendre, Thomas Bayes dan Andrey Markov pada tahun 1920-an dengan mengemukakan dasar-dasar machine learning dan konsepnya. Sejak saat itu ML banyak yang mengembangkan. Salah satu contoh dari penerapan ML yang cukup terkenal adalah Deep Blue yang dibuat oleh IBM pada tahun 1996.

Deep Blue merupakan machine learning yang dikembangkan agar bisa belajar dan bermain catur. Deep Blue juga telah diuji coba dengan bermain catur melawan juara catur profesional dan Deep Blue berhasil memenangkan pertandingan catur tersebut.

Peran dari machine learning banyak membantu manusia dalam berbagai bidang. Bahkan saat ini penerapan ML dapat dengan mudah kita temukan dalam kehidupan sehari-hari. Misalnya saat kita menggunakan fitur face unlock untuk membuka perangkat smartphone, atau saat kita menjelajah di internet atau media sosial kita akan sering disuguhkan dengan beberapa iklan. Iklan-iklan yang dimunculkan juga merupakan hasil pengolahan ML yang akan memberikan iklan sesuai dengan pribadi kita sendiri.


Regresi

Regresi adalah suatu metode analisis statistik yang digunakan untuk melihat pengaruh antara dua atau lebih variabel. Hubungan variabel tersebut bersifat fungsional yang diwujudkan dalam suatu model matematis. Pada analisis regresi, variabel dibedakan menjadi dua bagian, yaitu variabel respons (response variable) atau biasa juga disebut variabel bergantung (dependent variable) dan variabel explanory atau biasa disebut penduga (predictor variable) atau disebut juga variabel bebas (independent variabel).

Regresi terdiri atas delapan jenis, namun yang akan saya jelaskan untuk saat ini adalah regresi linear sederhana dan regresi linear berganda.

Berikut ini adalah delapan jenis dari regresi :

  1. Regresi linear sederhana (simple regression)
  2. Regresi linear berganda (multiple regression)
  3. Regresi multilinear (multiple regression)
  4. Regresi polynomial (polynomial regression)
  5. Regresi GAM (Generalized additive models)
  6. Regresi support vector
  7. Regresi Decision tree
  8. Regresi Random forest

Regresi sendiri terbagi menjadi 2 jenis yang digunakan sesuai dengan tujuan analisis, yaitu regresi linier sederhana dan regresi linier berganda.

  1. Regresi linear sederhana (simple regression)

Regresi linear sederhana adalah suatu metode yang digunakan untuk melihat hubungan antar satu variabel independent (bebas) dan mempunyai hubungan garis lurus dengan variabel dependennya (terikat).

Model Persamaan Regresi Linear Sederhana adalah seperti berikut ini:
Y = a + bX
Dimana :
Y = Variabel Response atau Variabel Akibat (Dependent)
X = Variabel Predictor atau Variabel Faktor Penyebab (Independent)
a = konstanta
b = koefisien regresi (kemiringan); besaran Respons yang ditimbulkan oleh Predictor.
 
Nilai-nilai a dan b dapat dihitung dengan menggunakan Rumus dibawah ini :
 
a =   (Σy) (Σx²) – (Σx) (Σxy)            b =   n(Σxy) – (Σx) (Σy)
.                n(Σx²) – (Σx)²                                 n(Σx²) – (Σx)²

Contoh

Memprediksi waktu tempuh pengiriman order jasa laundry. Dalam kasus ini menggunakan analogi perusahaan laundry kelas premium dengan tarif harga bukan perkilo melainkan per-potong pcs. Kategori pelanggannya adalah hotel, home spa, beauty salon, kantor dan para pelanggan kelas premium. Perusahaan melayani jasa laundry meliputi : baju, celana, tas, sepatu, karpet, korden, carpot, jaket, dan sebagainya.

No Order

Jarak (Km)

Waktu (Menit)

1

0.50

9.95

2

1.10

24.45

3

1.20

31.75

4

5.50

35.00

5

2.95

25.02

6

2.00

16.86

7

3.75

14.38

8

0.52

9.60

9

1.00

24.35

10

3.00

27.50

11

4.12

17.08

12

4.00

37.00

13

5.00

41.95

14

3.60

11.66

15

2.05

21.65

16

4.00

17.89

17

6.00

69.00

18

5.85

10.30

19

5.40

34.93

20

2.50

46.59

21

2.90

44.88

22

5.10

54.12

23

5.90

56.23

24

1.00

22.13

25

4.00

21.15



Menurut data dalam tabel, jika pesanan ke-26 datang dari sebuah hotel yang berjarak 1,5 kilometer dari tempat produksi cucian, itu akan menjadi "waktu pengiriman yang dapat diprediksi". Apa hubungan sebab akibat antara jarak pengiriman jasa laundry dengan waktu tempuh? Jarak lokasi pelanggan menentukan lama waktu pengiriman, sehingga jarak digunakan sebagai variabel pengaruh pada sumbu X (dalam kilometer) dan waktu sebagai sumbu Y (dalam menit) sebagai variabel pengaruh. Setiap pasangan data jarak-waktu direpresentasikan sebagai sebuah persimpangan.

 Regresi ini bertujuan untuk mencari garis lurus sedekat mungkin dengan semua titik untuk mewakili titik-titik tersebut

Berdasarkan hasil perhitungan rumus regresi linear sederhana diatas maka

Y = β0 + β1X

Keterangan

Y = variabel terpengaruh

β0 = Konstan

β1= gradien garis

Untuk mengetahui garis dari regresi linear secara tepat diperlukan perhitungan konstanta dan gradien berikut adalah tabelnya

NO Order

Jarak (Km)

Waktu (Menit)

Yi Xi

X2

1

0.50

9.95

4.98

0.25

2

1.10

24.45

26.90

1.21

3

1.20

31.75

38.10

1.44

4

5.50

35.00

192.50

30.25

5

2.95

25.02

73.81

8.70

6

2.00

16.86

33.72

4.00

7

3.75

14.38

53.93

14.06

8

0.52

9.60

4.99

0.27

9

1.00

24.35

24.35

1.00

10

3.00

27.50

82.50

9.00

11

4.12

17.08

70.37

16.97

12

4.00

37.00

148.00

16.00

13

5.00

41.95

209.75

25.00

14

3.60

11.66

41.98

12.96

15

2.05

21.65

44.38

4.20

16

4.00

17.89

71.56

16.00

17

6.00

69.00

414.00

36.00

18

5.85

10.30

60.26

34.22

19

5.40

34.93

188.62

29.16

20

2.50

46.59

116.48

6.25

21

2.90

44.88

130.15

8.41

22

5.10

54.12

276.01

26.01

23

5.90

56.23

331.76

34.81

24

1.00

22.13

22.13

1.00

25

4.00

21.15

84.60

16.00

Jumlah

82.94

725.42

2745.81

353.18

Rata-rata

3.32

29.02

 

 


Dari tabel diatas dapat kita peroleh hasil persamaan: 

Y=14.58 + 4.35X

persamaan garis regresi linear ini menyatakan bahwa bila rumah pelanggan berjarak 0 km dari produksi laundry, waktu antar jasa laundry diprediksi 14.58 menit. Setiap pertambahan jarak sepanjang 1 km, maka lama waktu tempuh diprediksi akan bertambah selama 3.58 menit. Untuk menjawab  berapa lama waktu tempuh yang di butuhkan karyawan untuk mengantarkan pesanan ke 26 dengan jarak tempuh 1.5 km adalah sebagai berikut:

Y=14.58 + 4.35X

Y=14.58 + 4.35(1.5)

Y=21.1 menit

Jadi prediksi yang kita dapatkan untuk waktu tempuh pengiriman jasa laundry ke tempat pelanggan adalah 21.1 menit.


2. Regresi linear berganda (multiple regression)

Regresi linear berganda adalah hubungan secara linear antara dua atau lebih variabel independen (X1, X2, … Xn) dengan variabel dependen (Y). Analisis ini digunakan untuk mengetahui arah hubungan antara variabel independen dengan variabel dependen apakah masing-masing variabel independen berhubungan positif atau negatif dan untuk memprediksi nilai dari variabel dependen apabila nilai variabel independen mengalami kenaikan atau penurunan. Data yang digunakan biasanya berskala interval atau rasio.

Analisis regresi ganda digunakan oleh peneliti, bila peneliti bermaksud meramalkan bagaimana keadaan (naik turunnya) variabel independen (kriterium), bila dua atau lebih variabel independen sebagai faktor predictor dimanipulasi (dinaik turunkan nilainya). Jadi analisis regresi ganda akan dilakukan bila jumlah variabel independennya minimal 2.

Rumus dari analisis regresi linear berganda adalah sebagai berikut:

Y' = b + b1 X1 + b2 X2 + .... + bn Xn + e

Dengan i = 1,2,...n

Keterangan : 

Y' = Variabel dependen (nilai yang diprediksikan)

X  = Variabel independen

b  = Konstanta

bi = Koefisien penduga

Untuk menghitung b, b1, b2, … bn dan seterusnya kita akan menggunakan Metode Kuadrat Terkecil (Least Square Method) yang menghasilkan persamaan model berikut :


Untuk dapat memudahkan dalam menghitung b, b1, b2 dapat digunakan matriks sebagai berikut:


Keterangan:

A = matriks (diketahui)

H = vector kolom diketahui

b = vector kolom tidak diketahui

Variable b dapat diselesaikan dengan cara sebagai berikut:

Ab = H

b = A – 1H


Contoh Soal Regresi Linear Berganda

Dalam suatu penelitian yang dilakukan terhadap 10 rumah tangga yang dipilih secara acak, diperoleh data pengeluaran untuk pembelian barang-barang tahan lama per-minggu (Y), pendapatan per-minggu (X1), dan jumlah anggota rumah tangga (X2) adalah sebagai berikut:

Y

(Ratusan Rupiah)

 

23

 

7

 

15

 

17

 

23

 

22

 

10

 

14

 

 

20

 

19

X1

(Ribuan Rupiah )

 

10

 

2

 

4

 

6

 

8

 

7

 

4

 

6

 

7

 

6

X2

(Orang)

 

7

 

3

 

2

 

4

 

6

 

5

 

3

 

3

 

4

 

3


Jika suatu rumah tangga mempunyai X1 dan X, masing-masing 11 dan 8. Berapa besarnya nilai Y. Artinya, berapa ratus rupiah rumah tangga yang bersangkutan akan mengeluarkan biaya untuk pembelian barang-barang tahan lama?
Langkah pertama adalah mengolah data diatas menjadi sebagai berikut:



Dari hasil penghitungan diatas model regresi linier berganda dapat dituliskan sebagai berikut:

ˆ

Dari model diatas dapat disimpulkan bahwa setiap kenaikan pendapatan per minggu sebesar Rp1000 maka akan menaikkan pengeluaran untuk pembelian barang-barang tahan lama per minggu sebesar Rp322,1 dengan asumsi jumlah anggota rumah tangga konstan/tetap.

Demikian juga, jika jumlah anggota rumah tangga bertambah 1 orang maka akan menaikkan pengeluaran untuk pembelian barang-barang tahan lama per minggu sebesar Rp45,1 dengan asumsi pendapatan per minggu konstan/tetap.

Yˆ = 5,233 + 3,221X(11)+ 0,451X(8)
Yˆ = 44,272

Ketika suatu rumah tangga memiliki pendapatan perminggunya sebesar Rp11.000 dengan anggota rumah tangga sebanyak 8 orang maka pengeluaran untuk pembelian barang-barang tahan lama per minggunya itu adalah  sebesar Rp4.427,2 (nilai Yˆ dikali 100).





Neural Network

Neural network adalah model yang terinspirasi oleh bagaimana neuron dalam otak manusia bekerja. Tiap neuron pada otak manusia saling berhubu...