MACHINE LEARNING
MACHINE LEARNING
Machine Learning Copyright© PT Penamudamedia, 2024 Penulis: Nurhayati, S.Si., MTI., Radinal Setyadinsa, S.Pd., M.T.I., Musthofa Galih Pradana, M.Kom., Dr. Dwi Prasetyo, Dipl.Inf, S.Kom, M.Si., Muhammad Adrezo, S.Kom., M.Sc., I Wayan Rangga Pinastawa, M.Kom., Jihan Kristal Yasmin, Iqbal Sabilirrayad, S.S.T., M.Tr.Kom., Jovian Dian Pratama, S.Mat., M.Mat., Dhieka Avrilia Lantana, S.Kom., M.Kom., Miftahul Jannah, S.Kom., M.Kom. Editor: Neny Rosmawarni, S.Kom., M.Kom. ISBN: 978-623-09-7408-3 Desain Sampul: Tim PT Penamuda Media Tata Letak: Enbookdesign Diterbitkan Oleh PT Penamuda Media Casa Sidoarium RT 03 Ngentak, Sidoarium Dodeam Sleman Yogyakarta HP/Whatsapp : +6285700592256 Email : [email protected] Web : www.penamuda.com Instagram : @penamudamedia Cetakan Pertama, Januari 2024 x + 148, 15x23 cm Hak cipta dilindungi oleh undang-undang Dilarang memperbanyak sebagian atau seluruh isi buku tanpa izin Penerbit
v KATA PENGANTAR SELAMAT DATANG di buku Machine Learning. Buku ini merupakan panduan yang komprehensif untuk mempelajari dan memahami konsep serta teknik dalam bidang machine learning. Dalam era yang didominasi oleh data dan kecerdasan buatan, pemahaman tentang machine learning menjadi semakin penting. Machine learning adalah cabang ilmu komputer yang memungkinkan komputer untuk belajar dari data dan mengambil keputusan atau melakukan prediksi tanpa harus secara eksplisit diprogram. Buku ini akan membahas berbagai konsep dasar dalam machine learning, seperti algoritma pembelajaran, model prediktif, evaluasi kinerja, dan teknik pengolahan data. Kami berharap buku ini dapat memberikan wawasan yang mendalam tentang machine learning kepada para pembaca. Buku ini akan memberikan pemahaman tentang berbagai algoritma dan teknik dalam machine learning, serta contoh-contoh praktis untuk mengimplementasikannya dalam beragam bidang, seperti pengenalan pola, pengolahan bahasa alami, visi komputer, dan banyak lagi. Terima kasih kepada semua yang telah berkontribusi dalam pembuatan buku ini. Semoga buku ini dapat menjadi sumber inspirasi dan panduan yang berharga bagi para pembaca yang tertarik untuk mempelajari dan menerapkan machine learning dalam berbagai konteks. Selamat membaca dan selamat mengeksplorasi dunia machine learning! Editor Neny Rosmawarni, S.Kom., M.Kom.
vi DAFTAR ISI KATA PENGANTAR ................................................................ v DAFTAR ISI ......................................................................... vi BAB 1. Apa itu Machine Learning (Pemahaman Dasar) ............... 1 A. Jenis-Jenis Machine Learning ..........................................................3 B. Manfaat Machine Learning .............................................................6 C. Langkah-langkah Penerapan Machine Learning .............................6 D. Contoh Permasalahan Dataset........................................................7 E. Contoh Kasus...................................................................................8 BAB 2. Teori-teori Tentang Machine Learning ......................... 11 A. Kemampuan Komputasi ................................................................14 B. Pondasi Matematika dan Statistika...............................................18 BAB 3. K-Nearest Neighbor ................................................... 23 A. Konsep Dasar K-Nearest Neighbor................................................24 B. Kelebihan dan Kekurangan KNN....................................................26 C. Keterbatasan KNN: ........................................................................26 D. Perbandingan KNN dibanding algoritma lain : ..............................26
vii E. Langkah Kerja K-Nearest Neighbor ...............................................27 F. Contoh Kasus K-Nearest Neighbor................................................28 G. Penetuan Parameter K ..................................................................33 H. Penerapan dalam Python..............................................................33 BAB 4. machine Learning Lifecycle ........................................ 37 A. Apa Itu Machine Learning Lifecycle?.............................................38 B. Mengapa Machine Learning Lifecycle Penting..............................41 C. Perkembangan Machine Learning.................................................43 D. Penerapan Machine Learning .......................................................43 E. Revolusi dalam Machine Learning Lifecycle..................................45 BAB 5. Klasterisasi K-Means .................................................. 47 A. K-means sebagai Algoritma Klasterisasi........................................49 B. Implementasi K-means dalam Konteks Machine Learning di Python ...........................................................................................55 BAB 6. Support Vector Machine ............................................. 57 A. Konsep Dasar SVM Vektor dan Ruang Vektor...............................59 B. Jenis SVM.......................................................................................60 C. Fungsi kernel dalam Support Vector Machine (SVM)...................61 D. Contoh Kasus Penggunaan SVM ...................................................62
viii E. Kelebihan dan Kekurangan............................................................65 BAB 7. Supervised Learning .................................................. 69 A. Linear Regression ..........................................................................73 B. Logistic Regression ........................................................................76 C. Decision Tree.................................................................................79 D. Random Forest..............................................................................82 E. Naïve Bayes...................................................................................83 F. Neural Network.............................................................................85 BAB 8. Gradient Descent ....................................................... 89 A. Macam-macam tipe gradient Descent........................................101 BAB 9. Agglomerative Clustering .......................................... 103 A. Multikolinieritas..........................................................................105 B. Analisis Komponen Utama ..........................................................106 C. Agglomerative Clustering ............................................................108 D. Single Linkage..............................................................................109 E. Complete Linkage........................................................................110 F. Average Linkage ..........................................................................110 G. Ward Method..............................................................................111
ix H. Uji Validitas Cluster .....................................................................112 I. Kumpulan Artikel Ilmiah Terkait Agglomerative Clustering ........113 BAB 10. Confusion Matrix .................................................... 117 A. Mengapa confusion matrix diperlukan?......................................121 B. Evaluasi Menggunakan Confusion Matrix...................................121 C. Accuracy ......................................................................................122 D. Precision......................................................................................123 E. Recall ...........................................................................................124 BAB 11. Deep Learning ........................................................ 127 A. Definisi Deep Learning ................................................................128 B. Prinsip Kerja Deep Learning ........................................................128 C. Jenis-jenis Algoritma Deep Learning ...........................................130 D. Contoh Penggunaan Deep Learning............................................132 DAFTAR PUSTAKA ............................................................. 134 TENTANG PENULIS ............................................................ 142
x
Machine Learning | 1 1 Apa itu Machine Learning (Pemahaman Dasar)
2 | Machine Learning Machine learning merupakan teknologi kecerdasan buatan yang dirancang untuk meniru atau menggantikan peran manusia dalam melakukan aktivitas dan memecahkan masalah. Dengan kata lain, machine learning adalah mesin yang dirancang untuk belajar dan beroperasi tanpa instruksi apa pun dari pengguna. Menurut Arthur Samuel, seorang pionir Amerika di bidang permainan komputer dan kecerdasan buatan, machine learning adalah cabang ilmu pengetahuan yang mempelajari bagaimana memberikan komputer kemampuan untuk belajar tanpa diprogram secara eksplisit (IBM, 1959). Perkembangan machine learning dimulai dari implementasi terkecil dari kecerdasan buatan yang kemudian berlanjut ke proses deep learning. Salah satu implementasi machine learning yang terkenal adalah permainan catur Deep Blue, yang didirikan oleh IBM pada tahun 1996 yang berhasil mengalahkan master catur profesional. Adapun ilustrasi hubungan antara kecerdasan buatan, machine learning dan deep learning berdasarkan perkembangannya adalah sebagai berikut: Gambar 1. Ilustrasi hubungan antara kecerdasan buatan, machine learning dan deep learning
Machine Learning | 3 Pada Gambar 1 terlihat bahwa machine learning merupakan sub-set dari kecerdasan buatan, dan deep learning merupakan sub-set dari machine learning, sehingga terlihat bahwa induk dari machine learning maupun deep learning adalah kecerdasan buatan. Algoritme machine learning terbagi dalam tiga kategori: supervised learning, unsupervised learning, dan reinforcement learning. 1. Supervised Learning Supervised learning menggunakan konsep-konsep dari pendekatan fungsional. Algoritme ini pada dasarnya dilatih untuk memilih fungsi yang paling menggambarkan masukan, mengingat memberikan estimasi terbaik untuk . Macam-macam algoritme supervised learning diantaranya regresi, klasifikasi, K-NN, Naive Bayes, Decision Tree, regresi linier, Support Vector Machine, dan Neural Network. Supervised Learning memiliki beberapa kelebihan dan kekurangan. Kelebihan dari algoritme ini adalah mudah dipahami, ampuh untuk analisis klasifikasi, data yang digunakan bukan data real-time sehingga diperlukan data baru untuk memprediksi hasil. Kekurangan dari algoritme ini adalah membutuhkan waktu komputasi yang sangat lama untuk melatihnya dan membutuhkan label pada setiap inputnya sehingga menjadikannya algoritme yang lebih kompleks dibandingkan algoritme unsupervised learning.
4 | Machine Learning 2. Unsupervised Learning Algoritme unsupervised learning adalah algoritme yang tidak memerlukan data berlabel. Pada unsupervised learning, tidak memerlukan data pelatihan. Algoritme ini digunakan untuk pengenalan pola dan pemodelan deskriptif yang tidak memerlukan kategori atau keluaran berlabel, dan merupakan dasar bagi algoritme untuk menemukan model yang benar. Algoritme ini digunakan untuk clustering dan aturan asosiasi. Keuntungan dari unsupervised learning adalah tidak diperlukannya label, sehingga memberikan lebih banyak kebebasan bagi algoritme untuk mencari pola yang mungkin belum diketahui sebelumnya. Sedangkan kekurangan dari algoritme ini adalah kurangnya label membuat sulit untuk menemukan informasi dalam data, bahkan lebih sulit untuk membandingkan output dan input. Lima jenis algoritme unsupervised learning adalah: a. Exlusive (Partioning), dimana data dikelompokkan sehingga nilai data hanya dapat dimiliki oleh satu cluster. Contoh: K-Means b. Agglomerative, dimana semua data adalah cluster. Jumlah cluster dikurangi dengan menggabungkan dua cluster yang berdekatan secara berulang-ulang. Contoh: Hierarchical Cluster c. Overlapping, himpunan fuzzy digunakan untuk mengelompokkan data. Setiap titik dapat tergabung dalam dua cluster atau lebih dengan derajat keanggotaan yang berbeda. Data akan ditautkan dengan nilai keanggotaan yang sesuai. Contoh: Fuzzy C-Means
Machine Learning | 5 d. Probabilistic, dimana proses cluster dilakukan dengan menggunakan teknik distribusi probabilitas. Contoh : menentukan kata kunci dari kata-kata berikut ini: ‚Jam laki-laki‛ ‚Jam perempuan‛ ‚Olah raga laki-laki‛ ‚Olah raga perempuan‛ sehingga dapat dibagi menjadi dua kategori: ‚jam‛ dan ‚olah raga‛ atau ‚laki-laki‛ dan ‚perempuan‛ e. Association, dimana teknik ini bertujuan untuk menemukan korelasi antar variabel dalam database yang besar. Contoh: orang yang menjual mie ayam akan menjual bakso juga. 3. Reinforcement Learning Seperti yang telah dijelaskan sebelumnya, semisupervised learning merupakan suatu algoritme yang tidak dapat digolongkan menjadi supervised learning dan unsupervised learning. Algoritme ini disebut dengan reinforcement learning. Algoritme ini cocok untuk kumpulan data besar yang dipecah menjadi bagian berlabel dan tidak berlabel. Tujuan reinforcement learning adalah menggunakan pengamatan dari interaksi dengan lingkungan untuk melakukan tindakan yang memaksimalkan keluaran dan meminimalkan risiko. Algoritme ini memiliki agen yang belajar dari interaksinya dengan lingkungan. Untuk membangun suatu model, algoritme reinforcement learning melalui beberapa fase, seperti agen mengamati data masukan, kemudian agen
6 | Machine Learning mengambil tindakan untuk mengambil keputusan. Setelah keputusan dibuat, agen menerima ‚reward‛ atau penguatan dari lingkungan. Masukan tersebut kemudian dicermati kembali dan dilakukan kembali proses pengambilan keputusan, namun dengan tambahan penguatan dari lingkungan agar hasil keputusan yang diambil lebih akurat. Contoh: Game, Robotic dan lainlain. Beberapa manfaat dari implementasi machine learning diantaranya adalah: 1. Menyederhanakan permasalahan yang awalnya menggunakan pendekatan secara tradisional dimana proses penyelesaiannya menggunakan berbagai macam aturan. 2. Mampu beradaptasi dengan data baru. 3. Mendapatkan pengetahuan tentang masalah yang kompleks dari data yang berukuran besar. Contoh pemanfaatan algoritme machine learning diantaranya adalah sebagai asisten pribadi virtual atau aplikasi chatbot yang saat ini sudah semakin berkembang, image processing, cyber security, rekomendasi produk, dan lain-lain. Langkah-langkah yang dilakukan pada saat akan menerapkan algoritme machine learning diantaranya adalah: 1. Identifikasi masalah 2. Mengumpulkan dan mempersiapkan data
Machine Learning | 7 3. Menentukan algoritme yang akan digunakan 4. Evaluasi dan perbaikan model Permasalahan dataset terkait dengan pengenalan objek dari dataset itu sendiri. Beberapa kasus, algoritme machine learning tidak dapat mengidentifikasi jenis data gambar seperti contoh berikut ini: 1. Anjing komodor atau pel 2. Anjing cihuahua atau muffin
8 | Machine Learning 3. Parrot atau Kue Diabetes Mellitus merupakan penyakit kronis berupa gangguan metabolisme dimana kadar kadar gula darah melebih batas normal. Indonesia menduduki peringkat ke-7 dunia. Selanjutnya lakukan analisis terhadap data klinis pasien penyakit diabetes agar dapat mengdiagnosis seorang pasien terkena penyakit diabetes atau tidak, sehingga dapat membantu kinerja dokter dalam diagnosis dan penanganan penyakit tersebut. Dataset dapat diakses pada link github: https://github.com/arubhasy/dataset/blob/main/diabetes.csv Adapun fitur data pada dataset di atas adalah sebagai berikut: No. Atribut Deskripsi Aturan 1 No Number of patients predictor (independent) variables
Machine Learning | 9 2 Pregnancies Number of times pregnant predictor (independent) variables 3 Glucose Plasma glucose concentration a 2 hours in an oral glucose tolerance test predictor (independent) variables 4 BloodPressure Diastolic blood pressure (mm Hg) predictor (independent) variables 5 SkinThickness Triceps skin fold thickness (mm) predictor (independent) variables 6 Insulin 2-Hour serum insulin (mu U/ml) predictor (independent) variables 7 BMI Body mass index (weight in kg/(height in m)^2) predictor (independent) variables 8 DiabetesPedig reeFunction Diabetes pedigree function predictor (independent) variables 9 Age Age (years) predictor (independent) variables
10 | Machine Learning 10 Outcome Class variable (Normal or Diabetes) 268 of 768 are Diabetes, the others are Normal target (dependent) variable Catatan: Tidak ada attribute gender/sex pada dataset karena seluruh pasien berjenis kelamin perempuan.
Machine Learning | 11 2 Teori-teori Tentang Machine Learning
12 | Machine Learning Machine Learning adalah salah satu bidang cabang ilmu komputer yang memberikan kemampuan kepada komputer untuk dapat belajar tanpa diprogram secara explisit (Arthur Samuel, 1959). Machine Learning (ML) merupakan bidang studi yang fokus kepada desain dan analisis algoritma sehingga memungkinkan komputer untuk dapat belajar. Masih Menurut Samuel, ML berisi sebuah algoritma yang bersifat generic (umum) dimana algoritma tersebut dapat menghasilkan sesuatu yang menarik atau bermanfaat dari sejumlah data tanpa harus menulis kode yang spesifik (Id, 2021; Permana et al., 2023). Selain Samuel, Mitchel(1997) juga memberikan sebuah definisi ringkas dan jelas mengenai ML dimana Machine Learning adalah ‚Satu program komputer yang dikatakan telah melakukan pembelajaran dari pengalaman E (Experience) terhadap tugas T (Task) dan mengukur peningkatan kinerja P (Performance Measure), jika kinerja Tugas T diukur oleh kinerja P, maka meningkatkan pengalaman E‛. Dari definisi ini Mitchel dapat dikatakan sebuah aplikasi Machine Learning memiliki 3 komponen yaitu Task T, Performance Measure P, dan Experience E. Oleh karena itu, untuk membangun sebuah aplikasi ML maka komponen T, P dan E harus dapat di identifikasi (Id, 2021). Task T merupakan objektif dari program ML yang kita buat. Program ML membantu kita untuk mengatasi masalah yang sulit untuk diselesaikan oleh program tradisional yang bersifat statis. Berikut ini beberapa contoh Task yang ada program ML (Id, 2021): 1. Klasifikasi adalah suatu pengelompokan data di mana data yang digunakan tersebut mempunyai kelas label atau target. Pada jenis task ini, program komputer diminta untuk ‚menebak‛ atau memilih kelompok/kategori/kelas dari data. Pada task ini kelas telah ditetapkan sebelumnya. Contohnya
Machine Learning | 13 adalah klasifikasi emosi pada foto manusia dengan tiga kelas yaitu Happy, Angry dan Neutral. Aplikasi tersebut harus memilih salah satu (dalam kasus tertentu bisa lebih dari satu) dari tiga kelas tersebut berdasarkan foto yang diberikan. 2. Regresi sederhananya adalah sebuah tugas di mana aplikasi ML diminta untuk menebak angka (bilangan continue) berdasarkan sejumlah data. Sebagai contoh kita ingin melakukan prediksi harga saham, maka luaran dari prediksi tersebut adalah sebuah nilai harga. Jadi salah satu perbedaan antara regresi dan klasifikasi adalah objek yang diprediksi, regresi memprediksi angka sedangkan klasifikasi memprediksi kelas. 3. Transkripsi adalah sebuah tipe Task dimana aplikasi ML mencoba ‚memahami‛ sebuah data yang tidak terstruktur yang merepresentasikan data lain. Sebagai contoh pengenalan tulisan pada gambar dimana gambar berisi data pixel yang tidak terstruktur, tetapi data tersebut merepresentasikan sebuah tulisaan atau huruf-huruf. Contoh lainnya adalah aplikasi text to speech dimana data berupa gelombang berisi tekt. Proses mengubah gelombang suara menjadi teks adalah transkripsi. 4. Machine Translation. Task ini merupakan proses mengubah sekumpulan input terurut yang berisi simbol-simbol tertentu menjadi simbol tertentu dibahasa lainnya. Contoh aplikasinya penerjemah bahasa Indonesia dan bahasa Inggris. 5. Anomaly Detection. Task ini bertujuan untuk menggunakan aplikasi ML untuk memeriksa sejumlah data atau event lalu menandainya sebagai sesuatu yang tidak biasa.
14 | Machine Learning 6. Syntesis dan Sampling. Task ini bertujuan untuk membuat atau generate sesuatu berdasarkan contoh. Misalnya aplikasi ML yang dapat menghasilkan sebuah gambar pemandangan berdasarkan sketsa tertentu. Machine learning (ML) sebuah cabang ilmu yang dibangun oleh ilmu-ilmu lain seperti Aljabar Linier, Kalkulus dan Statistika. Ilmu-ilmu dasar tersebut sangat dibutuhkan untuk mengetahui konsep dasar dari ML. Selain memahami konsep dasar tersebut, kemampuan teknis seperti algoritma dan pemrograman juga diperlukan agar kita dapat mengaplikasikan ilmu-ilmu dasar tersebut sehingga dapat bermanfaat. Kemampuan komputasi merupakan peralatan yang dibutuhkan untuk mengoperasikan ML, karena tanpa daya komputasi konsep-konsep tersebut tidak dapat direalisasikan (Id, 2021). Kemampuan komputasi identik dengan kemampuan untuk menggunakan bahasa pemrograman atau tool berbasis komputer tertentu untuk memproses data. Saat ini banyak aplikasi atau tool yang dapat digunakan untuk menyelesaikan permasalahan ML atau pembelajaran mesin. Sederhananya, Anda tinggal memasukkan data lalu aplikasi tersebut akan memproses data Anda lalu menghasilkan model yang dapat digunakan untuk melakukan prediksi. Sebagian besar aplikasi tersebut sudah mengimplementasi algoritmaalgoritma yang populer yang dapat menyelesaikan masalah Anda. Ibarat seorang mekanik yang akan memperbaiki kendaraan, maka mekanik harus dapat memahami permasalahan dari kendaraan tersebut kemudian menggunakan
Machine Learning | 15 peralatannya untuk mengidentifikasi permasalahan dan melakukan perbaikan. Semua peralatan akan mempunyai fungsi masing-masing, dan sebuah aktivitas perbaikan terdiri dari serangkaian aktivitas yang harus dilakukan secara berurutan. Kadang-kadang dengan pengalaman yang dimiliki dia melakukan ‚hacking‛ terhadap permasalahan kita sehingga permasalahan tersebut dapat dipecahkan. Hal tersebut hampir sama dengan yang dilakukan oleh programer dalam memecahkan sebuah masalah. Sejumlah kegiatan harus dilakukan agar sebuah kasus dapat terpecahkan. Proses analisa, perancangan dan implementasi menjadi urutan yang tidak dapat dihindari. Oleh karena itu ketika kita mempelajari ML maka kita harus memiliki kemampuan dibidang programming untuk melakukan implementasi dari apa yang telah kita analisis dan rancang. 1. Phyton Python adalah bahasa yang sangat terkenal di antara pengembang Machine Learning, Data scientists maupun Data Miner. Alasannya karena bahasa ini mudah dan gratis. Selain itu Python juga bahasa pemrograman yang interpretatif multiguna. Tidak seperti bahasa lain yang susah untuk dibaca dan dipahami, Python lebih menekankan pada keterbacaan kode agar lebih mudah untuk memahami sintak. Hal ini membuat Python sangat mudah dipelajari baik untuk pemula maupun untuk yang sudah menguasai bahasa pemrograman lain. 2. Jupyter Notebook Jupyter Notebook (dulunya, IPython Notebook) adalah sebuah aplikasi yang umum digunakan pada
16 | Machine Learning bidang Data Science. Biasanya aplikasi ini digunakan untuk membuat dan berbagi dokumen yang berisi Live code, Persamaan (Equalization), Visualizations, dan teks penjelasan tentang dokumen tersebut. Jupyter Notebook merupakan aplikasi server-client yang mengizinkan kita untuk melakukan editing dan running/compile dokumen notebook melalui web browser. Dengan tool ini kita dapat melakukan banyak hal misalnya data cleaning, analisa data, pemodelan, bahkan pelatihan dan evaluasi model. Penggunaan Jupyter disukai karena di eksekusi per baris, sehingga kita dapat langsung melihat luaran yang kita inginkan. Jika dibanding kan dengan cara konvensional dimana kita harus mengetik semua kode terlebih dahulu baru dapat menjalankannya, cara ini lebih sederhana dan mudah apalagi bagi yang sedang belajar Machine Learning. 3. NumPy NumPy (kependekan dari Numerical Python) adalah library Python yang fokus pada scientific computing. NumPy memiliki kemampuan untuk membentuk objek N-dimensional array, yang mirip dengan list pada Python. Keunggulan NumPy array dibandingkan dengan list pada Python adalah konsumsi memory yang lebih kecil serta runtime yang lebih cepat. Numpy mempermudah untuk melakukan perhitungan larik multi-dimensi (multi-dimensional arrays) dan perhitungan matriks. Selain penggunaannya dalam menyelesaikan persamaan aljabar linier (linear algebra equations) dan perhitungan matematis lainnya, NumPy juga digunakan
Machine Learning | 17 sebagai wadah multi-dimensi serbaguna untuk berbagai jenis data generik. 4. Pandas Pandas adalah sebuah librari yang menyediakan struktur data dan fungsi analisis data yang mudah digunakan dan memiliki kinerja yang tinggi. Sama seperti NumPy, Pandas juga dikembangkan oleh SciPy dan berlisensi BSD. Pandas menawarkan sekumpulan method/class yang serbaguna dan bermanfaat untuk membuat struktur data dan melakukan analisis data yang besar. Library ini juga dapat mengatasi permasalahan umum pada data seperti data yang tidak lengkap, tidak terstruktur, dan tidak teratur — dan dilengkapi dengan tool untuk membentuk, menggabungkan, menganalisis, dan memvisualisasikan datasets. Pandas memadukan library NumPy yang memiliki kemampuan manipulasi data yang fleksibel dengan database relasional (seperti SQL). Sehingga memudahkan kita untuk melakukan reshape, slice dan dice, agregasi data, dan mengakses subset dari data. 5. MatPlotLib Matplotlib adalah library plotting 2D Python yang menghasilkan gambar publikasi bermutu di dalam berbagai format hardcopy dan lingkungan interaktif sepanjang platform. Matplotlib dapat digunakan di dalam script Python, shell Python dan ipython, server aplikasi web, dan enam GUI toolkit. Matplotlib mencoba untuk membuat hal mudah menjadi lebih mudah. Kita dapat
18 | Machine Learning membuat plot, histogram, power spectra, grafik batang, scatterplot, dll, hanya dengan beberapa baris kode. Kemampuan matematika hukumnya adalah WAJIB jika anda ingin serius dibidang ini. Adapun kemampuan yang harus ada sebelum anda mempelajari ML adalah Aljabar Linier, Kalkulus, Probabilitas dan Statistik. 1. Aljabar Linier Aljabar linier adalah cabang dari matematika yang menjadi syarat utama bagi orang-orang yang belajar ML. Melalui Aljabar Linier-lah banyak teori dan metode ML ditemukan dan dapat digunakan untuk memecahkan masalah terkait data. Pengetahuan yang kokoh tentang Aljabar Linier akan membuat perjalanan ML anda lebih fokus. Sederhananya, aljabar linier ini dapat dikatakan matematikanya data. Jika kita ingin merepresentasikan data maka bahasa yang akan kita pilih adalah scalar, vektor, matrik atau tensor. Dengan kata lain, ketika kita berusaha mengolah data maka sebenarnya kita mengolah scalar, vektor, matrik ATAU tensor. 2. Statistika Statistika adalah sebuah ilmu yang mempelajari bagaimana cara merencanakan, mengumpulkan, menganalisis, lalu menginterpretasikan, dan akhirnya mempresentasikan data. Singkatnya, statistika adalah ilmu yang bersangkutan dengan suatu data. Ilmu ini dapat dikatakan adalah pondasi dasar dari Machine Learning, oleh karena itu, pembaca harus dapat
Machine Learning | 19 memahami, setidaknya konsep-konsep dasar dalam statistika. Berikut konsep-konsep yang banyak muncul dalam ML. a. Probabilitas Probabilitas atau sering disebut peluang sering diasosiasikan dengan paling tidak sebuah kejadian. Kejadian ini bisa apa saja, sebagai contoh pelemparan dadu, pengambilan bola berwarna dan lain-lain. Pada contoh tersebut semua luaran yang dihasilkan akan bersifat acak (random), misalnya kecepatan anda mengocok dadu tidak akan mempengaruhi hasil luarannya. Biasanya variabel yang merepresentasikan luaran kejadian disebut variabel acak (random variable). b. Central Tendency Teori central tendency, mungkin teori yang paling tua yang pernah kita kenal. Sejak duduk dibangku sekolah menengah kita telah diperkenalkan dengan teori-teori ini. Sebuah pengukuran central tendency melambangkan sebuah nilai yang mencoba mendeskripsikan dataset dengan mengidentifikasi nilai ‚posisi tengah‛ dataset. Pengukuran central tendency adalah sebagai berikut: 1) Mean. Biasanya disebut ‚rata-rata‛. Pengukuran ini dapat digunakan pada data continue. Formula dari rata-rata adalah jumlah dari seluruh item dibagi dengan jumlah item. Pengukuran ini menggambarkan nilai tengah dari populasi yang diamati. Adapun formula mean adalah
20 | Machine Learning 2) Median Median adalah nilai tengah dari dataset terurut. Pada median, nilainya tidak terpengaruh kepada outlier. Adapun formula untuk menemukan median adalah 3) Mode Mode atau modus adalah nilai yang paling sering muncul dalam suatu dataset. Modus juga merupakan nilai mayoritas atau nilai dengan frekuensi paling tinggi. Perhitungan modus dapat diterapkan pada data numerik maupun data kategoris, contohnya dalam menentukan data dari warna paling banyak disukai siswa dan mayoritas nilai ulangan sebuah mata pelajaran yang diperoleh oleh siswa dalam suatu kelas. c. VARIABILITAS Variabilitas (ukuran penyebaran) merupakan suatu nilai dari dataset yang menjadi ukuran untuk mengetahui besarnya penyimpangan data dengan nilai rata-rata hitungnya atau menggambarkan bagaimana suatu dataset yang menyebar terhadap pusatnya data. Variabilitas berfungsi sebagai alat ukur untuk mengetahui homogenitas dan heterogenitas suatu
Machine Learning | 21 kelompok data. Semakin kecil nilai variabilitas menunjukkan semakin kecil penyebaran suatu kelompok data (homogenitas). Semakin besar nilai variabilitas menunjukkan semakin besar penyebaran suatu kelompok data (heterogenitas). d. Probability Distribution Probability Distribution adalah suatu fungsi matematika yang memberikan probabilitas ( likelihood ) dari variabel acak untuk memiliki suatu nilai. Dengan kata lain, kemungkinan suatu variabel acak untuk memiliki suatu nilai akan tergantung dari Probability Distribution.
22 | Machine Learning
Machine Learning | 23 3 K-Nearest Neighbor
24 | Machine Learning Algoritma K-Nearest Neighbors (K-NN) adalah metode pembelajaran mesin yang termasuk dalam kategori supervised learning. Supervised learning adalah model pembelajaran terbimbing, artinya model dapat melakukan pembelajaran dengan data yang sudah memiliki label sebelumnya. Model supervised learning ini cocok dengan 2 pendekatan yakni untuk prediksi dan juga klasifikasi (Kantardzic, 2019). Adapun tujuan utama dari algoritma KNearest Neighbors (K-NN) untuk mengklasifikasikan suatu data berdasarkan sebagian besar tetangga terdekatnya dalam ruang fitur. Dalam konteks "low similarity" dapat diasumsikan bahwa nilai yang dicari adalah tetanggatetangga yang memiliki perbedaan atau jarak yang cukup signifikan. algoritma ini didasarkan pada beberapa konsep kunci, termasuk pengukuran jarak, konsep tetangga terdekat, dan prinsip mayoritas (Dicky Nofriansyah, S.Kom., 2017). 1. Pengukuran Jarak K-NN menggunakan pengukuran jarak untuk menentukan sejauh apa suatu data dengan data lain dalam ruang fitur. Metrik jarak yang umum digunakan adalah jarak Euclidean, yang dihitung sebagai akar kuadrat dari jumlah kuadrat perbedaan antara koordinat dua titik. Alternatifnya, bisa juga menggunakan jarak Manhattan atau metrik lainnya tergantung pada kasus penggunaannya. 2. Konsep Tetangga Terdekat Setelah menghitung jarak, langkah selanjutnya adalah memilih K tetangga terdekat dari data yang akan diklasifikasikan. Nilai K adalah parameter yang perlu
Machine Learning | 25 ditentukan sebelumnya. Pemilihan tetangga ini menjadi dasar dari asumsi bahwa data-data yang berdekatan dalam ruang fitur memiliki kemungkinan besar memiliki label yang serupa. 3. Prinsip Mayoritas Dalam kasus klasifikasi, setelah menentukan K tetangga terdekat, dilakukan pemilihan mayoritas untuk menentukan label kelas dari data yang akan diklasifikasikan. Artinya, label yang paling banyak muncul dari tetangga-tetangga tersebut dianggap sebagai prediksi label kelas. 4. KNN dalam Regresi Selain digunakan untuk klasifikasi, K-NN juga dapat digunakan dalam regresi. Dalam hal ini, nilai target dari K tetangga terdekat diambil rata-ratanya sebagai prediksi nilai target untuk data yang akan diprediksi. Sesuai dengan prinsip kerja K-Nearest Neighbor yaitu mencari jarak terdekat antara data yang akan dievaluasi dengan k tetangga (neighbor) terdekatnya dalam data pelatihan. Persamaan dibawah ini menunjukkan rumus perhitungan untuk mencari jarak terdekat dengan d adalah jarak dan p adalah dimensi data : (1) Dengan keterangan : 1 : sampel data d : jarak 2 : data uji
26 | Machine Learning p : dimensi data i : variable data Kelebihan KNN : (Nguyen et al., 2017) 1. Sederhana dan Intuitif: KNN relatif mudah dipahami dan diimplementasikan. 2. Non-parametrik: Tidak mengasumsikan distribusi data tertentu. 3. Mudah dipahami dan diimplementasikan. 4. Memiliki konsistensi yang kuat. 1. Sensitif terhadap Outliers: KNN dapat dipengaruhi oleh data pencilan. 2. Mahal Komputasional: KNN perlu menghitung jarak untuk setiap pasangan data, yang dapat menjadi mahal secara komputasional untuk dataset besar. 3. Perlu penentu parameter K 4. Pembelajaran berdasarkan jarak tidak jelas mengenai jenis apa yang digunakan untuk menghasilkan solusi terbaik (Kaharudin, Musthofa Galih Pradana, 2019) 1. Dibandingkan dengan Naive Bayes: KNN tidak membuat asumsi probabilistik tentang data, sementara Naive Bayes melibatkan asumsi probabilitas yang ketat.
Machine Learning | 27 2. Dibandingkan dengan Decision Trees: KNN bekerja dengan membandingkan keseluruhan dataset, sementara pohon keputusan membuat keputusan berdasarkan pemilihan fitur tertentu. 3. Dibandingkan dengan Support Vector Machines (SVM): SVM mencoba menemukan batas keputusan yang optimal, sedangkan KNN tidak melibatkan proses pelatihan untuk menyesuaikan model. Pemilihan algoritma tergantung pada karakteristik dataset dan tujuan spesifik dari masalah machine learning yang dihadapi. KNN seringkali efektif untuk dataset kecil atau ketika struktur data kompleks dan sulit dijelaskan oleh model matematika. Namun, perlu diperhatikan bahwa KNN mungkin kurang efektif untuk dataset besar atau ketika asumsi linearitas atau probabilitas dibutuhkan (Musthofa Galih Pradana, Azriel Christian Nurcahyo, 2020). Adapun langkah kerja pada K-Nearest Neighbor adalah sebagai berikut : 1. Menghitung Jarak: KNN menggunakan metrik jarak (seperti Euclidean, Manhattan, atau Minkowski) untuk mengukur seberapa dekat atau miripnya dua data point. 2. Menemukan Tetangga Terdekat: KNN mengidentifikasi k data point dengan jarak terdekat dari data yang akan diprediksi. 3. Voting atau Rata-rata: Untuk klasifikasi, KNN melakukan voting mayoritas dari k tetangga terdekat untuk menentukan label data yang akan diprediksi. Untuk
28 | Machine Learning regresi, nilai rata-rata dari k tetangga digunakan sebagai prediksi. Terdapat beberapa data milik bank untuk menentukan dapat diberikan pinjaman atau tidak dengan atribut usia, dan besaran pinjaman. Dengan detail data sebagai berikut: Nama Usia Pinjaman Class Andi 25 40000 N Budi 35 60000 N Citra 45 80000 N Denny 20 20000 N Erlia 35 120000 N Fadhil 52 18000 N Gani 23 95000 Y Hilmi 40 62000 Y Intan 60 100000 Y Julio 48 220000 Y Kevin 33 15000 Y
Machine Learning | 29 Kemudian terdapat data baru yang belum memiliki kelas sebagai berikut : Nama Usia Pinjaman Class Lani 48 142000 ? Perintah : 1. Tentukan kelas dari data baru tersebut 2. Gunakan K=5 3. Gunakan penghitungan jarak Euclidean Distance Langkah-langkah : Langkah 1 : Hitung Euclidean Distance
30 | Machine Learning Sehingga didapatkan Euclidean Distance dan diberikan ranking sebagai berikut Nama Jarak Euclidean Andi 102000,0026 Budi 82000,00103 Citra 62000,00007 Denny 122000,0032 Erlia 22000,00384 Fadhil 124000,0001 Gani 47000,00665 Hilmi 80000,0004 Intan 42000,00171
Machine Learning | 31 Julio 78000 Kevin 8000,014062 Lani 0 Dari hasil penghitungan jarak Euclidean diatas, perlu dilakukan perankingan yang masuk pada langkah berikutnya. Langkah 2 : Cari ranking dari nilai Euclidean Data yang sudah dihitung masing-masing nilai Euclidean didapatkan hasil ranking sebagai berikut. Nama Jarak Euclidean Ranking Andi 102000,0026 9 Budi 82000,00103 8 Citra 62000,00007 5 Denny 122000,0032 10 Erlia 22000,00384 2 Fadhil 124000,0001 11 Gani 47000,00665 4 Hilmi 80000,0004 7 Intan 42000,00171 3 Julio 78000 6 Kevin 8000,014062 1 Lani 0 0
32 | Machine Learning Langkah 3 : Hitung nilai K Langkah ketiga adalah menghitung nilai K sesuai yang sudah ditentukan sebelumnya. Nilai K yang sudah ditentukan adalah K = 5. Maka akan dicari nilai dengan jumlah nilai terbesar sebanyak 5, atau 5 besar nilai dari Euclidean Distance. Sehingga didapatkan hasil berikut : Nama Class Ranking K=5 Andi N 9 Budi N 8 Citra N 5 N Denny N 10 Erlia N 2 N Fadhil N 11 Gani Y 4 Y Hilmi Y 7 Intan Y 3 Y Julio Y 6 Kevin Y 1 Y Lani Y 0 Y Langkah 4 : Hasil KNN Data pada langkah 3 menunjukan bahwa 2 class menunjukan class No, dan 3 class menunjukan class Yes. Karena class Yes lebih banyak dibandingkan No, maka kelas dari Lani (data baru) menjadi class Yes.
Machine Learning | 33 Pengguna perlu menentukan nilai k, yaitu jumlah tetangga terdekat yang akan digunakan dalam proses prediksi. Pemilihan nilai k dapat mempengaruhi kinerja model KNN. Pemilihan Nilai k yang Optimal: Pemilihan nilai k yang tepat dapat menjadi tantangan. Berdasarkan logika yang sudah dapat dilihat dari contoh kasus diatas, pemberian nilai K yang optimal adalah dengan menggunakna nilai K Ganjil, untuk menghindari ambiguitas jika menggunakan K Genap akan ada keputusan yang sama kuat dari nilai data sebelumnya. Dalam penerapan algoritma KNN dalam Bahasa pemrograman Python dapat dilakukan dengan memasukan langkah dan kode sebagai berikut : 1. Import library yang dibutuhkan dibawah ini #Import library yang diperlukan from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.preprocessing import LabelEncoder import pandas as pd
34 | Machine Learning 2. Load dataset yang dibuat. Proses ini bisa dilakukan manual ataupun menggunakan dataset file dari luar seperti dalam format csv. # Load dataset (contoh sederhana) # Pastikan dataset Anda memiliki kolom-kolom yang sesuai dengan fitur dan label data = { ‘Nama’ : *‘Andi’, ‘Budi’, ‘Citra’, ‘Denny’, ‘Erlia’, ‘Fadhil’, ‘Gani’, ‘Hilmi’, ‘Intan’, ‘Julio’, ‘Kevin’+, 'Usia': [25, 35, 45, 20, 35, 52, 23, 40, 60, 48, 33], 'Pendapatan': [4000, 6000, 8000, 2000, 120000, 18000, 95000, 62000,100000,220000,15000], 'Pinjaman': ['no', 'no', 'no', 'no', 'no', 'no', 'yes', 'yes',’yes’,’yes’,’yes’+ } df = pd.DataFrame(data) 3. Gunakan label encoder untuk mengubah labelling yes dan no menjadi angka dengan kode berikut ini. # Menggunakan LabelEncoder untuk mengubah label 'yes' dan 'no' menjadi angka le = LabelEncoder() df['Pinjaman'] = le.fit_transform(df['Pinjaman'])
Machine Learning | 35 4. Pisahkan fitur x dan y dan lakukan pembagian data latih dan data uji. Pada kali ini dilakukan pembagian sebesar 20% atau 0,2 untuk data testing. Ukuran ini dapat disesuaikan dengan kebutuhan percobaan. Dan definisikan jumlah k pada kode berikut ini. # Pisahkan fitur (X) dan label (y) X = df[['Usia', 'Pendapatan']] y = df['Pinjaman'] # Bagi dataset menjadi data latih dan data uji X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Inisialisasi model KNN dengan k=5 knn_model = KNeighborsClassifier(n_neighbors=5) 5. Lakukan proses training dan testing menggunakan data yang ada, dan melakukan prediksi dengan data baru yang didefinisikan sebagai berikut # Latih model menggunakan data latih knn_model.fit(X_train, y_train) # Lakukan prediksi menggunakan data uji y_pred = knn_model.predict(X_test)
36 | Machine Learning # Evaluasi akurasi model accuracy = accuracy_score(y_test, y_pred) print(f'Akurasi Model: {accuracy * 100:.2f}%') # Contoh prediksi untuk data baru new_data = {'Usia': [48], 'Pendapatan': [142000]} new_df = pd.DataFrame(new_data) # Prediksi kelas pinjaman untuk data baru new_prediction = knn_model.predict(new_df) predicted_class = le.inverse_transform(new_prediction)[0] print(f'Prediksi Kelas Pinjaman untuk Data Baru: {predicted_class}') 6. Maka akan didapatkan hasil akurasi prediksi model dengan prediksi kelas pinjaman baru sebagai berikut. Gambar 1. Hasil Prediksi KNN
Machine Learning | 37 4 Machine Learning Lifecycle
38 | Machine Learning Machine Learning Lifecycle adalah serangkaian langkah yang terstruktur dan terdokumentasi yang menggambarkan proses lengkap dalam pengembangan dan implementasi model machine learning. Siklus ini dimulai dari identifikasi masalah yang ingin dipecahkan dengan machine learning hingga pemantauan dan pemeliharaan model setelah diimplementasikan. Machine learning telah menjadi salah satu inovasi paling mendalam dalam dunia teknologi modern. Teknik-teknik ini telah mengubah cara kita memproses dan memanfaatkan data, membawa kemampuan kecerdasan buatan ke berbagai aplikasi sehari-hari, dari sistem rekomendasi hingga kendaraan otonom. Dalam hal ini, Machine Learning Lifecycle atau siklus kehidupan machine learning menjadi panduan kunci dalam pengembangan dan penerapan solusi machine learning yang sukses. Machine Learning Lifecycle adalah serangkaian langkah yang terstruktur dan terdokumentasi yang menggambarkan proses lengkap dalam pengembangan dan implementasi model machine learning. Ini adalah proses yang dimulai dari pengidentifikasian masalah yang ingin dipecahkan dengan machine learning hingga pengimplementasian model yang siap digunakan dalam aplikasi atau sistem produksi.
Machine Learning | 39 GAMBAR 1. Machine Learning Lifecycle Machine learning tidak hanya tentang membangun model; itu adalah proses yang lebih besar yang melibatkan serangkaian tahapan penting. Dalam bab ini, kita akan membahas tahapan siklus machine learning secara rinci. 1. TRAIN MODEL adalah inti dalam siklus Machine Learning Lifecycle. Pada tahap ini, model machine learning "belajar" dari data yang telah dipersiapkan dan dipilih sebelumnya. Model mengenali pola, hubungan, dan informasi yang ada dalam data, dan proses ini melibatkan penyetelan parameter dan peningkatan berulang. Validasi silang digunakan untuk menghindari overfitting dan memastikan generalisasi yang baik. Model pelatihan mengubah data menjadi alat cerdas yang dapat digunakan untuk membuat prediksi,
40 | Machine Learning mengklasifikasikan, dan mengambil keputusan berdasarkan informasi yang diperoleh. Kesuksesan model pelatihan adalah kunci dalam mencapai tujuan bisnis dan mendukung aplikasi machine learning dalam berbagai bidang. 2. PACKAGE MODEL dalam Machine Learning Lifecycle mengacu pada model yang telah melalui tahap pelatihan, validasi, dan penyetelan parameter. Ini adalah hasil akhir yang telah siap digunakan dalam berbagai aplikasi. Model ini "dikemas" dengan pengetahuan yang telah diperoleh selama siklus, termasuk kemampuan untuk membuat prediksi, mengklasifikasikan data, atau mengambil tindakan berdasarkan data yang dimasukkan. Model yang sudah siap digunakan ini memiliki nilai nyata dan dapat menjadi alat yang sangat efektif dalam membuat keputusan berdasarkan analisis data. Kualitas dan keakuratannya adalah parameter utama dalam menentukan sejauh mana model tersebut berhasil dalam mencapai tujuan yang diinginkan. 3. VALIDATE MODEL adalah tahap penting dalam Machine Learning Lifecycle yang memastikan model yang dikembangkan memiliki kualitas yang baik. Melalui validasi, model diuji menggunakan data yang tidak digunakan dalam tahap pelatihan untuk mengukur sejauh mana ia mampu menggeneralisasi. Ini membantu menghindari overfitting, di mana model hanya efektif pada data pelatihan tetapi tidak dapat berkinerja dengan baik pada data baru. Hasil validasi memberikan pemahaman tentang performa model dan apakah model tersebut sesuai dengan tujuan bisnis. Hasil validasi memberikan kepercayaan pada model sebelum digunakan dalam skenario nyata dan menjadi faktor penentu dalam keberhasilan proyek machine learning.