Membuat Machine Learning Project Python _ Easyread
Membuat Machine Learning Project Python _ Easyread
Published in Easyread
112 2
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 1/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Artikel ini merupakan panduan untuk membuat machine learning project yang
dan dirancang sedemikian rupa agar mudah dimengerti. Jika ini pertama kali
anda mempelajari machine learning, saya sarankan anda untuk membaca
artikel berikut terlebih dahulu, Belajar Fundamental Machine Learning Untuk
Pemula.
Gambaran Awal
Artikel ini akan memandu kalian untuk menyelesaikan classification problem
dengan machine learning. Dalam artikel ini, kita akan coding menggunakan
bahasa pemrograman Python. Saya menyarankan untuk menggunakan
Jupyter Notebook untuk mempermudah preprocessing dan analisis data.
Library yang akan digunakan adalah Numpy, Pandas, Matplotib, Seaborn, Pickle
dan Sklearn. Jika anda memasang Anaconda, biasanya libraries tersebut sudah
terpasang dari awal (default).
Mendapatkan Data
Mulailah project dengan mencari data. Anda dapat mencari data Gratis di
internet. Data tersebut dapat berbentuk structured data maupun unstructured
data. Berikut saya berikan tautan menuju beberapa situs untuk mendapatkan
data gratis termasuk website dari Indonesia.
1. Kaggle (Internasional)
Data yang akan kita pakai pada latihan ini adalah data pasien pecandu
narkoba. Anda cukup menuju halaman kaggle berikut dan mengunduh data
gratis. Data tersebut hanya berukuran beberapa KB saja, jadi jangan hawatir
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 4/23
10/7/22, 12:43 AM
g y p j ,j
Membuat Machine Learning Project Python | Easyread
j g
karena kita tidak akan langsung bekerja dengan data yang besar. Sign In Get started
Drug Classification
This database contains information about certain drug types.
www.kaggle.com
Data yang Anda unduh akan berbentuk Zip, dan Anda dapat mengekstraknya
sehingga didapatkan file dengan nama drug200.csv. Data tersebut berbentuk
tabel, Anda pun dapat melihat lihat data tersebut di halaman kaggle tersebut.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 5/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
3. Berdasarkan permasalahan dan data yang ada. Pada tahap ini Machine
Learning Model dibuat.
Artikel ini dibagi menjadi dua bagian yang terpisah. Dalam artikel part 1 ini,
kita akan berfokus dalam preprocessing dan analisis data. Saya memisahkan
arikel menjadi dua bagian supaya artikel ini tidak terlalu panjang dan Anda
dapat mempelajari preprocessing data dan pembuatan machine learning model
dalam waktu yang terpisah.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 6/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Jenis machine learning pada project ini merupakan supervised learning, karena
data memiliki label. Label dalam dataframe ini adalah data yang dimuat pada
kolom drug. Selain itu, data yang kita miliki merupakan structured data karena
data tersebut berwujud tabel.
tersebut adalah Age, Sex, BP, Cholesterol, dan Na_to_K. Sesuai dengan Sign In Get started
dataframe yang kita miliki, kolom drug adalah label dan kolom lainnya adalah
data. Baik data maupun label akan diberikan kepada machine learning model
untuk dipelajari.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 8/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 9/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Pada kolom Dtype terdapat banyak jenis data yang berbeda beda, yaitu int64,
float64 dan object. Data dengan tipe objek ini merupakan categorical data,
sehingga setelah ini harus dilakukan preprocessing untuk mengubah data
menjadi numerik atau angka. Karena komputer hanya dapat membaca data
yang berupa angka.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 11/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Terdapat lima kelas, yaitu narkoba jenis Y, C, X, A dan B. Sehingga bisa kita
menyimpulkan bahwa permasalahan ini merupakan multi-class classification
dimana kita melakukan klasifikasi data yang memiliki jumlah kelas lebih dari
dua. Sedangkan jenis lain dari multi-class adalah binary classification yang
merupakan klasifikasi jika categorical data hanya memiliki dua kelas, misalnya
pada kolom sex dan cholesterol.
Sekarang, kita dapat menganalisa bahwa nama kelas yang semula kata kata
digantikan oleh angka. Angka tersebut mewakili kelas masing masing.
Terdapat 5 kelas yaitu 0,3,4,1 dan 2. Dimana 0 mewakili Y, 3 mewakili C, 4
mewakili X 1 mewakili A dan 2 mewakili B Begitu juga dengan kolom yang
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 12/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
mewakili X, 1 mewakili A, dan 2 mewakili B. Begitu juga dengan kolom yang
Sign In Get started
lain. Ini adalah apa yang terjadi saat kita menggunakan LabelEncoder().
2.4 Analisis Matrix Korelasi
Proses masih berada pada analisis data, sekarang kita melakukan analisis
pada matrix korelasi. Dimana matrix korelasi memberikan kita informasi
mengenai korelasi atau hubungan kolom satu dengan kolom yang lain.
Data yang memiliki hubungan satu sama lain adalah data yang penting,
karena akan mempengaruhi proses latihan dan akurasi model. Adapun cara
untuk mengetahui data mana yang penting adalah dengan menganalisa nilai
korelasinya. Untuk mempermudah proses analisa, maka dapat dilakukan
dengan visualisasi data.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 13/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Nilai korelasi berkisar pada jarak -1 sampai 1. Jika bernilai negatif maka data
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 14/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
memiliki korelasi negatif, dan sebaliknya. Namun, jika nilai korelasi Sign In Get started
mendekati nol, artinya data tersebut hampir tidak memiliki korelasi atau
korelasinya rendah, sehingga data tersebut bukan merupakan data yang
penting. Artinya, data tersebut akan mengganggu akurasi model.
Data terdiri dari dua kolom yaitu belajar dan ilmu. Data tersebut memiliki
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 15/23
10/7/22, 12:43 AM
ata te d da dua o o ya tuMembuat
be ajaMachine Learning Project Python | Easyread
da u. ata te sebut e
korelasi sempurna karena nilai korelasinya 1 dan -1. Pada kotak pojok kiri
Sign In Get started
atas, nilai korelasi adalah 1. Artinya nilai korelasinya positif. Artinya jika
belajar semakin besar, maka ilmu akan semakin besar. Pada kotak yang lain,
berlaku hal yang sama. Begitulah cara membaca matrix korelasi.
Kembali ke data pasien yang kita miliki. Selanjutnya, kita baca nilai korelasi
kolom drug vs kolom lain. Terbaca bahwa kolom Na_to_K memiliki korelasi
negatif yang besar terhadap kolom drug, sedangkan kolom dengan korelasi
positif yang cukup besar hanya pada kolom BP yaitu Blood Pressure atau
Tekanan Darah. Sedangkan kolom lain memiliki nilai korelasi yang dekat
dengan nol.
Untuk saat ini kita tidak perlu melakukan apapun terhadap data tersebut
terlebih dahulu. Karena hal itu akan menjadi bagian dari feature selection.
Mengenai feature selection tidak akan dikupas tuntas dalam artikel ini.
histogram.
Sign In Get started
1 def distribusi():
2 fig,axes = plt.subplots(nrows=2,ncols=3,figsize=(12,8))
3 plt.suptitle('Distribusi',fontsize=24)
4
5 def kolom_generator():
6 for kolom in dataframe_int:
7 yield kolom
8 kolom = kolom_generator()
9
10 for i in range(0,2):
11 for j in range(0,3):
12 k = next(kolom)
13 dataframe_int[k].plot(kind='hist',ax=axes[i,j])
14 axes[i,j].set_title(k)
15 plt.show()
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 17/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Sebenarnya Anda dapat menggali informasi lebih jauh lagi dengan visualisasi
data histogram, seperti menampilkan histogram kolom drug vs cholesetrol
atau drug vs sex, dll. Namun dalam artikel ini kita buat projectnya simpel saja.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 18/23
10/7/22, 12:43 AM Membuat Machine Learning Project Python | Easyread
Kita dapat menganalisa pada histogram drug dimana frekuensi setiap kelas
tidak sama dan memiliki selisih yang jauh. Dimana kelas 0 dan 4 memiliki
frekuensi diatas 60 semetara untuk kelas 1,2 dan 3 hanya memiliki frekuensi
sekitar 20.
Dalam machine learning terdapat istilah error metrics. Error metrics untuk
setiap jenis permasalahan machine learning berbeda beda. Dimana dalam
kasus classification, terdapat beberapa matrix eror yaitu accuracy_score, recall,
f1_score, dan r2_score. Untuk accuracy_score mesti sudah tidak asing lagi,
namun untuk matrix lainnya akan dibahas pada kelanjutan artikel pada part 2
saat melakukan evaluasi pada Machine Learning Model.
Dataframe harus dibagi menjadi dua, yaitu data dan label. Label merupakan
kolom drug yang ingin diprediksi, sedangkan data merupakan kolom lainnya.
Setelah kita memiliki data dan label, maka kita pisahkan menjadi dua sekali
lagi menjadi latihan dan tes.
Data latihan digunakan sebagai bahan latihan model, sementara data tes
digunakan untuk menguji performa model sebelum digunakan untuk bekerja.
Sehingga sekarang kita memiliki empat data yaitu data latihan (x_train), data
test (x_test), label latihan (y_train) dan label tes (y_test).
memberikan parameter yaitu data, label, dan test size. Test size merupakan
Sign In Get started
ukuran data tes. Karena data kita berjumlah 200 maka 0.2 x 200 = 40 sehingga
data tes kita berjumlah 40 dan data latihan berjumlaah 160. Fungsi
train_test_split ini me-return empat numpy array , maka kita deklarasi empat
variabel saat menjalankan fungsi train_test_split.
1. Anda telah melakukan analisis data, dimana dalam proses analisis juga
diperlukan kemampuan statistika. Karena dalam membuat machine
learning project, kita tidak hanya coding saja. Namun kita ingin
menyelesaikan permasalahan (problem solver) sehingga kita harus
melakukan analisa.
2. Dalam artikel ini, Anda telah melakukan preprocessing data, sehingga data
telah bertipe numerik atau angka. Serta data telah dipisahkan menjadi
empat bagian. Sekarang kita memiliki data yang siap digunakan untuk
melatih machine learning model.
setengah jalan, jadi anda tidak perlu terburu buru untuk melanjutkannya
sekarang juga. Silakan anda istirahat dahulu.
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 22/23
10/7/22, 12:44 AM Membuat Machine Learning Project Python | Easyread
Enjoy Learning !
https://medium.easyread.co/membuat-proyek-machine-learning-dengan-python-part-1-8e8a03095636 23/23