PEMBELAJARAN MESIN
Kode : TI316
LINK REFERENSI/JURNAL :
- Syam, Niladri and Kaul Rajeeve, Machine Learning and Artificial Intelligence in Marketing and Sales:
Essential Reference for Practitioners and Data Scientists, emerald publishing, 2021
- Pengenalan Mesin Learning dengan python, Dios Kurniawan,Elex media komputindo,2020.
1
MODUL KULIAH
PEMBELAJARAN MESIN
Kode : TI316
PERTEMUAN 3
PEMBELAJARAN MESIN
Zaid Romegar Mair, S.T.,M.Cs
2
Codelab
Pertama kita akan mengimpor library yang dibutuhkan dan mempersiapkan dataset.
Dataset dapat anda unduh di tautan berikut. Setelah data diunduh, masukkan berkas Iris.csv ke
dalam Watson Studio Notebook atau Colab. Lalu jangan lupa konversi dataset menjadi dataframe
Pandas.
Untuk melihat informasi mengenai data, Anda bisa memanggil fungsi .head() pada dataframe.
Dapat dilihat bahwa terdapat kolom yang tidak penting pada dataset yaitu kolom „Id‟. Untuk
menghilangkan kolom tersebut kita bisa menggunakan fungsi drop().
3
# menghilangkan kolom yang tidak penting
iris.drop('Id',axis=1,inplace=True)
Selanjutnya kita pisahkan antara atribut dan label untuk pelatihan model kita.
# memisahkan atribut dan label
X = iris[['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm' ]]
y = iris['Species']
Kemudian buat model decision tree kita. Terakhir kita melatih model kita dengan menggunakan
fungsi fit(). Keluaran dari cell di bawah menunjukkan bahwa model decision tree telah dilatih
dan parameter-parameternya juga ditampilkan. Penjelasan mengenai parameter akan dibahas di
modul-modul selanjutnya.
Kita bisa mencoba model yang telah kita buat untuk memprediksi spesies dari sebuah
bunga Iris. Masih ingat bukan, bahwa atribut yang menjadi masukan dari model adalah panjang
sepal, lebar sepal, panjang petal, dan lebar petal. Kita masukkan nilai yang sesuai dengan format
tersebut secara berurutan dalam satuan centimeter. Pada kode di bawah kita ingin memprediksi
spesies dari sebuah bunga iris yang memiliki panjang sepal 6,2 centimeter, lebar sepal 3,4
centimeter, panjang petal 5,4 centimeter, dan lebar petal 2,3 centimeter. Hasil prediksi dari
model kita adalah virginica.
4
# prediksi model dengan tree_model.predict([[SepalLength, SepalWidth, PetalLength,
PetalWidth]])
tree_model.predict([[6.2, 3.4, 5.4, 2.3]])
Jika kode tersebut dijalankan, maka tampilannya seperti di bawah ini.
Kita juga bisa melihat visualisasi dari decision tree yang kita buat terhadap data dengan
menggunakan library Graphviz. Hasil dari graphviz adalah dot file yang akan muncul pada folder
file pada panel di kiri Colab jika Anda menggunakan Google Colab.
Setelah berhasil dijalankan, Anda akan mendapatkan output berupa berkas iris_tree.dot.
Watson Studio
Google Colab
5
Untuk mengunduh berkas iris_tree.dot pada gambar di atas, kita dapat melakukan klik kanan
pada berkas tersebut dan mengunduhnya.
Untuk melihat visualisasi decision tree kita bisa mengonversi dot file ke dalam file png, dengan
menggunakan situs konversi berkas berikut ini : https://onlineconvertfree.com/converter/images/.
Catatan : Jangan lupa ganti opsi ke images sebelum convert
Hasil output-nya:
Selamat! Anda telah berhasil membuat sebuah model decision tree untuk klasifikasi
spesies bunga Iris. Anda juga telah berhasil menguji model anda untuk memprediksi spesies dari
sebuah bunga iris. Untuk belajar lebih mendalam tentang decision tree.
6
Supervised : Regression
Jenis kategori selanjutnya adalah regression. Regresi adalah salah satu teknik ML yang
mirip dengan klasifikasi. Bedanya pada klasifikasi, sebuah model ML memprediksi sebuah kelas,
sedangkan model regresi memprediksi bilangan kontinu. Bilangan kontinu adalah bilangan
numerik.
Jadi model klasifikasi memprediksi kelas atau kategori dan model regresi memprediksi
sebuah nilai berdasarkan atribut yang tersedia. Agar lebih paham, perhatikan contoh di bawah.
Pada contoh data di atas, model regresi akan memprediksi gaji berdasarkan atribut lama
bekerja, industri, dan tingkat pendidikan. Gaji adalah contoh dari bilangan kontinu, di mana gaji
tak memiliki kategori-kategori yang terbatas.
Pada pertemuan ini jenis regresi yang akan dibahas adalah regresi linier. Selain regresi
linier terdapat juga jenis regresi lain seperti regresi polinomial, lasso regression, stepwise
regression dan sebagainya. Untuk penjelasan dari jenis-jenis regression yang ada, kunjungi
tautan (https://www.analyticsvidhya.com/blog/2015/08/comprehensive-guide-
regression/) berikut.
Linear Regression
Regresi linier adalah salah satu metode supervised yang masuk dalam golongan regression,
sesuai namanya. Contoh paling terkenal dari regresi linier adalah memperkirakan harga rumah
berdasarkan fitur yang terdapat pada rumah seperti luas rumah, jumlah kamar tidur,
7
lokasi dan sebagainya. Ini adalah model paling sederhana yang perlu diketahui guna memahami
metode machine learning lain yang lebih kompleks. Regresi linier cocok dipakai ketika terdapat
hubungan linear pada data. Namun untuk implementasi pada kebanyakan kasus, ia kurang
direkomendasikan. Sebabnya, regresi linier selalu mengasumsikan ada hubungan linier pada data,
padahal tidak.
Secara sederhana regresi linear adalah teknik untuk memprediksi sebuah nilai dari variable
Y (variabel dependen) berdasarkan beberapa variabel tertentu X (variabel independen) jika
terdapat hubungan linier antara X dan Y.
Hubungan antara hubungan linier dapat direpresentasikan dengan sebuah garis lurus
(disebut garis regresi). Ilustrasi hubungan linier dapat dilihat pada gambar di mana data-data
cenderung memiliki pola garis lurus.
Ketika sebuah garis regresi digambar, beberapa data akan berada pada garis regresi dan
beberapa yang lainnya akan berada di dekat garis tersebut. Sebabnya, garis regresi adalah sebuah
model probabilistik dan prediksi kita adalah perkiraan. Jadi tentu akan ada eror/penyimpangan
terhadap nilai asli dari variabel Y. Pada gambar di bawah, garis merah yang menghubungkan data-
data ke garis regresi merupakan eror. Semakin banyak eror artinya model regresi itu belum
optimal.
8
Logistic Regression
Setelah sebelumnya Anda mengenal regresi linier untuk masalah regresi, ada juga model
seperti logistic regression, terlepas dari namanya merupakan sebuah model yang dapat digunakan
untuk klasifikasi.
Logistic regression dikenal juga sebagai logit regression, maximum-entropy classification,
dan log-linear classification merupakan salah satu metode yang umum digunakan untuk klasifikasi.
Pada kasus klasifikasi, logistic regression bekerja dengan menghitung probabilitas kelas dari
sebuah sampel.
Sesuai namanya, logistic regression menggunakan fungsi logistik seperti di bawah untuk
menghitung probabilitas kelas dari sebuah sampel. Contohnya sebuah email memiliki probabilitas
78% merupakan spam maka email tersebut termasuk dalam kelas spam. Dan jika sebuah email
memiliki <50% probabilitas merupakan spam, maka email tersebut diklasifikasikanbukan spam.
9
Latihan SKLearn Linear Regression
Library SKLearn menyediakan implementasi dari regresi linier. Pada latihan kali ini kita akan
memprediksi harga rumah berdasarkan jumlah kamar.
Pertama kita mengimpor library yang diperlukan. Lalu buat data dummy menggunakan numpy
array.
import numpy as np
bedrooms = np.array([1,1,2,2,3,4,4,5,5,5])
Selanjutnya kita bisa mencoba menampilkan data tersebut dalam bentuk scatter plot. Jumlah kamar
pada sumbu X adalah variabel independen dan harga rumah pada sumbu Y adalah variabel
dependen.
%matplotlib inline
plt.scatter(bedrooms, house_price)
10
Lalu pada cell berikutnya, kita bisa mulai melatih model kita dengan memanggil fungsi
LinearRegression.fit() pada data kita.
bedrooms = bedrooms.reshape(-1, 1)
linreg = LinearRegression()
linreg.fit(bedrooms, house_price)
Terakhir kita bisa melihat bagaimana model kita menyesuaikan dengan data yang kita miliki
dengan membuat plot dari model kita.
plt.scatter(bedrooms, house_price)
plt.plot(bedrooms, linreg.predict(bedrooms))
Model regresi linier adalah salah satu model machine learning yang paling sederhana.
Model ini memiliki kompleksitas rendah dan bekerja sangat baik pada dataset yang memiliki
hubungan linier. Jadi, ketika Anda menemui masalah yang terlihat memiliki hubungan linier,
regresi linier dapat menjadi pilihan pertama sebagai model untuk dikembangkan.
Pada latihan ini kita akan menggunakan logistic regression untuk memprediksi apakah seseorang
akan membeli setelah melihat iklan sebuah produk. Dataset untuk latihan bisa Anda unduh pada
tautan berikut (https://www.kaggle.com/dragonheir/logistic-regression).
Seperti biasa, setelah kita mengunggah berkas data pada Colab kita akan mengubah dataset
menjadi dataframe Pandas. Jangan lupa juga untuk mengimpor library dasar.
11
import pandas as pd
df = pd.read_csv('Social_Network_Ads.csv')
Pada cell selanjutnya gunakan fungsi head() pada dataframe untuk melihat 5 baris pertama dari
dataset.
df.head()
Kita juga perlu melihat apakah ada nilai yang kosong pada setiap atribut dengan menggunakan
fungsi info(). Dapat dilihat bahwa nilai pada semua kolom sudah lengkap.
df.info()
Pada dataset terdapat kolom „User ID‟. Kolom tersebut merupakan atribut yang tidak penting
untuk dipelajari oleh model sehingga perlu dihilangkan. Untuk menghilangkan kolom dari
dataframe, gunakan fungsi drop.
12
data
X =data[predictions]y = data['Purchased']
Jangan lupa untuk membagi data menjadi train set dan test set yang dapat dilakukan dengan
fungsi train_test_split yang disediakan SKLearn.
Setelah membagi data, kita buat model dengan membuat sebuah objek logistic regression.
Setelah model dibuat, kita bisa melatih model kita dengan train set menggunakan fungsi fit().
model=linear_model.LogisticRegression()
model.fit(X_train, y_train)
Setelah model dilatih, kita bisa menguji akurasi model pada test set dengan memanggil
fungsi score() pada objek model.
model.score(X_test, y_test)
13
Referensi Tambahan
1. https://towardsdatascience.com/what-is-machine-learning-and-types-of-machine-learning-
andrews-machine-learning-part-1-9cd9755bc647 diakses 26 juli 2021
2. https://www.dicoding.com/academies diakses 20 agustus 2021
3. https://pandas.pydata.org/
4. https://numpy.org/
5. https://matplotlib.org/
6. https://www.analyticsvidhya.com/blog/2015/08/comprehensive-guide-regression/
14
15