Anda di halaman 1dari 63

PANDUAN PRAKTIKUM DATA MINING

MENGGUNAKAN PYTHON

Oleh :

IMAM TAHYUDIN dkk

FAKULTAS ILMU KOMPUTER

UNIVERSITAS AMIKOM PURWOKERTO

2020

1
Daftar Isi

1. Algoritma klasifikasi, estimasi, prediksi


a. Decision Tree……………………………………...……………… 3

b. Random forest…………………………………………..………… 11

c. SVM (Support vector machine) ………………………………..…… 19

d. Naïve Bayes……………………………………………………… 27

e. k-NN……………………………………………….…………… 32

f. Regresi Linier……………………………….…………………… 40

g. Regresi Logistik……………………………………………..…… 46
2. Algoritma clustering dan Asosiasi
a. K-Means………………………………………………………… 49

b. Hirarichal clustering……………………………………………… 54

c. FP - Growth…………………………………………...………… 61

2
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
A. ALGORITMA DECISION TREE
Oleh : Imam Tahyudin dan Faiz Ichsan Jaya

Pengklasifikasian data menggunakan Jupyter Notebook (python)


dengan algoritma Decision Tree.

Decision tree adalah salah satu metode klasifikasi yang paling populer, karena mudah untuk
diinterpretasi oleh manusia. Decision tree adalah model prediksi menggunakan struktur pohon
atau struktur berhirarki.

Konsep dari pohon keputusan adalah mengubah data menjadi decision tree dan aturan-aturan
keputusan. Manfaat utama dari penggunaan decision tree adalah kemampuannya untuk mem-
break down proses pengambilan keputusan yang kompleks menjadi lebih simple, sehingga
pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan.

Pertama-tama, download data yang dibutuhkan untuk melakukan


pengklasifikasian. Dalam hal ini, kami menggunakan data dari UCI
Machine Learning Repository, Skin Segmentation Data Set:
https://archive.ics.uci.edu/ml/datasets/skin+segmentation

1 Cara membuka Jupyter Notebook


Pertama-tama, pilih Start dan cari “Ananconda Prompt (Anaconda 3)” setelah itu masukkan
command sebagai berikut.

3
Maka secara otomatis, Jupyter Notebook akan terbuka di default browser pilihan Anda.
Setelah itu buat folder baru dengan nama bebas, dengan cara sebagai berikut. Nama default
folder yang ada di Jupyter Notebook adalah “Untitled Folder”, rename dengan nama yang
Anda inginkan.

2 Cara membuat file Python baru di Jupyter Notebook


Di dalam folder buat file Python baru dengan cara klik tombol “New” lalu pilih Python 3 yang
ada di pojok kanan atas. Lalu akan secara otomatis membuka tab baru seperti berikut.

Pada Jupyter Notebook, setiap perintah dijalankan pada setiap cell seperti gambar di atas.
Untuk menjalankan cell tersebut cukup gunakan perintah “CTRL + Enter” pada cell yang dipilih.
Untuk melihat apakah cell tersebut sedang berjalan atau sudah berjalan, bisa dilihat di kiri cell
tersebut.

4
Menunjukkan bahwa cell sedang berjalan

Menunjukkan bahwa cell sudah berjalan

3 Memulai menganalisis data


Masukkan perintah dibawah ini di cell Anda pada Jupyter Notebook lalu run dengan
menggunakan perintah “CTRL + Enter” pada cell yang dipilih.

import numpy as np
import pandas as pd
import matplotlib as mp

Setelah mengimpor library yang dibutuhkan, baca data yang sudah di-download di cell
berikutnya dengan menggunakan perintah sebagai berikut (jangan lupa data yang sudah di-
download di copy ke dalam folder yang sudah dibuat sebelumnya).

df_samples = pd.read_csv('Skin_NonSkin.txt', delimiter='\t', dtype = np.


int16)

Perintah tersebut antara lain:


• df_samples adalah variable untuk menyimpan perintah read_csv, membaca data

yang berekstensi .txt dan menghapus data mentah yang mengandung “/t” dan
mengubah tipe data tersebut menjadi “int16”
• Lalu gunakan perintah df_samples.head() untuk melihat 5 data pertama. Hasilnya
sebagai berikut.

5
Hasil dari perintah untuk memanggil 5 data
pertama, Bisa dilihat data di samping
kanan tersebut tidak memiliki label yang
pasti, maka langkah selanjutnya adalah
menambahkan label pada kolum.

Ubah kolum tersebut dengan label, “B” untuk Blue, “G” untuk Green dan “R” untuk Red serta
“CAT” untuk Category. Gunakan perintah sebagai berikut:

