Anda di halaman 1dari 9

BAB I

PENDAHULUAN

1.1 Dasar Teori


Klasifikasi merupakan salah satu teknik yang terdapat pada machine learning.
Tujuan atau objectif dari teknik klasifikasi adalah untuk memprediksi kelas target
secara akurat dengan menggunakan variabel-variabel terkait. Terdapat banyak model
algoritma dalam teknik klasifikasi. Model algoritma klasfikasi memiliki nilai yang
berbeda-beda dan sangat bergantung pada jumlah atribut dan records dari dataset. Pada
praktikum ini akan dibahas enam macam algoritma klasifikasi yaitu k-nearest
neighbors, gaussian naive bayes, support vector machines, logistic regression, linear
discriminant analysis, dan decision tree classifier.
Algoritma k-nearest neighbor melakukan klasifikasi terhadap objek
berdasarkan data pembelajaran yang jaraknya paling dekat dengan objek tersebut. Data
pembelajaran pada metode ini, diproyeksikan ke ruang berdimensi banyak, dimana
masing-masing dimensi merepresentasikan fitur dari data. Ruang ini dibagi menjadi
bagian-bagian berdasarkan klasifikasi data pembelajaran. Sebuah titik pada ruang ini
ditandai kelas c jika kelas c merupakan klasifikasi yang paling banyak ditemui pada k
buah tetangga terdekat titk tersebut. Dekat atau jauhnya tetangga biasanya dihitung
berdasarkan jarak Euclidean.
Algoritma naive bayes merupakan sebuah metoda klasifikasi menggunakan
metode probabilitas dan statistik. Algoritma ini memprediksi peluang di masa depan
berdasarkan pengalaman di masa sebelumnya. Ciri utama dr Naïve Bayes Classifier ini
adalah asumsi yg sangat kuat (naïf) akan independensi dari masing-masing kondisi /
kejadian.
Support vector machine adalah sistem pembelajaran yang menggunakan ruang
hipotesis berupa fungsi-fungsi linier dalam sebuah ruang fitur (feature space)
berdimensi tinggi, dilatih dengan algoritma pembelajaran yang didasarkan pada teori
optimasi dengan mengimplementasikan learning bias yang berasal dari teori
pembelajaran statistik.
Analisis diskriminan linear atau linear discriminant analysis adalah generalisasi
diskriminan linear Fisher, yaitu sebuah metode untuk mencari kombinasi linear fitur
yang menjadi ciri atau yang memisahkan dua atau beberapa objek atau peristiwa.
Kombinasi yang diperoleh dapat dijadikan pengklasifikasi linear, atau biasanya
digunakan untuk proses reduksi dimensionalitas sebelum pengklasifikasian.
Regresi logistic atau logistic digunakan untuk prediksi probabilitas kejadian
suatu peristiwa dengan mencocokkan data pada fungsi logit kurva logistik. Metode ini
merupakan model linier umum yang digunakan untuk regresi binomial. Seperti analisis
regresi pada umumnya, metode ini menggunakan beberapa variabel prediktor, baik
numerik maupun kategori.
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 sederhana, sehingga pengambil keputusan akan lebih
menginterpretasikan solusi dari permasalahan.
1.2 Permasalahan
1.2.1 Bagaimana evaluasi algoritma klasifikasi lainnya diluar yang ada pada modul
praktikum (KNN, NB, dan SVM) terhadap iris data set?
1.2.2 Bagaimana evaluasi algoritma klasifikasi yang ada pada modul praktikum
(KNN, NB, dan SVM) terhadap haberman’s survival data set?
1.3 Tujuan
1.3.1 Menjelaskan evaluasi algoritma klasifikasi lainnya diluar yang ada pada modul
praktikum (KNN, NB, dan SVM) terhadap iris data set.
1.3.2 Menjelaskan evaluasi algoritma klasifikasi yang ada pada modul praktikum
(KNN, NB, dan SVM) terhadap haberman’s survival data set.
BAB II
PEMBAHASAN

