Anda di halaman 1dari 15

MODUL KULIAH

PEMBELAJARAN MESIN
Kode : TI316

Zaid Romegar Mair, S.T.,M.Cs

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.

- chwalbe, Kathy., Information Technology Project Management, Thomson Learning, 2009


- Project Management Institute., A Guide to the Project Management Body of Knowledge, 2008
- IT Project Management, Joseph Phillips, Mc Graw Hill, 2002
- Agile Project Management, Jim Highsmith, Addison Wesley, 2004

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.

Tampilan iris.head() saat dijalankan sebagai berikut.

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

import matplotlib.pyplot as plt

#buat data jumlah kamar

bedrooms = np.array([1,1,2,2,3,4,4,5,5,5])

#data harga rummah. Asumsi dalam dollar

house_price = np.array([15000, 18000, 27000, 34000, 50000, 68000, 65000,


81000,85000, 90000])

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.

# menampilkan scatter plot dari dataset

%matplotlib inline

plt.scatter(bedrooms, house_price)

Tampilan dari kode tersebut sebagai berikut.

10
Lalu pada cell berikutnya, kita bisa mulai melatih model kita dengan memanggil fungsi
LinearRegression.fit() pada data kita.

from sklearn.linear_model import LinearRegression

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))

Hasilnya sebagai seperti di bawah ini

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.

Latihan SKLearn - Logistic Regression

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

from sklearn.model_selection import train_test_splitfrom

sklearn.preprocessing import StandardScaler

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()

Hasil dari fungsi df.head() seperti di bawah ini.

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()

Sedangkan tampilan hasil dari fungsi df.info() sebagai berikut.

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.

data = df.drop(columns=['User ID'])data = pd.get_dummies(data)

12
data

Ketika kode di atas dijalankan hasilnya seperti di bawah ini.

Kemudian kita pisahkan antara atribut dan label.

predictions = ['Age' , 'EstimatedSalary' , 'Gender_Female' , 'Gender_Male']

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.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)

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().

from sklearn import linear_model

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)

Sehingga hasilnya sebagai berikut.

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

Anda mungkin juga menyukai