col_list = df_samples.columns.tolist()
df_samples = df_samples.rename(columns = {col_list[0]:"B", col_list[1]:"
G", col_list[2]:"R", col_list[3]:"CAT"})
df_samples.head()

Maka hasilnya akan sebagai berikut. Kolum


sudah di-rename dengan label yang sudah
diubah seperti deksripsi di atas.

4 Normalisasi data

Periksa apakah data tersebut sudah seimbang atau belum dengan cara membuat sebuah
grafik (plot) berdasarkan sample dari kolum “CAT” atau Category.

6
Bisa dilihat berdasarkan grafik diatas, data tersebut belum seimbang maka perlu disama
ratakan. Dalam hal ini, drop atau hapus data yang sama (duplicate) menggunakan perintah
sebagai berikut.

Setelah menghapus atau men-drop data yang duplikat, cek apakah data sudah seimbang atau
belum.

7
Bisa dilihat diatas, walaupun ada perubahan yang signifikan, data tersebut belum sepenuhnya
seimbang. Maka perlu dilakukan teknik oversampling untuk menyesuaikan class distribution
dari data set.

Perintah di atas digunakan untuk mencari data yang minoritas lalu mengacak datanya
sebanyak 84 kali, buat variable X_train dan Y_test (variable untuk data testing) berdasarkan
kolum Category. Lalu gunakan fitting pada kedua data training di variable X dan Y.

Lalu tampilkan kembali grafik untuk melihat apakah sudah seimbang atau belum.

8
Setelah data sudah seimbang, lakukan pembagian data set menjadi data training dan data
testing. Gunakan perintah dibawah sebagai berikut.

Setelah membagi datanya, gunakan model SVM, Decision Tree atau Random Forest untuk
memprediksi data yang sudah di-download di atas dan gunakan perintah dibawah untuk
melihat tingkat akurasi, recall, precision tersebut.

5 Implementasi algoritma Decision Tree pada dataset

Masukkan perintah di bawah ini untuk mengimplementasikan algoritma Decision Tree dan
melihat nilai akurasi pada algoritma tersebut

Melihat tingkat akurasi, algoritma di atas menghasilkan 0.998 (atau sama saja dengan
99.80%). Algoritma ini membuktikan bahwa hasil prediksi yang akan dihasilkan hampir
mencapai 100%. Berikut prediksi yang dihasilkan.

9
Setelah itu gunakan perintah classification_report() untuk melihat akurasi, precision dan
recall seperti gambar di bawah ini.

Latihan soal
• Kunjungi link ini untuk mendownload data tersebut:
https://archive.ics.uci.edu/ml/datasets/Breast+Cancer
• Analisis data tersebut menggunakan algoritma SVM, Random Forest, Decision Tree dan
tunjukkan nilai akurasi, presisi dan recall-nya
• Catatan: gunakan Jupyter Notebook untuk mengerjakan latihan soal ini

10
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
B. ALGORITMA RANDOM FOREST
Oleh : Imam Tahyudin dan Faiz Ichsan Jaya

Pengklasifikasian data menggunakan Jupyter Notebook (python) dengan


algoritma Random Forest.

Random forest (RF) adalah suatu algoritma yang digunakan pada klasifikasi data dalam jumlah
yang besar. Klasifikasi random forest dilakukan melalui penggabungan pohon (tree) dengan
melakukan training pada sampel data yang dimiliki. Penggunaan pohon (tree) yang semakin
banyak akan mempengaruhi akurasi yang akan didapatkan menjadi lebih baik.

Penentuan klasifikasi dengan random forest diambil berdasarkan hasil voting dari tree yang
terbentuk. Pemenang dari tree yang terbentuk ditentukan dengan vote terbanyak.
Pembangunan pohon (tree) pada random forest sampai dengan mencapai ukuran maksimum
dari pohon data. Akan tetapi,pembangunan pohon random forest tidak dilakukan pemangkasan
(pruning) yang merupakan sebuah metode untuk mengurangi kompleksitas ruang. Pembangunan
dilakukan dengan penerapan metode random feature selection untuk meminimalisir kesalahan.

Pertama-tama, download data yang dibutuhkan untuk melakukan


pengklasifikasian. Dalam hal ini, kami menggunakan data dari UCI
Machine Learning Repository, Skin Segmentation Data Set:
https://archive.ics.uci.edu/ml/datasets/skin+segmentation

1 Cara membuka Jupyter Notebook


Pertama-tama, pilih Start dan cari “Ananconda Prompt (Anaconda 3)” setelah itu masukkan
command sebagai berikut.

11
Maka secara otomatis, Jupyter Notebook akan terbuka di default browser pilihan Anda.
Setelah itu buat folder baru dengan nama bebas, dengan cara sebagai berikut. Nama default
folder yang ada di Jupyter Notebook adalah “Untitled Folder”, rename dengan nama yang
Anda inginkan.

2 Cara membuat file Python baru di Jupyter Notebook


Di dalam folder buat file Python baru dengan cara klik tombol “New” lalu pilih Python 3 yang
ada di pojok kanan atas. Lalu akan secara otomatis membuka tab baru seperti berikut.

Pada Jupyter Notebook, setiap perintah dijalankan pada setiap cell seperti gambar di atas.
Untuk menjalankan cell tersebut cukup gunakan perintah “CTRL + Enter” pada cell yang dipilih.

12
Untuk melihat apakah cell tersebut sedang berjalan atau sudah berjalan, bisa dilihat di kiri cell
tersebut.

Menunjukkan bahwa cell sedang berjalan

Menunjukkan bahwa cell sudah berjalan

3 Memulai menganalisis data


Masukkan perintah dibawah ini di cell Anda pada Jupyter Notebook lalu run dengan
menggunakan perintah “CTRL + Enter” pada cell yang dipilih.

import numpy as np
import pandas as pd
import matplotlib as mp

Setelah mengimpor library yang dibutuhkan, baca data yang sudah di-download di cell
berikutnya dengan menggunakan perintah sebagai berikut (jangan lupa data yang sudah di-
download di copy ke dalam folder yang sudah dibuat sebelumnya).

df_samples = pd.read_csv('Skin_NonSkin.txt', delimiter='\t', dtype = np.


int16)

Perintah tersebut antara lain:


• df_samples adalah variable untuk menyimpan perintah read_csv, membaca data

yang berekstensi .txt dan menghapus data mentah yang mengandung “/t” dan
mengubah tipe data tersebut menjadi “int16”
• Lalu gunakan perintah df_samples.head() untuk melihat 5 data pertama. Hasilnya
sebagai berikut.

13
Hasil dari perintah untuk memanggil 5 data
pertama, Bisa dilihat data di samping
kanan tersebut tidak memiliki label yang
pasti, maka langkah selanjutnya adalah
menambahkan label pada kolum.

Ubah kolum tersebut dengan label, “B” untuk Blue, “G” untuk Green dan “R” untuk Red serta
“CAT” untuk Category. Gunakan perintah sebagai berikut:

col_list = df_samples.columns.tolist()
df_samples = df_samples.rename(columns = {col_list[0]:"B", col_list[1]:"
G", col_list[2]:"R", col_list[3]:"CAT"})
df_samples.head()

Maka hasilnya akan sebagai berikut. Kolum


sudah di-rename dengan label yang sudah
diubah seperti deksripsi di atas.

4 Normalisasi data

Periksa apakah data tersebut sudah seimbang atau belum dengan cara membuat sebuah
grafik (plot) berdasarkan sample dari kolum “CAT” atau Category.

14
Bisa dilihat berdasarkan grafik diatas, data tersebut belum seimbang maka perlu disama
ratakan. Dalam hal ini, drop atau hapus data yang sama (duplicate) menggunakan perintah
sebagai berikut.

Setelah menghapus atau men-drop data yang duplikat, cek apakah data sudah seimbang atau
belum.

15
Bisa dilihat diatas, walaupun ada perubahan yang signifikan, data tersebut belum sepenuhnya
seimbang. Maka perlu dilakukan teknik oversampling untuk menyesuaikan class distribution
dari data set.

Perintah di atas digunakan untuk mencari data yang minoritas lalu mengacak datanya
sebanyak 84 kali, buat variable X_train dan Y_test (variable untuk data testing) berdasarkan
kolum Category. Lalu gunakan fitting pada kedua data training di variable X dan Y.

Lalu tampilkan kembali grafik untuk melihat apakah sudah seimbang atau belum.

16
Setelah data sudah seimbang, lakukan pembagian data set menjadi data training dan data
testing. Gunakan perintah dibawah sebagai berikut.

Setelah membagi datanya, gunakan model SVM, Decision Tree atau Random Forest untuk
memprediksi data yang sudah di-download di atas dan gunakan perintah dibawah untuk
melihat tingkat akurasi, recall, precision tersebut.

5 Implementasi algoritma Random Forest pada dataset

Masukkan perintah di bawah ini untuk mengimplementasikan algoritma Random Forest dan
melihat nilai akurasi pada algoritma tersebut

Melihat tingkat akurasi, algoritma di atas menghasilkan 99.89%. Algoritma ini membuktikan
bahwa hasil prediksi yang akan dihasilkan hampir mencapai 100%. Berikut prediksi yang
dihasilkan.

17
Setelah itu gunakan perintah classification_report() untuk melihat akurasi, precision dan
recall seperti gambar di bawah ini.

Latihan soal
• Kunjungi link ini untuk mendownload data tersebut:
https://archive.ics.uci.edu/ml/datasets/Breast+Cancer
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation
https://archive.ics.uci.edu/ml/datasets/Diabetic+Retinopathy+Debrecen+Data+Set
• Analisis data tersebut menggunakan algoritma SVM, Random Forest, Decision Tree dan
tunjukkan nilai akurasi, presisi dan recall-nya
• Catatan: gunakan Jupyter Notebook untuk mengerjakan latihan soal ini

18
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
C. ALGORITMA SUPPORT VECTOR MACHINE (SVM)
Oleh: Imam Tahyudin dan Faiz Ichsan Jaya

Pengklasifikasian data menggunakan Jupyter Notebook (python) dengan


algoritma Support Vector Machine

Support Vector Machine (SVM) merupakan salah satu metode dalam supervised learning yang
biasanya digunakan untuk klasifikasi (seperti Support Vector Classification) dan regresi (Support
Vector Regression). Dalam pemodelan klasifikasi, SVM memiliki konsep yang lebih matang dan
lebih jelas secara matematis dibandingkan dengan teknik-teknik klasifikasi lainnya. SVM juga
dapat mengatasi masalah klasifikasi dan regresi dengan linear maupun non linear.

Pertama-tama, download data yang dibutuhkan untuk melakukan


pengklasifikasian. Dalam hal ini, kami menggunakan data dari UCI
Machine Learning Repository, Skin Segmentation Data Set:
https://archive.ics.uci.edu/ml/datasets/skin+segmentation

1 Cara membuka Jupyter Notebook


Pertama-tama, pilih Start dan cari “Ananconda Prompt (Anaconda 3)” setelah itu masukkan
command sebagai berikut.

Maka secara otomatis, Jupyter Notebook akan terbuka di default browser pilihan Anda.
Setelah itu buat folder baru dengan nama bebas, dengan cara sebagai berikut. Nama default

19
folder yang ada di Jupyter Notebook adalah “Untitled Folder”, rename dengan nama yang
Anda inginkan.

2 Cara membuat file Python baru di Jupyter Notebook


Di dalam folder buat file Python baru dengan cara klik tombol “New” lalu pilih Python 3 yang
ada di pojok kanan atas. Lalu akan secara otomatis membuka tab baru seperti berikut.

Pada Jupyter Notebook, setiap perintah dijalankan pada setiap cell seperti gambar di atas.
Untuk menjalankan cell tersebut cukup gunakan perintah “CTRL + Enter” pada cell yang dipilih.
Untuk melihat apakah cell tersebut sedang berjalan atau sudah berjalan, bisa dilihat di kiri cell
tersebut.

Menunjukkan bahwa cell sedang berjalan

Menunjukkan bahwa cell sudah berjalan

20
3 Memulai menganalisis data
Masukkan perintah dibawah ini di cell Anda pada Jupyter Notebook lalu run dengan
menggunakan perintah “CTRL + Enter” pada cell yang dipilih.

import numpy as np
import pandas as pd
import matplotlib as mp

Setelah mengimpor library yang dibutuhkan, baca data yang sudah di-download di cell
berikutnya dengan menggunakan perintah sebagai berikut (jangan lupa data yang sudah di-
download di copy ke dalam folder yang sudah dibuat sebelumnya).

df_samples = pd.read_csv('Skin_NonSkin.txt', delimiter='\t', dtype = np.


int16)

Perintah tersebut antara lain:


• df_samples adalah variable untuk menyimpan perintah read_csv, membaca data

yang berekstensi .txt dan menghapus data mentah yang mengandung “/t” dan
mengubah tipe data tersebut menjadi “int16”
• Lalu gunakan perintah df_samples.head() untuk melihat 5 data pertama. Hasilnya
sebagai berikut.

Hasil dari perintah untuk memanggil 5 data


pertama, Bisa dilihat data di samping
kanan tersebut tidak memiliki label yang
pasti, maka langkah selanjutnya adalah
menambahkan label pada kolum.

21
Ubah kolum tersebut dengan label, “B” untuk Blue, “G” untuk Green dan “R” untuk Red serta
“CAT” untuk Category. Gunakan perintah sebagai berikut:

col_list = df_samples.columns.tolist()
df_samples = df_samples.rename(columns = {col_list[0]:"B", col_list[1]:"
G", col_list[2]:"R", col_list[3]:"CAT"})
df_samples.head()

Maka hasilnya akan sebagai berikut. Kolum


sudah di-rename dengan label yang sudah
diubah seperti deksripsi di atas.

4 Normalisasi data

Periksa apakah data tersebut sudah seimbang atau belum dengan cara membuat sebuah
grafik (plot) berdasarkan sample dari kolum “CAT” atau Category.

22
Bisa dilihat berdasarkan grafik diatas, data tersebut belum seimbang maka perlu disama
ratakan. Dalam hal ini, drop atau hapus data yang sama (duplicate) menggunakan perintah
sebagai berikut.

Setelah menghapus atau men-drop data yang duplikat, cek apakah data sudah seimbang atau
belum.

23
Bisa dilihat diatas, walaupun ada perubahan yang signifikan, data tersebut belum sepenuhnya
seimbang. Maka perlu dilakukan teknik oversampling untuk menyesuaikan class distribution
dari data set.

Perintah di atas digunakan untuk mencari data yang minoritas lalu mengacak datanya
sebanyak 84 kali, buat variable X_train dan Y_test (variable untuk data testing) berdasarkan
kolum Category. Lalu gunakan fitting pada kedua data training di variable X dan Y.

Lalu tampilkan kembali grafik untuk melihat apakah sudah seimbang atau belum.

24
Setelah data sudah seimbang, lakukan pembagian data set menjadi data training dan data
testing. Gunakan perintah dibawah sebagai berikut.

Setelah membagi datanya, gunakan model SVM, Decision Tree atau Random Forest untuk
memprediksi data yang sudah di-download di atas dan gunakan perintah dibawah untuk
melihat tingkat akurasi, recall, precision tersebut.

Implementasi algoritma SVM pada dataset


5
Masukkan perintah di bawah ini untuk mengimplementasikan algoritma SVM dan melihat
nilai akurasi pada algoritma tersebut

Melihat tingkat akurasi, algoritma di atas menghasilkan 99.30%. Algoritma ini membuktikan
bahwa hasil prediksi yang akan dihasilkan hampir mencapai 100%. Berikut prediksi yang
dihasilkan.

25
Setelah itu gunakan perintah classification_report() untuk melihat akurasi, precision dan
recall seperti gambar di bawah ini.

Latihan soal
• Kunjungi link ini untuk mendownload data tersebut:
https://archive.ics.uci.edu/ml/datasets/Breast+Cancer
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation
https://archive.ics.uci.edu/ml/datasets/Diabetic+Retinopathy+Debrecen+Data+Set
• Analisis data tersebut menggunakan algoritma SVM, Random Forest, Decision Tree dan
tunjukkan nilai akurasi, presisi dan recall-nya
• Catatan: gunakan Jupyter Notebook untuk mengerjakan latihan soal ini

26
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
D. ALGORITMA NAÏVE BAYES
Oleh: Imam Tahyudin dan Alung Susli

NAÏVE BAYES
Algoritma Naive Bayes memprediksi peluang di masa depan berdasarkan pengalaman di masa
sebelumnya sehingga dikenal sebagai Teorema Bayes. Ciri utama dari Naive Bayes Classifier ini adalah
asumsi yg sangat kuat (naïf) akan independensi dari masing-masing kondisi / kejadian.
Keuntungan penggunan metode ini yaitu hanya membutuhkan jumlah data pelatihan (training data)
yang kecil untuk menentukan estimasi parameter yang diperlukan dalam proses pengklasifikasian. Karena
yang diasumsikan sebagai variabel independent, maka hanya varians dari suatu variabel dalam sebuah
kelas yang dibutuhkan untuk menentukan klasifikasi, bukan keseluruhan dari matriks kovarians.

Script di atas digunakan untuk mengaktifkan package pandas dan numpy yang akan digunakan pada
tahapan analisis. Package pandas sendiri digunakan untuk pengolahan data yang berkaitan dengan data
frame, sedangkan package numpy digunakan untuk manipulasi array secara mudah dan cepat.

Selanjutnya digunakan script untuk menginputkan data dari perangkan komputer ke dalam python.

27
Sebelum melakukan analisis, terlebih dahulu digunakan fungsi “ .info ” untuk menampilkan informasi data
yang akan dilakukan analisis.

Berikut ini output-nya :

Data yang akan dianalisis memiliki 7 variabel (kolom) yaitu kolom sex, age, time, number of warts,
type, area, result of treatment yang memiliki type data integer dan
kolom time dengan type data float.
Selanjutnya, digunakan fungsi “ .empty “ untuk melakukan pengecekan apakah terdapat deret data
yang kosong.

Output menunjukan False artinya tidak terdapat deret yang kosong di dalam data yang akan
digunakan.
Selanjutnya digunakan fungsi “ .size “ untuk melihat ukuran data yang akan digunkaan. Setelah
melihat hasilnya, ternyata data yang akan digunakan yaitu sebanyak 630 data.

28
Tahapan selanjutnya yaitu menentukan variabel independen dan variabel dependen dari data yang
akan dianalisis. Berikut script yang digunakan:

Kolom result of treatment di drop atau di hapus dari data frame karena akan menjadi variabel
dependen.

Setelah menentukan variabel independen dan variabel dependen, selanjutnya akan dilakukan analisis
menggunakan klasifikasi Naive Bayes. Pertama dilakukan Train Test Split untuk membagi dataset
menjadi training set dan test set.

29
Script di atas membagi dataset menjadi 80% training set dan 20% test set. Yang artinya dari 630
data, training setakan berisi 504 data dan test set berisi 120 data.
Setalah dilakukan pemisahan, selanjutnya akan dilakukan prediksi pada training set dan test set.

Selanjutnya, digunakan script untuk menentukan hasil prediksi dari x_test

Untuk menentukan nilai probabilitas dari x_test maka digunakan script berikut ini:

30
Setelah diperoleh nilai prediksi (y_pred), maka tahapan selanjutnya yaitu melakukan Confussion Matrix.

Gambar diatas merupakan hasil confusion matrix dan untuk mempermudah dalam membaca, maka
digunakan script untuk merapihkan hasil confusion matrix.

Gambar diatas menunjukan bahwa, prediksi traetment dinyatakan gagal dan


ternyata traetment gagal sebanyak 7, prediksi traetment gagal dan ternyata traetment berhasil 1,
prediksi traetment berhasil dan ternyata traetment gagal sebanyak 2 dan prediksi traetment berhasil
dan ternyata treatmen berhasil sebanyak 8.
Karena sebagian besar prediksi dan hasil nya sesuai maka dapat di katakan
bahwa tratment cryotherapy baik digunakan unutk melakukan perawatan karena kutil.
Selanjutnya, akan dilakukan perhitungan nilai akurasi.

31
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
E. ALGORITMA K- NEAREST NEIGHBOR (K-NN)
Oleh: Imam Tahyudin dan Menik Purwati

K-Nearest Neighbors (K-NN)


⚫ Apa itu K-NN ?

K-NN merupakan salah satu algoritma untuk klasifikasi data suatu obyek berdasarkan sejumlah
K-data training yang memiliki jarak paling dekat (nearest neighbor) dengan objek tersebut.

K-NN termasuk dalam supervised learning, dimana hasil query instance yang baru
diklasifikasikan berdasarkan mayoritas kedekatan jarak dari kategori yang ada dalam KNN.

Tujuan dari algoritma K-NN adalah untuk mengklasifikasi objek baru berdasarkan atribut dan
training samples.

32
Tahapan Algoritma K-NN:

1. Menentukan parameter k (jumlah tetangga paling dekat).

2. Menghitung kuadrat jarak eucliden objek terhadap data training yang diberikan.

3. Mengurutkan hasil no. 2 secara berurutan dari nilai tertinggi ke terendah.

4. Mengumpulkan kategori Y (klasifikasi nearest neighbors berdasarkan nilai k)

5. Dengan menggunakan kategori nearest neighhbors yang paling mayoritas maka dapat
diprediksi kategori objek.

Contoh Studi Kasus:

Disediakan data set dengan nama “KNNbuah” yang berisi informasi mengenai jenis buah seperti:

- fruit_label

- fruit_name

- fruit_subtype

- massa

- width

- height

- color_score

Lakukan pediksi jenis buah berdasarkan weight, height, mass, dan color dari buah itu sendiri!

Langkah 1. Import Library

33
Langkah 2. Load Data Set

Langkah 3. Explore Data Set

Untuk melihat 10 baris pertama, gunakan perintah:

data.head(10)

Untuk mengetahui jumlah baris dan kolom gunakan perintah:

data.shape

Data set terdiri dari 7 kolom, yang digunakan untuk menentukan yang mana jadi target values,
yang mana jadi predictors. Kita gunakan fruit_label sebagai response variable (target value) dan
explanatory variable (predictors) kita gunakan mass, width, dan height.

Gunakan dict key pair value untuk mempermudah interpretasi:

34
Langkah 4. Split Data set dan Build Classifier Model

4.1 Split Data set (training data dan set data)

X adalah explanatory variable

y adalah response variable

Sekarang, kita lihat hasil setelah di split:

Dimensi X_train menjadi 40 baris dan 3 kolom, dimensi X_test menjadi 10 baris dan 3 kolom,
dimensi y_train menjadi 40 baris dan 1 kolom, dimensi y_test menjadi 10 baris dan 1 kolom.

Untuk lebih jelasnya, ketikkan program berikut:

35
4.2 Build model dan train the data

Prediksi dengan jarak dari 5 titik terdekat (n_neighbors = 5)

Dan untuk train data nya, data yang kita masukkan adalah training data

Langkah 5. Accuracy Score untuk Test Data

36
Plot the decision boundaries of the k-NN classifier

37
Langkah 6. Visualize

Plot berdasarkan height dan weight

Langkah 7. Prediksi Data Baru

Misal uji buah dengan massa 30 gram, lebar 6 cm, dan tinggi 5 cm.

Coba buah dengan massa 100 gram, lebar 6 cm, dan tinggi 8 cm.

38
Latihan:

Disediakan data set dengan nama “KNNtransportasi” yang berisi:

- kode_trans

- jenis_transportasi

- nama_transposrtasi

- berat

- panjang

- lebar

- color_score

Lakukan prediksi terhadap jenis transportasi dengan berdasarkan pada berat, panjang, lebar, dan
color.

39
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
F. ALGORITMA SIMPLE LINEAR REGRESSION
Oleh: Imam Tahyudin dan Amelia Mawadhah Al Fathani

Simple Linear Regression


Dataset ini berisi business domain yang sangat simpel.

Isinya adalah perbandingan YearsExperience seorang karyawan dengan Salary yang


didapatkannya.

Tugas dari Machine Learning dengan algoritma Simple Linear Regression ini nanti adalah

(1) Adakah korelasi antara YearsExperience dengan Salary?,


(2) Bagaimana model korelasinya?, dan
(3) Bagaimana bentuk grafik korelasinya?

Oke, ketiga hal diatas adalah Machine Learning dilihat dari sisi orang teknis. Lalu adakah sisi
bisnis yang bisa dilihat dari kasus ini? Mengingat dataset yang digunakan pun diambil dari suatu
perusahaan.

Tentu saja ada.

Sisi bisnis yang bisa dilihat dan bisa dibantu dengan Machine Learning kali ini adalah:

1. Perusahaan bisa mengetahui apakah semua gaji karyawannya sudah mengikuti model
Machine Learning yang terbentuk?
2. Sehingga jika ada karyawan yang gajinya terlalu sedikit (atau terlalu banyak)
dibandingkan dengan lama pengalaman kerjanya (berdasarkan model Machine Learning),
maka perusahaan bisa melakukan adjustment.

40
41
Melakukan Fitting Simple Linear Regression pada Training-Set

Demikianlah kita sudah melakukan fitting Simple Linear Regression ini pada training set
(X_train dan y_train), dan menciptakan model Machine Learning yang kita butuhkan.
Memprediksi Hasil Test-Set

42
Tambahkan kode berikut, lalu eksekusi:

Hasil Outputnya

Apa yang bisa kita baca dari keduanya?

Seperti yang sudah kita ketahui bahwa isi dari y_test adalah data asli daftar gaji yang diperoleh
oleh para karyawan, sedangkan isi dari y_pred adalah prediksi daftar gaji para karyawan yang
seharusnya menurut model Machine Learning kita ini.

Coba bandingkan secara manual isi dari keduanya. Akan tampak bahwa data hasil prediksi tidak
akan jauh berbeda dengan data asli. Ini membuktikan bahwa model Machine Learning kita ini
berhasil memprediksi daftar gaji karyawan (yang seharusnya didapatkan oleh mereka).

Pada langkah berikutnya, akan saya tunjukkan grafik visualisasi model Machine Learning ini
terhadap data aslinya.

Visualiasi Model Machine Learning

Tujuan dari visualiasi ini adalah memudahkan kita melihat hasil prediksi model Machine
Learning ini: bahwa hasil dari training-set dan test-set tidaklah jauh berbeda.

VISUALISASI HASIL PREDIKSI PADA TRAINING-SET

Tambahkan kode berikut:

43
Eksekusi kode diatas, jika sukses akan muncul suatu grafik seperti ini:

Cara membaca grafik diatas:

1. Simbol • merah: adalah data asli hasil observasi.


2. Garis biru menyerong: adalah hasil prediksi dari model Machine Learning ini, dimana
digaris itulah seharusnya banyak gaji karyawan terhadap lama kerja berada.

Ambil contoh titik merah yang berada pada proyeksi x-axis 4 tahun lama kerja. Menurut grafik,
karyawan ini mendapat gaji sekitar $55k. Namun menurut model Machine Learning, karyawan
ini seharusnya mendapat gaji sekitar $65k

VISUALISASI HASIL PREDIKSI PADA TEST-SET

Tambahkan kode berikut:

Eksekusi kode diatas, jika sukses akan muncul suatu grafik seperti ini:

44
Cara membaca grafik diatas:

1. Garis biru menyerong: adalah garis yang sama seperti yang kita dapat/buat pada grafik
sebelumnya, yaitu: model Simple Linear Regression yang di-fitting pada training set.
2. Simbol • merah: adalah hasil observasi pada test-set (yang mana berbeda data asal
dengan grafik sebelumnya).

Pada grafik ini jugalah terdapat prediksi Machine Learning terhadap kasus ini, yaitu: Berapa
besar gaji yang seharusnya diterima oleh karyawan baru jika dia berada pada lama waktu kerja
tertentu?

Catatan: Tentu saja tidak ada hasil prediksi yang 100% tepat, dan hal ini wajar. Dalam contoh
diatas terlihat ada 2 proyeksi yang berada agak jauh dari trend line.

45
ALGORITMA KLASIFIKASI, ESTIMASI, PREDIKSI
G. ALGORITMA LOGISTIC REGRESSION
Oleh: Imam Tahyudin dan Amelia Mawadhah Al Fathani

Regresi Logistik
STUDI KASUS

Kali ini kita akan coba memecahkan masalah dari klien kita. Ia merupakan seorang pemilik
showroom mobil. Saat ini ia memberikan kepada kita data pelanggannya berupa:

• User ID
• Jenis kelamin
• Usia (dalam tahun)
• Estimasi gaji (gaji per 6 bulan, dalam ribu rupiah. Misal, 8000 artinya 8 juta)
• Keputusan beli atau tidak

Ia ingin membuat sebuah sistem yang bisa memprediksi apakah calon pelanggan ke depannya
akan membeli produk SUV di showroomnya atau tidak berdasarkan data usia dan gaji. Sehingga
ke depannya, ia ingin membuat iklan di sosial media/internet yang dia targetkan ke mereka saja
yang kemungkinan besar akan membeli produknya.

# Mengimpor library

#Mengimport dataset

# Membagi data ke dalam training dan test set

46
# Feature Scaling

# Membuat model regresi logistik dari training set

# Memprediksi hasil modelnya ke test set

# Membuat Confusion Matrix

# Memvisualisasikan hasil training set

47
Hasilnya

# Memvisualisasikan hasil test set

48
ALGORITMA KLASTERING
A. ALGORITMA K-MEANS
Oleh: Imam Tahyudin dan Alung Susli

K-MEANS
K-Means adalah adalah salah satu “unsupervised machine learning algorithms” yang paling
sederhana dan populer .Tujuan dari algoritma ini adalah untuk menemukan grup dalam data, dengan
jumlah grup yang diwakili oleh variabel K. Variabel K sendiri adalah jumlah cluster yang kita inginkan.

Langkah 1 : Import Libraries

Import library yang dibutuhkan, seperti gambar dibawah ini:

Keterangan :

Pandas untuk membaca dan menulis spreadsheet


Numpy untuk melakukan perhitungan yang efisien
Matpotlib untuk visualisasi data
Langkah 2 : Menginput Data
Dataset yang digunakan disini yaitu sampel data pengemudi (driver). Ketikkan syntak dibawah ini untuk
menginputkan dan membaca data.

Pada line pertama merupakan syntak untuk menginputkan data go_track_tracks.csv. kemudian pada line
kedua merupakan syntak untuk membaca data. Berikut merupakan isi dari data go_track_tracks.csv

49
Terdapat 10 variabel pada data set yang ada dan ada beberapa variabel yang tidak dibutuhkan sehingga
harus dihapuskan.

Langkah 3 : Menghilangkan kolom yang tidak diperlukan

Hilangkan beberapa kolom yang tidak diperlukan . Sehingga hanya menyisakan 4 kolom yakni
id, id_android, speed dan distance.

Hasil dari syntak diatas adalah sebagai berikut:

Selanjutnya menentukan variabel yang diklusterkan, disini menggunakan variabel jarak pada sumbu X dan
variabel kecepatan pada sumbu Y.

50
Dataset diatas divisualisasikan persebaran datanya sebagai berikut:

Langkah 4 : Menentukan Nilai K

Sebelum menentukan nilai K, harus menggubah variabel data frame menjadi array terlebih dahulu

Kemudian menstandarkan kembali ukuran variabel, agara data dapat kembali seperti jenis data diawal
sebelum diarraykan

51
Mentukan nilai K, dalam menentukan nilai K (n_clusters) yaitu bebas ditentukan. Pada contoh ini, kita akan
mengkonfigurasi dan menentukan nilai K sebesar 3 cluster dan dirandom sebanyk 123. Selain itu juga
menetukan kluster dari data yang telah di standarkan.

Langkah 5 : Memvisualisasikan Kluster

Untuk memvisualisasikan kluster, kita harus menampilkan centroid terlebih dahulu, berikut merupakan
syntak untuk menampilkan pusat kluster beserta outputnya.

52
Selanjutnya menampilkan hasil cluster dan Menambahkan kolom data frame driver.

Kemudian memvisualisasikan hasil cluster

53
ALGORITMA KLASTERING
B. ALGORITMA HIREARICHAL CLUSTERING
Oleh: Imam Tahyudin dan Nailis Syafi’ah

HIREARICHAL CLUSTERING
Hierarchical Clustering adalah suatu metode hierarchical clustering yang bersifat bottom-up
yaitu menggabungkan n buah klaster menjadi satu klaster tunggal. Metode ini dimulai dengan
meletakkan setiap objek data sebagai sebuah klaster tersendiri (atomic cluster) dan selanjutnya
menggabungkan klaster-klaster tersebut menjadi klaster yang lebih besar dan lebih besar lagi
sampai akhirnya semua objek data menyatu dalam sebuah klaster tunggal.
1. Import Library yang dibutuhkan seperti gambar dibawah ini:

2. Buat variable dengan nama “data” untuk menyimpan dataset seperti gambar dibaah ini:

3. Buat grafik dengan menggunakan perintah dibawah ini:

54
4. Maka akan menghasilkan grafik seperti gambar dibawah ini:

5. Buatlah fungsi sebagai berikut untuk pengklasifikasian clustering seperti dibawah ini:

55
56
6. Panggil fungsi “hierarchial_clustering(data, “single”,6) seperti berikut:

7. Maka akan menghasilkan output seperti dibawah ini:

Keterangan:
Dari gambar tersebut terlihat bahwa terdapat 6 warna yang berbeda, karena jumlah cluster
sebanyak 6.
8. Panggil fungsi seperti gambar dibawah ini:

9. Maka akan menghasilkan output seberti gambar dibawah ini:

57
Keterangan:
Dari gambar tersebut terlihat bahwa terdapat 5 warna yang berbeda, karena jumlah cluster
sebanyak 5.
10. Panggil fungsi seperti yang ada dibawah ini:

11. Maka akan menfhasilkan output seperti berikut ini:

Keterangan:
Dari gambar tersebut terlihat bahwa terdapat 4 warna yang berbeda, karena jumlah cluster
sebanyak 4.

58
12. Panggil fungsi seperti dibawah ini:

13. Maka akan menghasilkan hasil seperti berikut:

Keterangan:
Dari gambar tersebut terlihat bahwa terdapat 3 warna yang berbeda, karena jumlah cluster
sebanyak 3.
14. Panggil fungsi seperti gambar dibawah ini:

15. Maka akan menghasilkan output seperti berikut:

Keterangan:
Dari gambar tersebut terlihat bahwa terdapat 2 warna yang berbeda, karena jumlah cluster
sebanyak 2.
59
16. Panggil fungsi seperti gambar dibawah ini:

17. Maka akan menghasilkan output seperti berikut ini:

Keterangan:
Dari gambar tersebut terlihat bahwa hanya terdapat 1 warna, karena hanya terdapat 1 cluster.

LATIHAN SOAL:
⚫ Carilah sebuah dataset yang dapat digunakan dalam Hirearical Clustering
⚫ Analisis dataset tersebut menggunakan algoritma Hirearichal Clustering
⚫ Catatan: gunakan Jupyter Notebook untuk mengerjakan latihan soal ini

60
ALGORITMA ASOSIASI
ALGORITMA FP-GROWTH
Oleh: Imam Tahyudin dan Nailis Syafi’ah

FP GROWTH
Frequent Pattern Growth (FP Growth) adalah salah satu alternatif algoritma yang dapat
digunakan untuk menentukan himpunan data yang paling sering muncul (frequent itemset) dalam
sebuah kumpulan data.
1. Masukkan data transaksi yang ada di bawah ini

2. Cek data tersebut dengan menginputkan syntak “dataset”, maka secara otomatis akan
memunculkan data yang telah kita inputkan sebelumnya.

3. Kita dapat mengubahnya menjadi format yang benar melalui TransactionEncoder


sebagai berikut:

4. Maka secara otomatis akan menghasilkan output seperti dibawah ini:

61
5. Sekarang, kita kembalikan item dan set item dengan setidaknya 60% dukungan:

6. Maka akan menghasilkan output seperti berikut:

7. Secara default, fp growth mengembalikan indeks kolom item, yang mungkin berguna
dalam operasi hilir seperti penambangan aturan asosiasi. Untuk keterbacaan yang lebih
baik, kita dapat mengatur use_colnames = True untuk mengonversi nilai integer ini
menjadi nama masing-masing item:

62
8. Maka akan menghasilkan output seperti berikut:

9. Selanjutnya, masukkan nilai confidence dengan fungsi sebperti berikut:

10. Maka akan menghasilkan output seperti berikut:

LATIHAN SOAL
⚫ Terdapat sebuah data transaksi sebagai berikut:
1. (rinso, sabun, sampo, sikat gigi)
2. (sikat gigi, pasta gigi, sabun, bedak, sisir)
3. (rinso, bedak, sabun, pasta gigi, sikat gigi, kapas)
4. (bedak, sampo, minyak wangi, kapas, sabun)
5. (rinso, minyak wangi, sabun, kapas)
6. (sisir, sabun, minyak wangi, rinso, pasta gigi)
⚫ Analisis data tersebut menggunakan algoritma FP-Growth
⚫ Catatan: gunakan Jupyter Notebook untuk mengerjakan latihan soal ini
63