2.1 Evaluasi Algoritma Terhadap Iris Data Set


Pada modul praktikum telah dijelaskan evaluasi algoritma klasifikasi model K-
Nearest Neighbors (KNN), Gaussian Naive Bayes (NB), dan Support Vector
Machines (SVM) terhadap iris data set. Pada laporan ini akan dibahas evaluasi
algoritma klasifikasi model lainnya terhadap iris data set yaitu model Logistic
Regression, Linear Discriminant Analysis, dan Decision Tree Classifier. Langkah
yang dilakukan untuk evaluasi algoritma pada laporan ini dibagi menjadi dua yaitu
pengecekan/ evaluasi algoritma, dan membuat prediksi dengan model terbaik.
2.1.1 Evaluasi algoritma
Berikut adalah perintah script untuk melakukan pengecekan/ evaluasi
algoritma pada iris data set dengan menggunakan model Logistic Regression,
Linear Discriminant Analysis, dan Decision Tree Classifier.
import sys, scipy, numpy, matplotlib, pandas, sklearn
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
from sklearn import model_selection
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.linear_model import LogisticRegression
from sklearn.discriminant_analysis import
LinearDiscriminantAnalysis
from sklearn.tree import DecisionTreeClassifier
url = "http://archive.ics.uci.edu/ml/machine-learning-
databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length',
'petal-width', 'class']
dataset = pandas.read_csv(url, names=names)
array = dataset.values
X = array[:,0:4]
Y = array[:,4]
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation =
model_selection.train_test_split(X, Y,
test_size=validation_size, random_state=seed)
scoring = 'accuracy'
models = []
models.append(('LR', LogisticRegression()))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('DTC', DecisionTreeClassifier()))
results = []
names = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10,
random_state=seed)
cv_results = model_selection.cross_val_score(model,
X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(),
cv_results.std())
print(msg)

Proses evaluasi algoritma klasifikasi dilakukan dengan tiga langkah utama


yaitu membuat validasi dataset, melakukan test harness atau k-folds cross
validation, dan membagun model. Validasi dataset dilakukan untuk mengetahui
bahwa model yang dibuat itu bagus untuk evaluasi dengan menggunakan
metode statistik untuk memperkirakan keakuratan model yang dibuat pada data
yang tidak terlihat selain itu juga untuk perkiraan yang lebih konkret mengenai
keakuratan model terbaik pada data yang tidak terlihat dengan mengevaluasi
data aktual yang tidak terlihat. Artinya, kita akan menahan beberapa data yang
tidak dapat dilihat oleh algoritma dan akan menggunakan data ini untuk
mendapatkan informasi tentang seberapa akurat model terbaik sebenarnya. Kita
akan membagi dataset yang telah dimuat menjadi dua, 80% diantaranya akan
digunakan untuk melatih model dan 20% digunakan untuk data validasi. Setelah
perintah validasi dieksekusi, kita sudah memiliki dua data yaitu X_train dan
Y_train untuk mempersiapkan model dan rangkaian X_validation dan
Y_validation yang dapat digunakan selanjutnya. Pada test harness, kita akan
menggunakan validasi silang 10 kali lipat untuk memperkirakan akurasi. Untuk
itu dataset dibagi menjadi 10 bagian, 9 untuk latihan dan 1 untuk pengujian dan
diulangi untuk semua kombinasi. Perintah ini menggunakan metrik “accuracy”
untuk mengevaluasi model. Ini merupakan rasio dari jumlah kejadian yang
diprediksi dengan benar dibagi dengan jumlah total kasus dalam dataset
dikalikan dengan 100 untuk memberikan persentase (misalnya 95% akurat).
Disini digunakan variabel penilaian saat menjalankan build dan mengevaluasi
setiap model di langkah selanjutnya. Setelah itu akan dilakukan evaluasi
terhadap 3 algoritma yang berbeda yaitu Logistic Regression, Linear
Discriminant Analysis, dan Decision Tree Classifier. Setelah dilakukan
pengecekan/ evaluasi terhadap ketiga model algoritma tersebut akan didapatkan
estimasi akurasinya masing-masing seperti yang ditunjukkan gambar berikut.

2.1.2 Membuat prediksi


Proses evaluasi algoritma menghasilkan nilai estimasi akurasi untuk
masing-masing model. Dari hasil output evaluasi tersebut, didapatkan model
dengan nilai estimasi akurasi tertinggi adalah Linear Discriminant Analysis.
Selanjutnya dilakukan langkah pembuatan prediksi atau pengujian tentang
keakuratan model tersebut terhadap data yang ada. Berikut perintah script untuk
membuat prediksi dengan model Linear Discriminant Analysis.
lda = LinearDiscriminantAnalysis()
lda.fit(X_train, Y_train)
predictions = lda.predict(X_validation)
print(accuracy_score(Y_validation, predictions))
print(confusion_matrix(Y_validation, predictions))
print(classification_report(Y_validation, predictions))
Dengan menggunakan nilai X_train, Y_train, X_validation, dan
Y_validation sebelumnya, perintah tersebut akan menghasilkan nilai akurasi,
confusion matrix, dan classification report seperti pada gambar berikut.

Confusion matrix memberikan indikasi dari tiga kesalahan yang dibuat, dan
laporan klasifikasi (classification report) memberikan rincian setiap kelas
(class-species) dengan precision, recall, f1-score dan support.
2.2 Evaluasi Algoritma Terhadap Haberman’s Survival Data Set
Selain evaluasi ketiga model algoritma diatas, pada laporan ini juga dibahas
evaluasi model K-Nearest Neighbors (KNN), Gaussian Naive Bayes (NB), dan
Support Vector Machines (SVM) terhadap haberman’s survival dataset. Langkah
yang dilakukan untuk evaluasi algoritma tersebut sama seperti pada evaluasi ketiga
algoritma sebelumnya.
2.2.1 Evaluasi algoritma
Berikut adalah perintah script untuk melakukan pengecekan/ evaluasi
algoritma terhadap haberman’s survival data set dengan menggunakan model
K-Nearest Neighbors (KNN), Gaussian Naive Bayes (NB), dan Support Vector
Machines (SVM).
import sys, scipy, numpy, matplotlib, pandas, sklearn
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
from sklearn import model_selection
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
url = "http://archive.ics.uci.edu/ml/machine-learning-
databases/haberman/haberman.data"
names = ['age', 'year', 'axillary-nodes', 'survival-status']
dataset = pandas.read_csv(url, names=names)
array = dataset.values
X = array[:,0:3]
Y = array[:,3]
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation =
model_selection.train_test_split(X, Y,
test_size=validation_size, random_state=seed)
scoring = 'accuracy'
models = []
models.append(('KNN', KNeighborsClassifier()))
models.append(('NB', GaussianNB()))
models.append(('SVM', SVC(gamma="auto")))
results = []
names = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10,
random_state=seed)
cv_results = model_selection.cross_val_score(model,
X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(),
cv_results.std())
print(msg)

Sama seperti evaluasi algoritma pada pembahasan sebelumnya, pada


evaluasi algoritma ini juga dilakukan dengan tiga langkah utama yaitu membuat
validasi dataset, melakukan test harness atau k-folds cross validation, dan
membagun model, dengan rincian langkah-langkah yang juga sama seperti pada
pembahasan sebelumnya. Bedanya hanya pada data dan model yang digunakan.
Data yang digunakan disini adalah haberman’s survival data set, oleh karena itu
nilai X dan Y juga disesuaikan, dimana pada haberman’s survival data set ini
terdiri dari 4 atribut dan atribut pada kolom terakhir atau kolom 4 (dalam array
python indeks ke-3) merupakan atribut kelas. Karena model yang akan
dievaluasi juga berbeda maka library yang digunakan juga ada yang berbeda.
Setelah perintah script evaluasi algoritma tersebut dijalankan akan didapatkan
nilai estimasi akurasi dari masing-masing model algoritma yang diujikan yaitu
model K-Nearest Neighbors (KNN), Gaussian Naive Bayes (NB), dan Support
Vector Machines (SVM) seperti yang ditunjukkan pada gambar berikut.

2.2.2 Membuat prediksi


Proses evaluasi model algoritma K-Nearest Neighbors (KNN), Gaussian
Naive Bayes (NB), dan Support Vector Machines (SVM) terhadap haberman’s
survival data set menghasilkan NB sebagai model paling akurat karena memiliki
nilai estimasi akurasi paling tinggi. Selanjutnya dilakukan langkah pembuatan
prediksi atau pengujian tentang keakuratan model tersebut terhadap data yang
ada. Berikut perintah script untuk membuat prediksi dengan model Gaussian
Naive Bayes.
nb = GaussianNB()
nb.fit(X_train, Y_train)
predictions = nb.predict(X_validation)
print(accuracy_score(Y_validation, predictions))
print(confusion_matrix(Y_validation, predictions))
print(classification_report(Y_validation, predictions))
Dengan menggunakan nilai X_train, Y_train, X_validation, dan
Y_validation sebelumnya, perintah tersebut akan menghasilkan nilai akurasi,
confusion matrix, dan classification report seperti pada gambar berikut.
BAB III
PENUTUP

3.1 Kesimpulan
Klasifikasi dalam machine learning biasa digunakan untuk memprediksi kelas
target secara akurat dengan menggunakan variabel-variabel terkait. Terdapat banyak
model algoritma dalam teknik klasifikasi. Pemilihan model algoritma yang paling baik
tergantung pada dataset yang digunakan. Pada iris data set dengan melakukan evaluasi
terhadap model Logistic Regression, Linear Discriminant Analysis, dan Decision Tree
Classifier menghasilkan model Linear Discriminant Analysis sebagai model paling
akurat. Sedangkan pada haberman’s survival data set dengan melakukan evaluasi
terhadap model K-Nearest Neighbors (KNN), Gaussian Naive Bayes (NB), dan Support
Vector Machines (SVM) menghasilkan model Gaussian Naive Bayes sebagai model
paling akurat.
DAFTAR PUSTAKA

Wikipedia. 2018. KNN. https://id.wikipedia.org/wiki/KNN, (diakses 31 Oktober 2019)

Informatikalogi. 2017. Algoritma Naive Bayes. Dalam


https://informatikalogi.com/algoritma-naive-bayes, (diakses 31 Oktober 2019),

Sembiring, Krisantus. Tutorial SVM Bahasa Indonesia. 2007.


http://sutikno.blog.undip.ac.id/files/2011/11/tutorial-svm-bahasa-indonesia-oleh-
krisantus.pdf, (diakses 31 Oktober 2019)

Iykra. 2018. Mengenal Decision Tree dan Manfaatnya. Dalam


https://medium.com/iykra/mengenal-decision-tree-dan-manfaatnya-b98cf3cf6a8d,
(diakses 31 Oktober 2019)

Wikipedia. 2019. Analisis diskriminan linear.


https://id.wikipedia.org/wiki/Analisis_diskriminan_linear, (diakses 31 Oktober 2019)

Wikipedia. 2017. Regresi logistic. https://id.wikipedia.org/wiki/Regresi_logistik,


(diakses 31 Oktober 2019)

Mustofa. 2019. Belajar Machine Learning Dengan Python (Bagian 2).


https://inixindojogja.co.id/memulai-machine-learning-di-python-bagian-2, (diakses 31
Oktober 2019)

Anda mungkin juga menyukai