Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Interactive Ebook AI

Interactive Ebook AI

Published by Milyun Ni'ma Shoumi, 2022-06-20 21:25:47

Description: Interactive Ebook AI

Search

Read the Text Version

Teori dan Aplikasi Kecerdasan Buatan Menggunakan Python Disusun oleh: Milyun Ni'ma Shoumi, S.Kom., M.Kom. Arie Rachmad Syulistyo, S.Kom., M.Kom. Vivi Nur Wijayaningrum, S.Kom, M.Kom Yoppy Yunhasnawa, SST.,M.SC

TIM PENULIS Milyun Ni'ma Shoumi, S.Kom., M.Kom. Vivi Nur Wijayaningrum, S.Kom, M.Kom Yoppy Yunhasnawa, SST.,M.SC Arie Rachmad Syulistyo, S.Kom., M.Kom. 2

3

Kata Pengantar Segala Puji dan Syukur kami panjatkan selalu kepada Allah Subhanahu Wa Ta'ala atas Rahmat, Taufiq, dan Hidayah yang sudah diberikan sehingga kami bisa menyelesaikan e-book yang berjudul “Teori dan Aplikasi Kecerdasan Buatan Menggunakan Python” dengan tepat waktu. Tujuan dari pembuatan e-book ini tidak lain adalah untuk membantu memudahkan para mahasiswa dalam memahami dasar-dasar kecerdasan buatan dan implementasinya menggunakan bahasa pemrograman python. E-book ini juga akan memberikan informasi secara lengkap mengenai pengertian, macam, tujuan, dan banyak contoh aplikasi dan implementasi dari Kecerdasan Buatan yang dapat memecahkan permasalahan di kehidupan nyata. Teori dan contoh implementasi pada buku ini dapat dijadikan bahan pembelajaran dan memunculkan ide-ide penelitian di bidang Kecerdasan Buatan. Kami sadar bahwa penulisan e-book ini bukan merupakan buah hasil kerja keras kami sendiri. Ada banyak pihak yang sudah berjasa dalam membantu kami di dalam menyelesaikan e-book ini, seperti dalam proses penyusunan materi apa yang dibutuhkan, pemilihan contoh, dan lain-lain. Maka dari itu, kami mengucapkan banyak terimakasih kepada semua pihak yang telah membantu memberikan wawasan dan bimbingan kepada kami sebelum maupun ketika menulis e-book ini. Kami juga sadar bahwa e-book yang kami buat masih belum bisa dikatakan sempurna. Maka dari itu, kami meminta dukungan dan masukan dari para pembaca, agar kedepannya kami bisa lebih baik lagi di dalam menulis sebuah e-book. Malang, Maret 2022 Tim Penulis 4

DAFTAR ISI 6 Pengantar kecerdasan 49 unSupervised buatan Learning: clustering 16 Kecerdasan buatan 56 Natural Language dengan python Processing 23 Pembelajaran 59 NLTK Package mesin 65 Algoritma genetika 69 Computer vision 28 Persiapan data 75 Deep Learning 34 Supervised Learning: Classification 45 Supervised Learning: regression 5

Bab 1 PENGANTAR KECERDASAN BUATAN TUJUAN PEMBELAJARAN Memahami konsep dan pentingnya kecerdasan buatan Memahami contoh penerapan kecerdasan buatan pada berbagai bidang Mengetahui jenis-jenis kecerdasan buatan Sejak penemuan komputer, kemampuan komputer untuk melakukan berbagai tugas telah mengalami pertumbuhan yang pesat. Banyak yang telah mengembangkan kekuatan sistem komputer pada domain kerja yang beragam, kecepatan yang meningkat, dan ukuran komputer yang berkurang sehubungan dengan waktu. Salah satu cabang Ilmu Komputer adalah Artificial Intelligence yang bertujuan untuk menciptakan komputer atau mesin secerdas manusia. Konsep Dasar Kecerdasan Buatan Menurut bapak Kecerdasan Buatan, John McCarthy, kecerdasan buatan adalah \"Ilmu dan rekayasa yang membuat mesin menjadi cerdas, terutama program komputer menjadi cerdas\". Kecerdasan Buatan adalah cara membuat komputer, robot yang dikendalikan komputer, atau perangkat lunak dapat berpikir cerdas, dengan cara yang sama seperti yang dipikirkan oleh manusia. Kecerdasan Buatan dicapai dengan mempelajari bagaimana otak manusia berpikir dan bagaimana manusia belajar, memutuskan, dan bekerja saat mencoba memecahkan masalah, dan kemudian menggunakan hasil penelitian ini sebagai dasar untuk mengembangkan perangkat lunak dan sistem cerdas. Saat mengeksploitasi kemampuan sistem komputer, keingintahuan manusia, membuatnya bertanya-tanya, \"Dapatkah mesin berpikir dan berperilaku seperti manusia?\" Jadi, pengembangan AI dimulai dengan tujuan untuk menciptakan kecerdasan serupa pada mesin yang ditemukan pada manusia. 6

Pentingnya Mempelajari AI dapat belajar melalui data Kecerdasan Buatan / Dalam kehidupan sehari-hari, kita berurusan Artificial Intelligence dengan sejumlah besar data dan otak manusia (AI) tidak dapat melacak begitu banyak data. Itulah mengapa kita perlu mengotomatisasi Seperti yang kita ketahui bahwa hal-hal tersebut. Untuk melakukan otomatisasi, Kecerdasan Buatan berusaha kita perlu mempelajari AI karena dapat belajar menciptakan mesin secerdas dari data dan dapat melakukan tugas yang berulang dengan akurat dan tanpa kelelahan. manusia. Ada banyak alasan bagi kita untuk mempelajari Kecerdasan AI bisa mengajari dirinya sendiri Sangat penting bahwa suatu sistem harus belajar Buatan. Berikut adalah beberapa sendiri karena data itu sendiri terus berubah dan alasannya... pengetahuan yang diperoleh dari data tersebut harus diperbarui terus-menerus. Kita dapat menggunakan AI untuk memenuhi tujuan ini karena sistem yang mendukung AI dapat mengajari dirinya sendiri. AI dapat merespons secara real time Kecerdasan buatan dengan bantuan jaringan saraf dapat menganalisis data lebih dalam. Berkat kemampuan ini, AI dapat berpikir dan merespon situasi berdasarkan kondisi secara real time. AI mencapai akurasi yang baik Dengan bantuan deep neural network, AI dapat mencapai akurasi yang luar biasa. AI membantu di bidang kedokteran untuk mendiagnosis penyakit seperti kanker dari MRI pasien. AI dapat mengatur data untuk memaksimalkannya Data adalah kekayaan intelektual untuk sistem yang menggunakan algoritma belajar mandiri. Kita membutuhkan AI untuk mengindeks dan mengatur data dengan cara yang selalu memberikan hasil terbaik. 7

Apa itu Intelijen/Kecerdasan? Kemampuan sistem untuk menghitung, menalar, memahami hubungan dan analogi, belajar dari pengalaman, menyimpan dan mengambil informasi dari memori, memecahkan masalah, memahami ide-ide kompleks, menggunakan bahasa alami dengan lancar, mengklasifikasikan, menggeneralisasi, dan menyesuaikan situasi baru. Jenis-Jenis Kecerdasan CONTOH INTELIJEN & DESKRIPSI Kecerdasan linguistik Narator, Orator Kemampuan berbicara, mengenali, dan menggunakan mekanisme fonologi (bunyi ujaran), sintaksis (tata bahasa), dan semantik (makna). Kecerdasan musikal Musisi, Penyanyi, Komposer Kemampuan untuk menciptakan, berkomunikasi dengan, dan memahami makna yang terbuat dari suara, pemahaman nada, ritme. Kecerdasan logika-matematis Matematikawan, Ilmuwan Kemampuan untuk menggunakan dan memahami hubungan tanpa adanya tindakan atau objek. Ini juga merupakan kemampuan untuk memahami ide-ide yang kompleks dan abstrak. Kecerdasan spasial Pembaca peta, Astronot, Fisikawan Kemampuan untuk memahami informasi visual atau spasial, mengubahnya, dan menciptakan kembali gambar visual tanpa mengacu pada objek, membangun gambar 3D, dan mengubahnya Kecerdasan Kinestetik-Jasmani Penari Kemampuan menggunakan seluruh atau sebagian tubuh untuk memecahkan masalah atau produk fashion, mengontrol keterampilan motorik halus dan kasar, dan memanipulasi objek. Kecerdasan interpersonal Mass Kemampuan untuk mengenali dan membedakan perasaan, Communicators, keyakinan, dan niat orang lain. Interviewers Kita dapat mengatakan sebuah mesin atau sistem adalah kecerdasan buatan ketika 8 dilengkapi dengan setidaknya satu atau semua kecerdasan di dalamnya.

Terdiri dari apa saja kecerdasan itu? Kecerdasan tidak berwujud. Kecerdasan terdiri dari: Pemikiran (Reasoning) Pembelajaran (Learning) Penyelesaian masalah (Problem Solving) Persepsi (Perception) Kecerdasan Linguistik (Linguistic Intelligence) Resoning Linguistic Intelligence Kecerdasan Learning Perception Problem Solving 9

Reasoning Serangkaian proses yang memungkinkan kita memberikan dasar untuk penilaian, pengambilan keputusan, dan prediksi. Secara umum ada dua jenis reasoning: INDUCTIVE REASONING DEDUCTIVE REASONING melakukan pengamatan khusus untuk dimulai dengan pernyataan umum membuat pernyataan umum yang luas dan memeriksa kemungkinan untuk mencapai kesimpulan logis yang jika semua premis benar dalam sebuah spesifik. pernyataan, penalaran induktif memungkinkan kesimpulannya salah Jika sesuatu benar untuk kelas secara umum, maka juga berlaku Contoh \"Nita adalah guru. Nita rajin untuk semua anggota kelas itu. belajar. Oleh karena itu, semua guru rajin belajar.\" Contoh \"Semua wanita yang berusia di atas 60 tahun adalah nenek. Shalini berusia 65 tahun. Oleh karena itu, Shalini adalah seorang nenek.\" 10

Learning Kemampuan belajar dimiliki oleh manusia, spesies hewan tertentu, dan sistem berkemampuan AI. Pembelajaran dapat dikategorikan sebagai berikut: Pembelajaran Auditori Tipe belajar dengan mendengarkan. Misalnya, siswa mendengarkan rekaman audio ceramah. Pembelajaran Episodik Belajar dengan mengingat urutan peristiwa yang telah disaksikan atau dialami. Pembelajaran ini bersifat linier dan teratur. Pembelajaran motorik Tipe belajar dengan gerakan otot yang tepat. Misalnya, memetik benda, menulis, dll. Pembelajaran observasi Belajar dengan melihat dan meniru orang lain. Misalnya, anak mencoba belajar dengan meniru orang tuanya. Pembelajaran observasi Belajar dengan melihat dan meniru orang lain. Misalnya, anak mencoba belajar dengan meniru orang tuanya. Pembelajaran Perseptual Belajar mengenali rangsangan yang telah dilihat seseorang sebelumnya. Misalnya, mengidentifikasi dan mengklasifikasikan objek dan situasi. Pembelajaran Relasional Belajar untuk membedakan antara berbagai rangsangan atas dasar sifat relasional, bukan sifat mutlak. Misalnya, menambahkan garam 'sedikit lebih sedikit' pada saat memasak kentang. Pembelajaran Spasial Pembelajaran melalui rangsangan visual seperti gambar, warna, peta, dll. Misalnya, Seseorang dapat membuat peta jalan dalam pikirannya sebelum benar-benar mengikuti jalan. Stimulus-Response Learning Belajar untuk melakukan perilaku tertentu ketika stimulus tertentu hadir. Misalnya, seekor anjing mengangkat telinganya saat mendengar bel pintu. 11

Problem Solving Proses di mana seseorang merasakan dan mencoba untuk sampai pada solusi yang diinginkan dari situasi sekarang dengan mengambil beberapa jalan, yang mungkin terhalang oleh rintangan yang diketahui atau tidak diketahui. Pemecahan masalah juga mencakup pengambilan keputusan, yaitu proses memilih alternatif yang paling sesuai dari beberapa alternatif untuk mencapai tujuan yang diinginkan. Perception Proses memperoleh, menafsirkan, memilih, dan mengatur informasi sensorik. Persepsi mengandaikan penginderaan. Pada manusia, persepsi dibantu oleh alat indera. Dalam domain AI, mekanisme persepsi menempatkan data yang diperoleh sensor bersama-sama dengan cara yang berarti. Linguistic Intelligence Kemampuan seseorang untuk menggunakan, memahami, berbicara, dan menulis bahasa lisan dan tulisan. Hal ini penting dalam komunikasi interpersonal. 12

Apa saja yang Terlibat dalam AI? 1 Machine Learning Salah satu bidang AI yang paling populer. Konsep dasarnya adalah menjadikan mesin belajar dari data sebagaimana manusia dapat belajar dari pengalamannya. Machine Learning berisi model pembelajaran atas dasar prediksi yang dapat dibuat pada data yang tidak diketahui. 2 Logic Bidang studi penting lainnya di mana logika matematika digunakan untuk menjalankan program komputer. Logic berisi aturan dan fakta untuk melakukan pencocokan pola, analisis semantik, dll. 3 Searching Bidang studi ini pada dasarnya digunakan dalam permainan seperti catur, tic-tac-toe. Algoritma pencarian memberikan solusi optimal setelah mencari seluruh ruang pencarian. 4 Artificial neural networks Jaringan sistem komputasi yang efisien tema sentral yang dipinjam dari analogi jaringan saraf biologis. ANN dapat digunakan dalam robotika, pengenalan suara, pemrosesan ucapan, dll. 5 Genetic Algorithm Algoritma genetika membantu dalam memecahkan masalah dengan bantuan lebih dari satu program. Hasilnya akan didasarkan pada pemilihan yang paling cocok. 6 Knowledge Representation Bidang studi yang dengannya kita dapat merepresentasikan fakta dengan cara mesin yang dapat dimengerti oleh mesin. Pengetahuan yang lebih efisien terwakili; semakin banyak sistem akan menjadi cerdas. 13

Aplikasi Kecerdasan Buatan 1 Gaming AI memainkan peran penting dalam permainan strategis seperti catur, poker, tic-tac-toe, dll., Di mana mesin dapat memikirkan sejumlah besar kemungkinan posisi berdasarkan pengetahuan heuristik. 2 Natural Language Processing Dimungkinkan adanya interaksi dengan komputer yang memahami bahasa alami yang diucapkan oleh manusia. 3 Expert System Ada beberapa aplikasi yang mengintegrasikan mesin, perangkat lunak, dan informasi khusus untuk memberikan penalaran dan nasihat. Mereka memberikan penjelasan dan saran kepada pengguna. 4 Vision System Sistem ini memahami, menafsirkan, dan memahami input visual pada komputer. Sebagai contoh, Sebuah pesawat mata-mata mengambil foto, yang digunakan untuk mengetahui informasi spasial atau peta daerah. Dokter menggunakan sistem pakar klinis untuk mendiagnosis pasien. Polisi menggunakan perangkat lunak komputer yang dapat mengenali wajah penjahat dengan potret tersimpan yang dibuat oleh seniman forensik. 5 Speech Recognition Beberapa sistem cerdas mampu mendengar dan memahami bahasa dalam bentuk kalimat dan artinya saat manusia berbicara dengannya. Selain itu dapat menangani aksen yang berbeda, kata-kata slang, kebisingan di latar belakang, perubahan suara manusia karena dingin, dll. 6 Handwriting Recognition Perangkat lunak pengenalan tulisan tangan membaca teks yang ditulis di atas kertas dengan pena atau di layar dengan stylus. Sistem dapat mengenali bentuk huruf dan mengubahnya menjadi teks yang dapat diedit. 14

Agent & Environment Agent Agen adalah segala sesuatu yang dapat merasakan lingkungannya melalui sensor dan bertindak atas lingkungan itu melalui efektor. Agen manusia memiliki organ sensorik seperti mata, telinga, hidung, lidah dan kulit yang sejajar dengan sensor, dan organ lain seperti tangan, kaki, mulut, untuk efektor. Agen robot menggantikan kamera dan pencari jangkauan inframerah untuk sensor, serta berbagai motor dan aktuator untuk efektor. Agen perangkat lunak telah mengkodekan bit string sebagai program dan tindakannya. Environment Beberapa program beroperasi di lingkungan buatan yang terbatas pada input keyboard, database, sistem file komputer, dan output karakter di layar. Sebaliknya, beberapa agen perangkat lunak (software robots atau softbots) ada di domain softbots yang tidak terbatas. Simulator memiliki lingkungan yang sangat detail dan kompleks. Agen perangkat lunak perlu memilih dari serangkaian tindakan yang panjang secara real time. PERTANYAAN Sebutkan contoh penerapan Kecerdasan Buatan / Artificial Intelligence yang Anda ketahui, dan bagaimanakah cara kerjanya? JAWABAN 15

Bab 2 KECERDASAN BUATAN DENGAN PYTHON TUJUAN PEMBELAJARAN Mengetahui kelebihan dan fitur-fitur pada Python Mampu melakukan instalasi pada PC / notebook Mampu menjalankan Python pada PC / notebook Kecerdasan buatan dianggap sebagai teknologi yang tren di masa depan. Sudah ada sejumlah aplikasi yang dibuat di dalamnya. Karena ini, banyak perusahaan dan peneliti tertarik padanya. Tetapi pertanyaan utama yang muncul di sini adalah dalam bahasa pemrograman apa aplikasi AI ini dapat dikembangkan? Ada berbagai bahasa pemrograman seperti Lisp, Prolog, C++, Java dan Python, yang dapat digunakan untuk mengembangkan aplikasi AI. Diantara pilihan-pilihan tersebut, bahasa pemrograman Python mendapatkan popularitas besar, alasannya adalah sebagai berikut 1 Sintaks sederhana & lebih sedikit coding Python melibatkan pengkodean yang sangat sedikit dan sintaksis sederhana di antara bahasa pemrograman lain yang dapat digunakan untuk mengembangkan aplikasi AI. Karena fitur ini, pengujian bisa lebih mudah dan kita bisa lebih fokus pada pemrograman. 2 Pustaka bawaan untuk proyek AI Keuntungan utama menggunakan Python untuk AI adalah ia hadir dengan pustaka bawaan. Python memiliki perpustakaan untuk hampir semua jenis proyek AI. Misalnya, NumPy, SciPy, matplotlib, nltk, SimpleAI adalah beberapa library bawaan Python yang penting. Open source, Python adalah bahasa pemrograman open source. Hal ini membuatnya sangat populer di masyarakat. Dapat digunakan untuk berbagai pemrograman Python dapat digunakan untuk berbagai tugas pemrograman seperti skrip shell kecil hingga aplikasi web perusahaan. Ini adalah alasan lain mengapa Python cocok untuk proyek AI. 16

Fitur Python Python adalah bahasa scripting tingkat tinggi, ditafsirkan, interaktif, dan berorientasi objek. Python dirancang agar sangat mudah dibaca. Python sering menggunakan kata kunci bahasa Inggris sedangkan bahasa lain menggunakan tanda baca, dan memiliki konstruksi sintaksis yang lebih sedikit daripada bahasa lain. Fitur-fitur Python diantaranya: Mudah dipelajari, Python memiliki beberapa kata kunci, struktur sederhana, dan sintaks yang jelas. Hal ini memungkinkan siswa untuk mengambil bahasa dengan cepat. Mudah dibaca, Kode Python lebih jelas dan terlihat oleh mata. Mudah di-maintain, Kode sumber Python cukup mudah dirawat. Pustaka standar yang luas, Pustaka Python sangat portabel dan kompatibel lintas platform di UNIX, Windows, dan Macintosh. Mode Interaktif, Python memiliki dukungan untuk mode interaktif yang memungkinkan pengujian interaktif dan debugging potongan kode. Portabel, Python dapat berjalan di berbagai platform perangkat keras dan memiliki antarmuka yang sama di semua platform. Extendable, Kita dapat menambahkan modul tingkat rendah ke interpreter Python. Modul-modul ini memungkinkan pemrogram untuk menambah atau menyesuaikan alat mereka agar lebih efisien. Database, Python menyediakan antarmuka ke semua database komersial utama. Pemrograman GUI, Python mendukung aplikasi GUI yang dapat dibuat dan porting ke banyak panggilan sistem, perpustakaan, dan sistem windows, seperti Windows MFC, Macintosh, dan sistem X Window dari Unix. Scalable, Python menyediakan struktur dan dukungan yang lebih baik untuk program besar daripada skrip shell. Fitur Penting dari Python Mendukung metode pemrograman fungsional dan terstruktur serta OOP. Dapat digunakan sebagai bahasa scripting atau dapat dikompilasi ke byte-code untuk membangun aplikasi besar. Menyediakan tipe data dinamis tingkat tinggi dan mendukung pemeriksaan tipe dinamis. Mendukung pengumpulan sampah otomatis. Dapat dengan mudah diintegrasikan dengan C, C++, COM, ActiveX, CORBA, dan Java. 17

Instalasi Python Distribusi Python tersedia untuk sejumlah besar platform. Kita hanya perlu mengunduh kode biner yang berlaku untuk platform yang digunakan dan menginstal Python. Jika kode biner untuk platform yang digunakan tidak tersedia, Kita memerlukan kompiler C untuk mengompilasi kode sumber secara manual. Kompilasi kode sumber menawarkan lebih banyak fleksibilitas dalam hal pilihan fitur yang dibutuhkan dalam instalasi. Berikut adalah ikhtisar singkat tentang menginstal Python di berbagai platform Instalasi pada Unix & Linux Ikuti langkah-langkah berikut ini untuk menginstal Python pada mesin Unix/Linux. 1. Buka browser Web dan buka https://www.python.org/downloads 2. Ikuti tautan untuk mengunduh kode sumber zip yang tersedia untuk Unix/Linux. 3. Unduh dan ekstrak file. 4. Mengedit file \"Modules/Setup\" jika Anda ingin menyesuaikan beberapa opsi. 5. Jalankan \"./configure\" script 6. Jalankan command \"make\" 7. Jalankan comman \"make install\" Tahapan ini akan menginstal Python di lokasi standar yaitu: /usr/local/bin dan pustakanya/library di \"/usr/local/lib/pythonXX\" dimana XX adalah versi Python. Instalasi pada Windows Ikuti langkah-langkah berikut ini untuk menginstal Python di mesin Windows. 1. Buka browser Web dan buka https://www.python.org/downloads 2. Ikuti tautan untuk file penginstal \"python-XYZ.msi\" pada Windows, dimana XYZ adalah versi yang perlu diinstal. 3. Untuk menggunakan installer python-XYZ.msi ini, sistem Windows harus mendukung Microsoft Installer 2.0. Simpan file penginstal ke mesin lokal Anda dan kemudian jalankan untuk mengetahui apakah mesin Anda mendukung MSI. 4. Jalankan file yang diunduh, maka akan tampil wizard penginstalan Python, yang sangat mudah digunakan. Ikuti saja pengaturan default dan tunggu sampai instalasi selesai. 18

Instalasi Python Instalasi pada Macintosh Jika Anda menggunakan Mac OS X, disarankan agar Anda menggunakan Homebrew untuk menginstal Python 3., karena merupakan penginstal paket yang bagus untuk Mac OS X dan sangat mudah digunakan. Jika Anda tidak memiliki Homebrew, Anda dapat menginstalnya menggunakan perintah berikut: $ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\" Kita dapat memperbarui manajer paket dengan perintah di bawah ini $ brew update Sekarang jalankan perintah berikut untuk menginstal Python3 di sistem Anda $ brew install python3 Setting PATH Program dan file lainnya yang dapat dieksekusi berada di banyak direktori, jadi sistem operasi menyediakan jalur pencarian yang mencantumkan direktori yang dicari OS untuk file yang dapat dieksekusi. Path disimpan dalam environment variable, yang merupakan string bernama yang dikelola oleh sistem operasi. Variabel ini berisi informasi yang tersedia untuk command shell dan program lainnya. Variabel path dinamai PATH di Unix atau Path di Windows (Unix peka huruf besar-kecil; Windows tidak). Di Mac OS, penginstal menangani detail path. Untuk memanggil interpreter Python dari direktori tertentu, Kita harus menambahkan direktori Python pada path. 1 Setting Path pada Unix/Linux Untuk menambahkan direktori Python pada path untuk sesi tertentu di Unix: Di dalam csh shell, ketik: setenv PATH \"$PATH:/usr/local/bin/python\" dan tekan Enter. Di bash shell (Linux), ketik: export ATH = \"$PATH:/usr/local/bin/python\" dan tekan Enter. Di sh atau ksh shell, ketiku: PATH = \"$PATH:/usr/local/bin/python\" dan tekan Enter. Catatan: /usr/local/bin/python adalah path dari direktori Python. 2 Setting Path pada Windows Untuk menambahkan direktori Python ke jalur untuk sesi tertentu di Windows Pada command prompt ketik: path %path%;C:\\Python dan tekan Enter. Catatan: C:\\Python adalah path dari direktori Python. 19

Menjalankan Python Interactive Interpreter Kita dapat memulai Python dari Unix, DOS, atau sistem lain yang menyediakan command line interpreter atau window shell. Masukkan python di baris perintah. Mulai pengkodean (coding) pada interactive interpreter. $python # Unix/Linux atau python% # Unix/Linux atau C:> python # Windows/DOS Berikut adalah daftar semua opsi baris perintah yang tersedia No. Opsi & Deskripsi 1 -d (memberikan debug output) 2 -o (menghasilkan bytecode yang dioptimalkan, menghasilkan file .pyo) 3 -S (jangan menjalankan import site untuk mencari path Python ketika startup) 4 -v (output verbose, trace secara detail pada statement import) 5 -c cmd (Menjalankan skrip Python yang dikirim sebagai string cmd) 6 File (Jalankan skrip Python dari file yang diberikan) 20

Menjalankan Python Script dari Command-line Skrip Python dapat dieksekusi pada baris perintah dengan memanggil interpreter pada aplikasi, seperti berikut ini: $python script.py -> untuk Unix/Linux atau python% script.py -> untuk Unix/Linux atau C:> python script.py -> untuk Windows/DOS Integrated Development Environment (IDE) Kita dapat menjalankan Python dari lingkungan Graphical User Interface (GUI), jika memiliki aplikasi GUI di sistem yang mendukung Python, antara lain: Unix - IDLE adalah IDE Unix pertama untuk Python. Windows - PythonWin adalah antarmuka Windows pertama untuk Python dan merupakan IDE dengan GUI. Macintosh - Python versi Macintosh bersama dengan IDLE IDE tersedia dari situs web utama, dan dapat diunduh sebagai file MacBinary atau BinHex. Jika Kita tidak dapat mengatur environtment dengan benar, maka Kita dapat mengambil bantuan dari admin sistem. Pastikan environtment Python diatur dengan benar dan berfungsi dengan baik. Kita juga dapat menggunakan platform Python lain yang disebut Anaconda. Anaconda mencakup ratusan packages data science yang populer dan packages conda, serta virtual environment manager untuk Windows, Linux dan MacOS. Kita dapat mengunduhnya sesuai sistem operasi dari tautan: https://www.anaconda.com/download/ 21

Menjalankan Python Tutorial Instalasi Anaconda dan Menjalankan Jupyter Notebook di Windows PERTANYAAN Apa keuntungan menggunakan Python dibanding bahasa pemrograman lain untuk mengembangkan AI? JAWABAN 22

Bab 3 PEMBELAJARAN MESIN (MACHINE LEARNING) TUJUAN PEMBELAJARAN Mampu memahami konsep pembelajaran mesin Mengetahui jenis-jenis pembelajaran mesin Mengetahui algoritma-algoritma pembelajaran mesin yang umumnya digunakan Pembelajaran (Learning) berarti perolehan pengetahuan atau keterampilan melalui studi atau pengalaman. Berdasarkan hal ini, kita dapat mendefinisikan pembelajaran mesin (Machine Learning) sebagai berikut: Pembelajaran Mesin dapat didefinisikan sebagai bidang ilmu komputer, lebih khusus lagi aplikasi kecerdasan buatan, yang menyediakan sistem komputer kemampuan untuk belajar dengan data dan melakukan peningkatan kemampuan dari pengalaman tanpa diprogram secara eksplisit. Pada dasarnya, fokus utama pembelajaran mesin adalah memungkinkan komputer belajar secara otomatis tanpa campur tangan manusia. Sekarang muncul pertanyaan bagaimana pembelajaran seperti itu dapat dimulai dan dilakukan? Hal ini dapat dimulai dengan pengamatan data. Data dapat berupa beberapa contoh, instruksi atau beberapa pengalaman langsung. Kemudian berdasarkan input ini, mesin membuat keputusan yang lebih baik dengan mencari beberapa pola dalam data. Jenis-Jenis Pembelajaran Mesin 1 Supervised machine learning algorithms Algoritma pembelajaran mesin yang paling umum digunakan. Disebut terawasi (supervised) karena proses pembelajaran algoritma dari dataset pelatihan dapat dianggap sebagai guru yang mengawasi proses pembelajaran. Dalam algoritma pembelajaran mesin semacam ini, kemungkinan hasil sudah diketahui dan data pelatihan juga diberi label dengan jawaban yang benar. Hal ini dapat dipahami sebagai berikut: Misalkan kita memiliki variabel input x dan variabel output y dan kita menerapkan algoritma untuk mempelajari fungsi pemetaan dari input ke output seperti Y = f(x) Sekarang, tujuan utamanya adalah untuk memperkirakan fungsi pemetaan dengan baik sehingga ketika kita memiliki data input baru (x), kita dapat memprediksi variabel output (Y) untuk data tersebut. 23

Permasalahan supervised learning umumnya dapat dibagi menjadi dua, yaitu: 1. Classification - Suatu masalah disebut permasalahan klasifikasi ketika kita memiliki keluaran yang dikategorikan seperti “hitam”, “mengajar”, “non-mengajar”, dll. 2. Regression - Suatu masalah disebut masalah regresi ketika kita memiliki output nilai riil seperti \"jarak\", \"kilogram\", dll. Decision tree, random forest, knn, logistic regression adalah contoh dari algoritma pembelajaran mesin yang diawasi (supervised machine learning algorithms) 2 Unsupervised machine learning algorithms Seperti namanya, algoritma pembelajaran mesin semacam ini tidak memiliki pengawas untuk memberikan panduan apa pun. Itulah sebabnya algoritma pembelajaran mesin tanpa pengawasan sangat selaras dengan apa yang oleh sebagian orang disebut kecerdasan buatan sejati. Hal ini apat dipahami sebagai berikut: Misalkan kita memiliki variabel input x, maka tidak akan ada variabel output yang sesuai seperti yang ada dalam algoritma pembelajaran terawasi. Dengan kata yang lebih sederhana, kita dapat mengatakan bahwa dalam pembelajaran tanpa pengawasan tidak akan ada jawaban yang benar dan tidak ada guru untuk bimbingan. Algoritma membantu menemukan pola yang menarik dalam data. Permasalahan dalam pembelajaran tanpa pengawasan dapat dibagi menjadi dua jenis masalah berikut: 1. Clustering - Dalam masalah clustering, kita perlu menemukan pengelompokan yang melekat pada data. Misalnya, mengelompokkan pelanggan berdasarkan perilaku pembelian mereka. 2. Asosiasi - Suatu masalah disebut masalah asosiasi karena memerlukan penemuan aturan yang menggambarkan sebagian besar data kita. Misalnya, menemukan pelanggan yang membeli x dan y. K-means clustering, algoritma Apriori untuk asosiasi adalah contoh dari algoritma pembelajaran mesin yang tidak diawasi. 3 Reinforcement machine learning algorithms Jenis algoritma pembelajaran mesin ini sangat jarang digunakan. Algoritma ini melatih sistem untuk membuat keputusan tertentu. Pada dasarnya, mesin dihadapkan pada lingkungan di mana ia melatih dirinya sendiri secara terus-menerus menggunakan metode coba-coba. Algoritma ini belajar dari pengalaman masa lalu dan mencoba menangkap pengetahuan terbaik untuk membuat keputusan yang akurat. Markov Decision Process adalah contoh algoritma pembelajaran mesin reinforcement. 24

Algoritma Pembelajaran Mesin yang Umum Digunakan 1 Linear Regression Salah satu algoritma paling terkenal dalam statistik dan pembelajaran mesin. Konsep Dasar - Linear regression adalah model linier yang mengasumsikan hubungan linier antara variabel input, katakanlah x, dan variabel keluaran tunggal, katakanlah y. Dengan kata lain, kita dapat mengatakan bahwa y dapat dihitung dari kombinasi linier dari variabel input x. Hubungan antar variabel dapat dibentuk dengan memasang (fitting) garis terbaik. Jenis Linear Regression Regresi linier terdiri dari dua jenis sebagai berikut: Simple linear regression - Suatu algoritma regresi linier disebut regresi linier sederhana jika hanya memiliki satu variabel bebas. Multiple linear regression - Suatu algoritma regresi linier disebut regresi linier berganda jika memiliki lebih dari satu variabel bebas. Regresi linier umumnya digunakan untuk memperkirakan nilai riil berdasarkan variabel kontinu. Misalnya, total penjualan toko dalam sehari, berdasarkan nilai sebenarnya, dapat diperkirakan dengan regresi linier. 2 Logistic Regression Algoritma klasifikasi yang juga dikenal sebagai logit regression. Regresi logistik adalah algoritma klasifikasi yang digunakan untuk memperkirakan nilai- nilai diskrit seperti 0 atau 1, benar atau salah, ya atau tidak berdasarkan satu set variabel independen yang diberikan. Pada dasarnya, ia memprediksi probabilitas maka outputnya terletak di antara 0 dan 1. 3 Decision Tree Pohon keputusan adalah algoritma pembelajaran terawasi (supervised learning) yang banyak digunakan untuk masalah klasifikasi. Pada dasarnya decision tree adalah pengklasifikasi yang dinyatakan sebagai partisi rekursif berdasarkan variabel independen. Pohon keputusan memiliki simpul yang membentuk pohon berakar. Pohon berakar adalah pohon terarah dengan simpul yang disebut \"root\". Root tidak memiliki edge yang masuk dan semua node lainnya memiliki satu edge yang masuk. Node ini disebut daun atau node keputusan. Sebagai contoh, perhatikan pohon keputusan berikut untuk melihat apakah seseorang fit atau tidak. 25

4 Support Vector Machine (SVM) Digunakan untuk masalah klasifikasi dan regresi. Tetapi umumnya digunakan untuk masalah klasifikasi. Konsep utama SVM adalah memplot setiap item data sebagai titik dalam ruang n-dimensi dengan nilai setiap fitur menjadi nilai koordinat tertentu. Di sini n akan menjadi fitur yang akan kita miliki. Berikut ini adalah representasi grafis sederhana untuk memahami konsep SVM Dalam diagram di atas, kita memiliki dua fitur sehingga pertama-tama kita perlu memplot kedua variabel ini dalam ruang dua dimensi di mana setiap titik memiliki dua koordinat, yang disebut vektor pendukung. Garis membagi data menjadi dua kelompok klasifikasi yang berbeda. Baris ini akan menjadi classifier. 5 Naïve Bayes Naïve Bayes juga merupakan teknik klasifikasi. Logika di balik teknik klasifikasi ini adalah dengan menggunakan teorema Bayes untuk membangun pengklasifikasi. Asumsinya adalah bahwa prediktor bersifat independen. Dengan kata sederhana, diasumsikan bahwa kehadiran fitur tertentu di kelas tidak terkait dengan kehadiran fitur lainnya. Di bawah ini adalah persamaan untuk teorema Bayes Model Naïve Bayes mudah dibuat dan sangat berguna untuk kumpulan data yang besar. 6 K-Nearest Neighbors (KNN) KNN digunakan untuk permasalahan klasifikasi dan regresi. Namun pada umumnya, KNN banyak digunakan untuk memecahkan masalah klasifikasi. Konsep utama dari algoritma ini adalah bahwa KNN digunakan untuk menyimpan semua kasus yang tersedia dan mengklasifikasikan kasus baru dengan suara mayoritas (majority votes) dari k tetangganya. Kasus tersebut kemudian ditugaskan ke kelas yang paling umum di antara tetangga K-terdekatnya, diukur dengan fungsi jarak. Fungsi jarak dapat berupa jarak Euclidean, Minkowski dan Hamming. Berikut ini hal-hal yang perlu dipertimbangkan ketika menggunakan KNN: Secara komputasi KNN lebih mahal (expensive) daripada algoritma lain yang digunakan untuk masalah klasifikasi. Diperlukan adanya normalisasi variabel, jika tidak, variabel dengan rentang yang lebih tinggi dapat membiaskannya. Di KNN, kita perlu mengerjakan tahap pra-pemrosesan seperti penghilangan noise. 26

7 K-Means Clustering Seperti namanya, K-Means Clustering digunakan untuk menyelesaikan masalah pengelompokan. Pada dasarnya, K-Means Clustering adalah jenis pembelajaran tanpa pengawasan (unsupervised learning). Logika utama dari algoritma K-Means clustering adalah untuk mengklasifikasikan kumpulan data melalui sejumlah cluster. Ikuti langkah- langkah ini untuk membentuk cluster dengan K-means: 1. K-means mengambil k jumlah titik untuk setiap cluster yang dikenal sebagai centroid. 2.Sekarang setiap titik data membentuk cluster dengan centroid terdekat, yaitu k cluster. 3.Selanjutnya akan dicari centroid dari setiap cluster berdasarkan anggota cluster yang ada. 4.Kita perlu mengulangi langkah-langkah ini sampai konvergensi terjadi. 8 Random Forest Random Forest adalah algoritma klasifikasi yang bersifat diawasi (supervised). Keuntungan dari algoritma random forest adalah dapat digunakan untuk jenis masalah klasifikasi dan regresi. Pada dasarnya random forest adalah kumpulan pohon keputusan (yaitu, forest) atau dapat dikatakan ansambel decision tree. Konsep dasar random forest adalah bahwa setiap pohon (tree) memberikan klasifikasi dan hutan (forest) memilih klasifikasi terbaik di antaranya. Berikut adalah kelebihan dari algoritma Random Forest Pengklasifikasi random forest dapat digunakan untuk tugas klasifikasi dan regresi. Random forest dapat menangani nilai-nilai yang hilang (missing values). PERTANYAAN Sebutkan dan jelaskan contoh penerapan salah satu algoritma pembelajaran mesin yang telah disebutkan di atas, dan bagaimana proses/cara kerjanya ? JAWABAN 27

Bab 4 PERSIAPAN DATA (DATA PREPARATION) TUJUAN PEMBELAJARAN Mampu mengetahui langkah-langkah pra-pemrosesan data Mampu memahami teknik-teknik pra-pemrosesan data Mampu mengimplementasi pra-pemrosesan data pada Python Kita telah mempelajari algoritma pembelajaran mesin, baik yang supervised maupun unsupervised. Algoritma-algoritma ini membutuhkan data yang diformat untuk memulai proses pelatihan. Kita harus menyiapkan atau memformat data dengan cara tertentu agar dapat diberikan sebagai input untuk algoritma pembelajaran mesin. Bab ini berfokus pada persiapan data untuk algoritma pembelajaran mesin. Pra-pemrosesan Data Dalam kehidupan kita sehari-hari, kita berurusan dengan banyak data, tetapi data ini dalam bentuk mentah. Untuk menyediakan data sebagai input dari algoritma pembelajaran mesin, kita perlu mengubahnya menjadi data yang berarti. Di situlah pra-pemrosesan data (data preprocessing) muncul. Dengan kata lain, kita dapat mengatakan bahwa sebelum memberikan data ke algoritma pembelajaran mesin, kita perlu memproses data terlebih dahulu. Langkah-Langkah Pra-pemrosesan Data Ikuti langkah-langkah berikut ini untuk melakukan praproses data dengan Python Langkah 1 Mengimpor package yang dibutuhkan. Jika kita menggunakan Python maka langkah ini menjadi tahapan pertama untuk mengonversi data ke dalam format tertentu, yaitu preprocessing. Hal ini dapat dilakukan dengan cara sebagai berikut: import numpy as np import sklearn.preprocessing Dari kode di atas, kita telah menggunakan dua packages berikut: 1.NumPy - Pada dasarnya NumPy adalah pacakage pemrosesan array yang dirancang untuk memanipulasi array multi-dimensi berukuran besar secara efisien tanpa mengorbankan terlalu banyak kecepatan untuk array multi-dimensi yang berukuran kecil. 2.Sklearn.preprocessing - Package ini menyediakan banyak fungsi utilitas umum dan kelas transformator untuk mengubah vektor fitur mentah menjadi representasi yang lebih cocok untuk algoritma pembelajaran mesin. 28

Langkah 2 Mendefinisikan data sampel Setelah mengimpor paket, kita perlu mendefinisikan beberapa data sampel sehingga kita dapat menerapkan teknik preprocessing pada data tersebut. Sekarang kita akan mendefinisikan data sampel seperti berikut: input_data = np.array([2.1, -1.9, 5.5], [-1.5, 2.4, 3.5], [0.5, -7.9, 5.6], [5.9, 2.3, -5.8]) Langkah 3 Menerapkan teknik preprocessing Pada langkah ini, kita perlu menerapkan salah satu teknik preprocessing. Bagian selanjutnya akan menjelaskan teknik pra-pemrosesan data. Teknik Pra-pemrosesan Data 1 Binarization Teknik preprocessing yang digunakan ketika kita perlu mengubah nilai numerik menjadi nilai Boolean. Metode inbuilt dapat digunakan untuk binerisasi data input, katakanlah dengan menggunakan 0,5 sebagai nilai ambang (threshold value) dengan cara berikut: data_binarized = preprocessing.Binarizer(threshold = 0.5).transform(input_data)print(\"\\nBinarized data:\\n\", data_binarized) setelah menjalankan kode di atas kita akan mendapatkan output berikut, semua nilai di atas 0,5 (nilai ambang batas) akan dikonversi menjadi 1 dan semua nilai di bawah 0,5 akan dikonversi menjadi 0. [[ 1. 0. 1.] [ 0. 1. 1.] [ 0. 0. 1.] [ 1. 1. 0.]] 2 Mean Removal Teknik preprocessing lain yang sangat umum digunakan dalam pembelajaran mesin. Pada dasarnya digunakan untuk menghilangkan mean dari vektor fitur, sehingga setiap fitur berpusat pada nol. Kita juga dapat menghilangkan bias dari fitur dalam vektor fitur. Untuk menerapkan teknik preprocessing mean removal pada data sampel, kita dapat menulis kode Python yang ditunjukkan di bawah ini. Kode akan menampilkan Mean dan Standar deviasi dari input data. print(\"Mean = \", input_data.mean(axis = 0)) print(\"Std deviation = \", input_data.std(axis = 0)) 29

Kita akan mendapatkan output berikut setelah menjalankan baris kode di atas Mean = [ 1.75 -1.275 2.2] Std deviation = [ 2.71431391 4.20022321 4.69414529] Sekarang, kode di bawah ini akan menghapus Mean dan Standar deviasi dari data input data_scaled = preprocessing.scale(input_data)print(\"Mean =\", data_scaled.mean(axis=0))print(\"Std deviation =\", data_scaled.std(axis = 0)) Kita akan mendapatkan output berikut setelah menjalankan baris kode di atas Mean = [ 1.11022302e-16 0.00000000e+00 0.00000000e+00] Std deviation = [ 1. 1. 1.] 3 Scaling Teknik preprocessing data yang digunakan untuk menskalakan vektor fitur. Penskalaan vektor fitur diperlukan karena nilai setiap fitur dapat bervariasi di antara banyak nilai acak. Dengan kata lain, kita dapat mengatakan bahwa penskalaan itu penting karena kita tidak ingin fitur apapun menjadi besar atau kecil secara sintetis. Dengan bantuan kode Python berikut, kita dapat melakukan penskalaan data input kita, yaitu vektor fitur data_scaler_minmax = preprocessing.MinMaxScaler(feature_range=(0,1)) data_scaled_minmax = data_scaler_minmax.fit_transform(input_data)print (\"\\nMin max scaled data:\\n\", data_scaled_minmax) Kita akan mendapatkan output berikut setelah menjalankan baris kode di atas [ [ 0.48648649 0.58252427 0.99122807] [ 0. 1. 0.81578947] [ 0.27027027 0. 1. ] [ 1. 0. 99029126 0. ]] 4 Normalization Teknik preprocessing yang digunakan untuk memodifikasi vektor fitur. Modifikasi semacam itu diperlukan untuk mengukur vektor fitur pada skala umum. Berikut ini adalah dua jenis normalisasi yang dapat digunakan dalam pembelajaran mesin: a L1 Normalization Teknik preprocessing yang digunakan untuk memodifikasi vektor fitur. Modifikasi semacam itu diperlukan untuk mengukur vektor fitur pada skala umum. Berikut ini adalah dua jenis normalisasi yang dapat digunakan dalam pembelajaran mesin: # Normalize data data_normalized_l1 = preprocessing.normalize(input_data, norm = 'l1') print(\"\\nL1 normalized data:\\n\", data_normalized_l1) 30

Baris kode di atas menghasilkan output berikut: L1 normalized data: 0.57894737] [[ 0.22105263 -0.2 0.47297297] [ -0.2027027 0.32432432 0.4 ] [ 0.03571429 -0.56428571 -0.41428571]] [ 0.42142857 0.16428571 a L2 Normalization Teknik ini juga disebut sebagai kuadrat terkecil. Normalisasi semacam ini memodifikasi nilai sehingga jumlah kuadrat selalu sampai 1 di setiap baris. Hal ini dapat diimplementasikan pada data input dengan bantuan kode Python berikut # Normalize data data_normalized_l2 = preprocessing.normalize(input_data, norm = 'l2') print(\"\\nL2 normalized data:\\n\", data_normalized_l2) Baris kode di atas menghasilkan output berikut: dLa2tan_osrcmaalleri_zmeidnmdaaxta=:preprocessing.MinMaxScaler(feature_range=(0,1)) d[a[ta0_.s3c3a9l4ed6_1m1i4nma-x0.=30da7t1a3_1s5c1aler0_.mi8n8m9a0x6.4f8i9t]_transform(input_data)print ([\"\\-n0M.i3n33m2ax51s0c6aled0.d5a3ta3:2\\0n1\"6,9 dat0a._s7c7a7l5e8d5_8mi]nmax) [ 0.05156558 -0.81473612 0.57753446] [ 0.68706914 0.26784051 -0.6754239 ]] Memberi Label pada Data Kita sudah tahu bahwa data dalam format tertentu diperlukan untuk algoritma pembelajaran mesin. Persyaratan penting lainnya adalah bahwa data harus diberi label dengan benar sebelum digunakan sebagai input dari algoritma pembelajaran mesin. Misalnya, jika kita berbicara tentang klasifikasi, ada banyak label pada data. Label tersebut berupa kata, angka, dll. Fungsi yang berhubungan dengan machine learning pada library sklearn membutuhkan data yang memiliki label angka. Oleh karena itu, jika data dalam bentuk lain maka harus dikonversi ke angka. Proses mengubah label kata ke dalam bentuk numerik ini disebut dengan pengkodean label (label encoding). Berikut ini merupakan tahapan pengkodean label menggunakan Python: 1 Mengimpor packages yang diperlukan Jika kita menggunakan Python, hal ini merupakan langkah pertama untuk mengubah data ke dalam format tertentu, yaitu preprocessing. Proses impor dapat dilakukan seperti berikut: import numpy as np from sklearn import preprocessing 31

2 Mendefinisikan Label Sampel Setelah mengimpor packages, kita perlu mendefinisikan beberapa label sampel sehingga kita dapat membuat dan melatih pembuat enkode label (encoder label). Pendefinisian label sampel dapat dilakukan seperti berikut: # Sample input labels input_labels = ['red','black','red','green','black','yellow','white'] 3 Membuat & Melatih Objek Encoder Pada langkah ini, kita perlu membuat encoder label dan melatihnya. Kode Python yang dapat digunakan pada langkah ini adalah: # Creating the label encoder encoder = preprocessing.LabelEncoder() encoder.fit(input_labels) 4 Memeriksa Performa dengan melakukan proses Encode pada List yang Random Langkah ini dapat digunakan untuk memeriksa kinerja dengan mengkodekan list dengan urutan yang acak. Proses ini dapat dilakukan dengan menuliskan Kode Python berikut: # encoding a set of labels test_labels = ['green','red','black'] encoded_values = encoder.transform(test_labels) print(\"\\nLabels =\", test_labels) Label akan dicetak sebagai berikut Labels = ['green', 'red', 'black'] Sekarang, kita bisa mendapatkan daftar nilai yang dikodekan yaitu label kata yang dikonversi ke angka dengan sintaks berikut print(\"Encoded values =\", list(encoded_values)) Nilai yang dikodekan akan dicetak sebagai berikut Encoded values = [1, 2, 0] 5 Memeriksa Performa dengan melakukan proses Decoding terhadap serangkaian nilai acak Langkah ini dapat digunakan untuk memeriksa kinerja dengan mendekode rangkaian angka acak. Proses ini dapat dilakukan dengan menuliskan Kode Python berikut: # decoding a set of values encoded_values = [3,0,4,1] decoded_list = encoder.inverse_transform(encoded_values) print(\"\\nEncoded values =\", encoded_values) Sekarang, nilai yang dikodekan akan dicetak sebagai berikut Encoded values = [3, 0, 4, 1] print(\"\\nDecoded labels =\", list(decoded_list)) 32

Sehingga nilai yang didekodekan akan dicetak sebagai berikut Decoded labels = ['white', 'black', 'yellow', 'green'] Data Berlabel vs Data Tidak Berlabel Data tidak berlabel umumnya terdiri dari sampel objek alami atau buatan manusia yang dapat dengan mudah diperoleh. Contohnya adalah data berupa audio, video, foto, artikel berita, dll. Di sisi lain, data berlabel mengambil satu set dari data tidak berlabel dan menambah setiap bagian dari data tidak berlabel tersebut dengan beberapa tag atau label atau kelas yang bermakna. Sebagai contoh, jika kita memiliki sebuah foto maka label dapat diletakkan berdasarkan isi dari foto tersebut, yaitu foto laki-laki atau perempuan atau binatang atau objek yang lainnya. Memberi label pada data membutuhkan keahlian atau penilaian manusia mengenai bagian tertentu dari data yang tidak berlabel. Ada banyak skenario dimana data tidak berlabel jumlahnya berlimpah dan mudah diperoleh, tetapi data berlabel seringkali membutuhkan manusia/ahli untuk membuat anotasi. Pembelajaran semi-supervised mencoba untuk menggabungkan data berlabel dan tidak berlabel untuk membangun model yang lebih baik. Video Mengenai Data Preparation Apakah tujuan dan manfaat melakukan data preparation? dan Bagaimana jika sebuah sistem/model yang dikembangkan tidak memliki tahapan data preparation? JAWABAN 33

Bab 5 SUPERVISED LEARNING: CLASSIFICATION TUJUAN PEMBELAJARAN Mampu memahami konsep klasifikasi Mampu memahami metode-metode klasifikasi Mampu mengimplementasi metode-metode klasifikasi pada Python Pada bab ini, kita akan fokus pada penerapan Supervised Learning: klasifikasi (classification). Teknik atau model klasifikasi mencoba untuk mendapatkan beberapa kesimpulan dari nilai-nilai yang diamati. Dalam masalah klasifikasi, terdapat luaran (output) yang dikategorikan seperti \"Hitam\" dan \"putih\" atau \"Mengajar\" dan \"Tidak Mengajar\". Saat membangun model klasifikasi, kita perlu memiliki dataset pelatihan yang berisi titik data dan label yang sesuai. Misalnya, jika kita ingin memeriksa apakah gambar tersebut adalah mobil atau bukan. Untuk memeriksa hal ini, akan dibangun dataset pelatihan yang memiliki dua kelas yang terkait dengan \"mobil\" dan \"bukan mobil\". Kemudian kita perlu melatih model dengan menggunakan sampel pelatihan (training sample). Model klasifikasi umumnya digunakan dalam pengenalan wajah, identifikasi spam, dll. Langkah-Langkah Membangun Naïve Bayes Classifier dengan Python Untuk membangun classifier dengan Python, kita akan menggunakan Python 3 dan Scikit-learn yang merupakan tools untuk pembelajaran mesin. Ikuti langkah-langkah ini untuk membuat classifier dengan Python Langkah 1 Mengimpor Scikit-learn Ini merupakan langkah pertama untuk membangun classifier dengan Python. Pada langkah ini, kita akan menginstal paket Python bernama Scikit-learn yang merupakan salah satu modul pembelajaran mesin terbaik di Python.digunakan untuk mengimpor paket Import Sklearn Langkah 2 Mengimpor dataset Scikit-learn Pada langkah ini, kita dapat mulai bekerja dengan kumpulan data untuk model pembelajaran mesin. Di sini, kita akan menggunakan Basis Data Diagnostik Kanker Payudara Wisconsin. Dataset tersebut mencakup berbagai informasi tentang tumor kanker payudara, serta label klasifikasi ganas atau jinak. Dataset memiliki 569 data tumor dan mencakup informasi mengenai 30 atribut atau fitur, seperti radius tumor, tekstur, kehalusan, dan area. Dengan bantuan perintah berikut, kita dapat mengimpor dataset kanker payudara Scikit-learn from sklearn.datasets import load_breast_cancer 34

Kemudian, perintah berikut akan memuat dataset.: data = load_breast_cancer() Berikut ini merupakan daftar kata kunci yang penting: Nama label klasifikasi (target_names) Label sebenarnya/actual label (target) Atribut/nama fitur (feature_names) Atribut (data) Dengan bantuan perintah berikut, kita dapat membuat variabel baru untuk setiap kumpulan informasi yang penting dan menetapkan data. Dengan kata lain, kita dapat mengatur data dengan perintah berikut label_names = data['target_names'] labels = data['target'] feature_names = data['feature_names'] features = data['data'] untuk membuatnya lebih jelas, kita dapat mencetak label kelas, label instance data pertama, nama fitur, dan nilai fitur dengan bantuan perintah berikut: print(label_names) Perintah di atas akan mencetak nama kelas untuk kanker yang ganas (malignant) dan jinak (benignt). Sehingga output nya seperti di bawah ini: ['malignant' 'benign'] perintah di bawah ini akan menunjukkan bahwa label dapat dipetakan ke nilai biner 0 dan 1. Nilai 0 mewakili kanker ganas dan 1 mewakili kanker jinak. Sehingga didapatkan output berikut: print(labels[0]) 0 Dua perintah yang diberikan di bawah ini akan menghasilkan nama fitur dan nilai fitur. print(feature_names[0]) mean radius print(features[0]) [ 1.79900000e+01 1.03800000e+01 1.22800000e+02 1.00100000e+03 1.18400000e-01 2.77600000e-01 3.00100000e-01 1.47100000e-01 2.41900000e-01 7.87100000e-02 1.09500000e+00 9.05300000e-01 8.58900000e+00 1.53400000e+02 6.39900000e-03 4.90400000e-02 5.37300000e-02 1.58700000e-02 3.00300000e-02 6.19300000e-03 2.53800000e+01 1.73300000e+01 1.84600000e+02 2.01900000e+03 1.62200000e-01 6.65600000e-01 7.11900000e-01 2.65400000e-01 4.60100000e-01 1.18900000e-01] Dari output di atas, kita dapat melihat bahwa contoh data pertama adalah tumor ganas dengan radius 1.7990000e+01. 35

Langkah 3 Mengatur Data ke Dalam Set Pada langkah ini, kita akan membagi data menjadi dua bagian yaitu, training set dan test set. Memisahkan data ke dalam set ini sangat penting karena kita harus menguji model pada data yang tidak terlihat. Untuk membagi data menjadi set, sklearn memiliki fungsi yang disebut fungsi train_test_split(). Dengan bantuan perintah berikut, kita dapat membagi data dalam set ini from sklearn.model_selection import train_test_split Perintah di atas akan mengimpor fungsi train_test_split dari sklearn dan perintah di bawah ini akan membagi data menjadi data pelatihan dan pengujian. Dalam contoh yang diberikan di bawah ini, kami menggunakan 40% dari data untuk pengujian (testing) dan data yang tersisa akan digunakan untuk melatih (training) model. train, test, train_labels, test_labels = train_test_split(features,labels,test_size = 0.40, random_state = 42) Langkah 4 Membangun Model Pada langkah ini, kita akan membangun model menggunakan algoritma Naïve Bayes. Naïve Bayes adalah salah satu teknik klasifikasi yang digunakan untuk membangun classifier dengan menggunakan teorema Bayes. Asumsinya adalah bahwa prediktor bersifat independen. Dengan kata sederhana, diasumsikan bahwa kehadiran fitur tertentu di kelas tidak terkait dengan kehadiran fitur lainnya. Untuk membangun classifier Naïve Bayes, kita perlu menggunakan pustaka python yang disebut scikit learn. Ada tiga jenis model Naïve Bayes , yaitu Gaussian, Multinomial, dan Bernoulli pada pustaka scikit learn.Perintah berikut dapat digunakan untuk membangun sebuah model: from sklearn.naive_bayes import GaussianNB Perintah di atas akan mengimpor modul GaussianNB. Perintah berikut digunakan untuk menginisialisasi model. gnb = GaussianNB() Kemudian model akan dilatih dengan menyesuaikannya dengan data menggunakan gnb.fit(). model = gnb.fit(train, train_labels) Langkah 5 Mengevaluasi model dan akurasinya Pada langkah ini, kita akan mengevaluasi model dengan membuat prediksi pada data pengujian dan mengetahui keakuratannya juga. Untuk membuat prediksi, kita akan menggunakan fungsi predict() seperti pada perintah berikut: preds = gnb.predict(test) 36 print(preds) [1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 01111110101101111111100111110 01100111001100101111110110000 01111111100100100111011011000 11100110100110001110110010110 10011111110011111111111101110 11011111100011010111101101110 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1]

Rangkaian 0 dan 1 di atas adalah nilai prediksi untuk kelas tumor – ganas dan jinak. Selanjutnya, dengan membandingkan dua array yaitu test_labels dan preds, kita dapat mengetahui keakuratan model yang dikembangkan. Kita akan menggunakan fungsi accuracy_score() untuk menentukan akurasi. Perhatikan perintah berikut ini from sklearn.metrics import accuracy_score print(accuracy_score(test_labels,preds)) 0.951754385965 Hasilnya menunjukkan bahwa pengklasifikasi NaïveBayes memiliki akurasi 95,17%. Maka dengan cara ini, dengan bantuan langkah-langkah di atas kita dapat membangun sebuah classifier menggunakan Python. Membangun Support Vector Machines (SVM) Classifier dengan Python Pada dasarnya, Support Vector Machine (SVM) adalah algoritma supervised machine learning yang dapat digunakan untuk regresi dan klasifikasi. Konsep utama SVM adalah memplot setiap item data sebagai titik dalam ruang n-dimensi dengan nilai setiap fitur, menjadi nilai koordinat tertentu. Di sini n akan menjadi fitur yang akan kita miliki. Berikut ini adalah representasi grafis sederhana untuk memahami konsep SVM Pada diagram di atas terdapat dua fitur. Pertama-tama kedua variabel ini perlu diplot dalam ruang dua dimensi dimana setiap titik memiliki dua koordinat, yang disebut vektor pendukung (support vectors). Garis membagi data menjadi dua kelompok klasifikasi yang berbeda. Garis ini akan menjadi classifier. Dengan python, kita dapat membuat classifier SVM dengan menggunakan scikit-learn dan dataset tanaman iris. Pustaka Scikitlearn memiliki modul sklearn.svm dan menyediakan sklearn.svm.svc untuk klasifikasi. Proses pembutan classifier SVM untuk memprediksi kelas tanaman iris berdasarkan 4 fitur adalah sebagai berikut. Dataset Kita akan menggunakan dataset iris yang berisi 3 kelas masing-masing 50 instance, dimana setiap kelas mengacu pada jenis tanaman iris. Setiap instance memiliki empat fitur yaitu panjang sepal, lebar sepal, panjang kelopak, dan lebar kelopak. 37

Kernel Penggunaan kernel merupakan teknik yang digunakan oleh SVM. Pada dasarnya kernel adalah fungsi yang mengambil ruang input berdimensi rendah dan mengubahnya menjadi ruang berdimensi lebih tinggi. Fungsi ini mengubah masalah yang tidak dapat dipisahkan (non- separable problem) menjadi masalah yang dapat dipisahkan (separable problem). Fungsi kernel dapat berupa linear, polinomial, rbf dan sigmoid. Dalam contoh ini, kita akan menggunakan kernel linier. Langkah implementasi yang pertama adalah dengan mengimpor paket-paket berikut: import pandas as pd import numpy as np from sklearn import svm, datasets import matplotlib.pyplot as plt Selanjutnya adalah load data masukan iris = datasets.load_iris() Kemudian mengambil dua fitur pertama X = iris.data[:, :2] y = iris.target Selanjutnya membuat plot batas-batas support vector machine dengan data asli menggunakan fungsi meshgrid dari numpy. x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 h = (x_max / x_min)/100 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) X_plot = np.c_[xx.ravel(), yy.ravel()] Selain itu nilai parameter regularisasi perlu diberikan, yaitu C = 1,0 dan juga perlu membuat objek classifier SVM, dengan cara sebagai berikut: Svc_classifier = svm_classifier.SVC(kernel='linear', C=C, decision_function_shape = 'ovr').fit(X, y) Z = svc_classifier.predict(X_plot) Z = Z.reshape(xx.shape) plt.figure(figsize = (15, 5)) plt.subplot(121) plt.contourf(xx, yy, Z, cmap = plt.cm.tab10, alpha = 0.3) plt.scatter(X[:, 0], X[:, 1], c = y, cmap = plt.cm.Set1) plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.xlim(xx.min(), xx.max()) plt.title('SVC with linear kernel') 38

Kode program di atas akan menghasilkan grafik plot sebagai berikut: Membangun Logistic Regression dengan Python Pada dasarnya, model logistic regression adalah salah satu bagian dari algoritma supervised classification. Logistic Regression mengukur hubungan antara variabel dependen dan variabel independen dengan memperkirakan probabilitas menggunakan fungsi logistik. Jika berbicara tentang variabel dependen dan independen, maka variabel dependen adalah variabel kelas target yang akan kita prediksi dan di sisi lain variabel independen adalah fitur yang akan kita gunakan untuk memprediksi kelas target. Dalam logistic regression, memperkirakan probabilitas berarti memprediksi kemungkinan terjadinya peristiwa tersebut. Misalnya, pemilik toko ingin memprediksi pelanggan yang masuk ke toko akan membeli play station (misalnya) atau tidak. Akan ada banyak fitur jenis kelamin pelanggan, usia, dll yang akan diamati oleh penjaga toko untuk memprediksi kemungkinan terjadinya, yaitu membeli play station atau tidak. Fungsi logistik adalah kurva sigmoid yang digunakan untuk membangun fungsi dengan berbagai parameter. Sebelum membangun classifier menggunakan logistic regression, kita perlu menginstal paket Tkinter pada sistem, dimana Tkinter dapat diinstal dari https://docs.python.org/2/library/tkinter.html. Kemudian dengan bantuan kode yang diberikan di bawah ini, kita dapat membuat classifier menggunakan logistic regression. 1 Impor beberapa paket yang diperlukan import numpy as np from sklearn import linear_model import matplotlib.pyplot as plt 2 Mendefinisikan data sampel yang dapat dilakukan sebagai berikut X = np.array([[2, 4.8], [2.9, 4.7], [2.5, 5], [3.2, 5.5], [6, 5], [7.6, 4],[3.2, 0.9], [2.9, 1.9],[2.4, 3.5], [0.5, 3.4], [1, 4], [0.9, 5.9]]) y = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3]) 39

3 Membuat classifier logistic regression, dan melakukan training terhadap classifier yang telah dibuat dengan cara sebagai berikut: Classifier_LR = linear_model.LogisticRegression(solver = 'liblinear', C = 75) Classifier_LR.fit(X, y) 4 Memvisualisasikan output yang bisa dilakukan dengan membuat fungsi bernama Logistic_visualize() Def Logistic_visualize(Classifier_LR, X, y): min_x, max_x = X[:, 0].min() - 1.0, X[:, 0].max() + 1.0 min_y, max_y = X[:, 1].min() - 1.0, X[:, 1].max() + 1.0 Pada baris di atas, didefinisikan nilai minimum dan maksimum X dan Y untuk digunakan dalam grid mesh. Selain itu, ukuran langkah (step) untuk memplot grid mesh juga perlu ditentukan dengan cara: mesh_step_size = 0.02. Selanjutnya grid mesh dari nilai X dan Y didefinisikan sebagai berikut: x_vals, y_vals = np.meshgrid(np.arange(min_x, max_x, mesh_step_size), np.arange(min_y, max_y, mesh_step_size)) Dengan bantuan kode berikut, classifier pada grid mesh dapat dijalankan: output = classifier.predict(np.c_[x_vals.ravel(), y_vals.ravel()]) output = output.reshape(x_vals.shape) plt.figure() plt.pcolormesh(x_vals, y_vals, output, cmap = plt.cm.gray) plt.scatter(X[:, 0], X[:, 1], c = y, s = 75, edgecolors = 'black', linewidth=1, cmap = plt.cm.Paired) Baris kode berikut akan menentukan batas-batas plot plt.xlim(x_vals.min(), x_vals.max()) plt.ylim(y_vals.min(), y_vals.max()) plt.xticks((np.arange(int(X[:, 0].min() - 1), int(X[:, 0].max() + 1), 1.0))) plt.yticks((np.arange(int(X[:, 1].min() - 1), int(X[:, 1].max() + 1), 1.0))) plt.show() Setelah menjalankan kode program di atas, akan didapatkan output berikut, sebagai hasil classifier logistic regression: 40

Membangun Decision Tree Classifier dengan Python Pohon keputusan (decision tree) pada dasarnya adalah diagram alur pohon biner dimana setiap node membagi sekelompok pengamatan menurut beberapa variabel fitur. Pada subbab ini kita akan membangun pengklasifikasi Pohon Keputusan (decision tree classifier) untuk memprediksi pria atau wanita. Kumpulan data yang sangat kecil akan diambil , dimana data memiliki 19 sampel. Sampel ini akan terdiri dari dua fitur – 'tinggi' dan 'panjang rambut'. Untuk membangun classifier decision tree, perlu dilakukan instalasi pydotplus dan graphviz. Pada dasarnya, graphviz adalah alat untuk menggambar grafik menggunakan file dot dan pydotplus adalah modul untuk bahasa Dot Graphviz. Kedua pustaka tersebut dapat diinstal dengan package manager atau pip. Tahapan untuk membangun classifier decision tree dengan bantuan kode Python adalah sebagai berikut: 1 Impor beberapa paket yang diperlukan import pydotplus from sklearn import tree from sklearn.datasets import load_iris from sklearn.metrics import classification_report from sklearn import cross_validation import collections 2 Menentukan dataset X = [[165,19],[175,32],[136,35],[174,65],[141,28],[176,15],[131,32],[166,6], [128,32],[179,10],[136,34],[186,2],[126,25],[176,28],[112,38],[169,9],[171,36], [116,25],[196,25]] Y= ['Man','Woman','Woman','Man','Woman','Man','Woman','Man','Woman','Man','Woman','Ma n','Woman','Woman','Woman','Man','Woman','Woman','Man'] data_feature_names = ['height','length of hair'] X_train, X_test, Y_train, Y_test = cross_validation.train_test_split (X, Y, test_size=0.40, random_state=5) 3 Setelah menyediakan dataset, perlu dilakukan penyesuaian model dan pembuatan prediksi yang dapat dilakukan dengan cara sebagai berikut: clf = tree.DecisionTreeClassifier() clf = clf.fit(X,Y) prediction = clf.predict([[133,37]]) print(prediction) 4 Memvisualisasikan output decision tree yang bisa dilakukan dengan cara berikut: 41

dot_data = tree.export_graphviz(clf,feature_names = data_feature_names, out_file = None,filled = True,rounded = True) graph = pydotplus.graph_from_dot_data(dot_data) colors = ('orange', 'yellow') edges = collections.defaultdict(list) for edge in graph.get_edge_list(): edges[edge.get_source()].append(int(edge.get_destination())) for edge in edges: edges[edge].sort() for i in range(2):dest = graph.get_node(str(edges[edge][i]))[0] dest.set_fillcolor(colors[i]) graph.write_png('Decisiontree16.png') Kode program di atas akan memberikan output berupa prediksi ['Woman'] dan akan membuat pohon keputusan seperti berikut: Menentukan Performa dari Sebuah Classifier Setelah menerapkan algoritma pembelajaran mesin, perlu dicari tahu seberapa efektif model tersebut. Kriteria untuk mengukur efektivitas dapat didasarkan pada kumpulan data dan metrik. Untuk mengevaluasi algoritma pembelajaran mesin yang berbeda, kita dapat menggunakan metrik kinerja yang berbeda. Misalnya, jika pengklasifikasi digunakan untuk membedakan antara gambar objek yang berbeda, kita dapat menggunakan matrik performa klasifikasi seperti rata- rata akurasi, AUC, dll. Dalam satu atau lain hal, matrik yang dipilih untuk mengevaluasi model pembelajaran mesin merupakan hal yang sangat penting karena pemilihan matrik memengaruhi bagaimana kinerja algoritma pembelajaran mesin diukur dan dibandingkan. Berikut adalah beberapa matrik yang dapat digunakan untuk mengevaluasi algoritma pembelajaran mesin: 42

Confusion Matrix Pada dasarnya confusion matrix digunakan untuk masalah klasifikasi dimana keluarannya dapat berupa dua atau lebih jenis kelas. Confusion matrix adalah cara termudah untuk mengukur kinerja classifier. Confusion matrix pada dasarnya adalah tabel dengan dua dimensi yaitu “Actual” dan “Predicted”. Kedua dimensi memiliki “True Positif (TP)”, “True Negatif (TN)”, “Flase Positif (FP)”, “False Negatif (FN)”. Berikut ini merupakan gambaran Confusion Matrix: Pada confusion matrix di atas, nilai 1 digunakan untuk kelas positif dan 0 untuk kelas negatif. Berikut ini adalah istilah-istilah yang terkait dengan Confusion matrix True Positives (TP) adalah sebuah kasus ketika kelas sebenarnya dari titik data adalah 1 dan yang diprediksi juga 1. True Negative (TN) adalah sebuah kasus ketika kelas sebenarnya dari titik data adalah 0 dan yang diprediksi juga 0. False Positif (FP) adalah sebuah kasus ketika kelas sebenarnya dari titik data adalah 0 dan yang diprediksi adalah 1. False Negatif (FN) adalah sebuah kasus ketika kelas sebenarnya dari titik data adalah 1 dan yang diprediksi adalah 0. Akurasi Hampir semua matriks performa didasarkan pada confusion matrix, salah satunya adalah akurasi. Dalam masalah klasifikasi, akurasi dapat didefinisikan sebagai jumlah prediksi yang benar yang dibuat oleh model terhadap semua jenis prediksi yang dibuat. Rumus untuk menghitung akurasi adalah sebagai berikut: Precision dan Recall Precision sebagian besar digunakan dalam pencarian dokumen (document retrievals). Precision dapat didefinisikan sebagai berapa banyak dokumen yang dikembalikan dengan benar. Sedangkan recall didefinisikan sebagai berapa banyak hal positif yang dihasilkan oleh model, atau dengan kata lain recall merupakan rasio prediksi benar positif dibandingkan dengan keseluruhan data yang benar positif. Berikut adalah rumus untuk menghitung precision dan recall: 43

Video Mengenai Classification Berikan contoh kasus yang dapat diselesaikan dengan metode klasifikasi dan bagaimana proses klasifikasinya menggunakan salah satu metode klasifikasi yang telah dijelaskan pada bab ini? JAWABAN 44

Bab 6 SUPERVISED LEARNING: REGRESSION TUJUAN PEMBELAJARAN Mampu memahami konsep regresi Mampu membangun regresor dengan menggunakan Python Mampu memahami jenis-jenis regresi Regresi adalah salah satu metode statistik dan pembelajaran mesin yang paling penting. Regresi dapat didefinisikan sebagai teknik parametrik yang memungkinkan kita membuat keputusan berdasarkan data atau dengan kata lain memungkinkan kita membuat prediksi berdasarkan data dengan mempelajari hubungan antara variabel input dan output. Dalam hal ini, variabel output yang bergantung pada variabel input adalah bilangan real bernilai kontinu. Dalam regresi, hubungan antara variabel input dan output penting dan membantu kita memahami bagaimana nilai variabel output berubah dengan perubahan variabel input. Regresi sering digunakan untuk prediksi harga, ekonomi, variasi, dan sebagainya. Langkah-Langkah Membangun Regresor dengan Python Pada bagian ini, kita akan belajar bagaimana membangun regressor tunggal dan multivariabel. Linear Regressor / Single Variable Regressor Langkah 1 Mengimpor package Langkah pertama yang dilakukan adalah mengimpor pustaka-pustaka yang dibutuhkan, antara lain: import numpy as np from sklearn import linear_model import sklearn.metrics as sm import matplotlib.pyplot as plt Langkah 2 Mendefinisikan dan Load Data Pada langkah ini, kita perlu memberikan data input dan menyimpan data tersebut dalam file bernama linear.txt. Data dimuat dengan menggunakan fungsi np.loadtxt. input = 'D:/ProgramData/linear.txt' input_data = np.loadtxt(input, delimiter=',') X, y = input_data[:, :-1], input_data[:, -1] Langkah 3 Melatih model Langkah selanjutnya adalah melatih model, serta memberikan sampel pelatihan dan pengujian 45

training_samples = int(0.6 * len(X)) testing_samples = len(X) - num_training X_train, y_train = X[:training_samples], y[:training_samples] X_test, y_test = X[training_samples:], y[training_samples:] Langkah 4 Membuat Objek Linear Regresor Pada langkah ini akan dibuat objek linear regressor dan melatih objek dengan sampel pelatihan. Selanjutnya melakukan prediksi dengan data pengujian. reg_linear = linear_model.LinearRegression() reg_linear.fit(X_train, y_train) y_test_pred = reg_linear.predict(X_test) Langkah 5 Memvisualisasikan Hasil Langkah selanjutnya adalah melakukan plot dan membuat visualisasi data dengan kode sebagai berikut: plt.scatter(X_test, y_test, color = 'red') plt.plot(X_test, y_test_pred, color = 'black', linewidth = 2) plt.xticks(()) plt.yticks(()) plt.show() Jika dieksekusi, kode program di atas akan menghasilkan plot sebagai berikut: Langkah 6 Menghitung Performa Langkah terakhir adalah menghitung performa dari model linear regression yang telah dibuat, dengan kode program sebagai berikut: print(\"Performance of Linear regressor:\") print(\"Mean absolute error =\", round(sm.mean_absolute_error(y_test, y_test_pred), 2)) print(\"Mean squared error =\", round(sm.mean_squared_error(y_test, y_test_pred), 2)) print(\"Median absolute error =\", round(sm.median_absolute_error(y_test, y_test_pred), 2)) print(\"Explain variance score =\", round(sm.explained_variance_score(y_test,y_test_pred),2)) print(\"R2 score =\", round(sm.r2_score(y_test, y_test_pred), 2)) 46

Kode program di atas akan menghasilkan detail performa linear regression sebagai berikut: Mean absolute error = 1.78 Mean squared error = 3.89 Median absolute error = 2.01 Explain variance score = -0.09 R2 score = -0.09 Multivariable Regressor Langkah 1 Mengimpor package Langkah pertama yang dilakukan adalah mengimpor pustaka-pustaka yang dibutuhkan, antara lain: import numpy as np from sklearn import linear_model import sklearn.metrics as sm import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures Langkah 2 Mendefinisikan dan Load Data Pada langkah ini, kita perlu memberikan data input dan menyimpan data tersebut dalam file bernama mul_linear.txt. Data dimuat dengan menggunakan fungsi np.loadtxt. input = 'D:/ProgramData/Mul_linear.txt' input_data = np.loadtxt(input, delimiter=',') X, y = input_data[:, :-1], input_data[:, -1] Langkah 3 Melatih model Langkah selanjutnya adalah melatih model, serta memberikan sampel pelatihan dan pengujian training_samples = int(0.6 * len(X)) testing_samples = len(X) - num_training X_train, y_train = X[:training_samples], y[:training_samples] X_test, y_test = X[training_samples:], y[training_samples:] Langkah 4 Membuat Objek Linear Regresor Pada langkah ini akan dibuat objek linear regressor dan melatih objek dengan sampel pelatihan. Selanjutnya melakukan prediksi dengan data pengujian. reg_linear_mul = linear_model.LinearRegression() reg_linear_mul.fit(X_train, y_train) y_test_pred = reg_linear_mul.predict(X_test) print(\"Performance of Linear regressor:\") print(\"Mean absolute error =\", round(sm.mean_absolute_error(y_test, y_test_pred), 2)) 47

print(\"Mean squared error =\", round(sm.mean_squared_error(y_test, y_test_pred), 2)) print(\"Median absolute error =\", round(sm.median_absolute_error(y_test, y_test_pred), 2)) print(\"Explain variance score =\", round(sm.explained_variance_score(y_test, y_test_pred), 2)) print(\"R2 score =\", round(sm.r2_score(y_test, y_test_pred), 2)) Kode program di atas akan menghasilkan detail performa linear regression sebagai berikut: Mean absolute error = 0.6 Mean squared error = 0.65 Median absolute error = 0.41 Explain variance score = 0.34 R2 score = 0.33 Langkah 5 Melatih regressor Pada tahap ini akan dibuat polinomial derajat 10 dan melatih regressor. Selain itu akan diberikan titik data sampel menggunakan kode program berikut: polynomial = PolynomialFeatures(degree = 10) X_train_transformed = polynomial.fit_transform(X_train) datapoint = [[2.23, 1.35, 1.12]] poly_datapoint = polynomial.fit_transform(datapoint) poly_linear_model = linear_model.LinearRegression() poly_linear_model.fit(X_train_transformed, y_train)print(\"\\nLinear regression:\\n\", reg_linear_mul.predict(datapoint))print(\"\\nPolynomial regression:\\n\", poly_linear_model.predict(poly_datapoint)) Kode program di atas akan menghasilkan output : Linear regression − [2.40170462] Polynomial regression − [1.8697225] Video Mengenai Regression 48

Bab 7 UNSUPERVISED LEARNING: CLUSTERING TUJUAN PEMBELAJARAN Mampu memahami konsep clustering Mampu memahami metode-metode pengelompokan data Mampu mengimplementasi metode-metode clustering pada Python Algoritma pembelajaran mesin tanpa pengawasan (unsupervised learning) tidak memiliki pengawas (supervisor) untuk memberikan panduan apapun. Itulah sebabnya unsupervised learning sangat selaras dengan apa yang disebut sebagai kecerdasan buatan sejati. Dalam pembelajaran tanpa pengawasan, tidak akan ada jawaban yang benar dan tidak ada guru untuk bimbingan. Algoritma perlu menemukan pola yang menarik dalam data untuk proses pembelajaran. Apa itu Clustering? Pada dasarnya, clustering adalah jenis metode pembelajaran tanpa pengawasan (unsupervised learning) dan merupakan teknik umum untuk analisis data statistik yang digunakan di banyak bidang. Pada intinya, clustering membagi himpunan pengamatan menjadi subset, yang disebut cluster, sedemikian rupa sehingga pengamatan di cluster yang sama menjadi serupa dalam satu hal dan cluster tersebut berbeda dengan pengamatan di cluster lain. Dengan pengertian yang lebih sederhana, kita dapat mengatakan bahwa tujuan utama dari clustering adalah untuk mengelompokkan data berdasarkan kesamaan dan ketidakmiripan. Sebagai contoh, diagram berikut menunjukkan jenis data yang serupa di cluster yang berbeda. 49

Algoritma untuk Pengelompokan Data (Data Clustering) Berikut ini adalah beberapa algoritma umum untuk mengelompokkan data Algoritma K-Means Algoritma K-means clustering merupakan salah satu algoritma yang terkenal untuk pengelompokan data. Pada K-means clustering, kita perlu mengasumsikan bahwa jumlah cluster sudah diketahui. Hal ini juga disebut dengan flat clustering. K-means clustering adalah algoritma pengelompokan berulang. Langkah-langkah yang dilakukan pada K-means clustering adalah: Langkah 1 - Menentukan jumlah subgrup K yang diinginkan. Langkah 2 - Perbaiki jumlah cluster dan tetapkan secara acak setiap titik data ke sebuah cluster. Atau dengan kata lain kita perlu mengklasifikasikan data berdasarkan jumlah cluster. Pada langkah ini, cluster centroid harus dihitung. Karena K-means clustering adalah algoritma iteratif, kita perlu memperbarui lokasi K centroid dengan setiap iterasi sampai ditemukan global optima atau dengan kata lain centroid mencapai lokasi optimalnya. Berikut ini adalah kode program untuk mengimplementasikan algoritma pengelompokan K- means dengan Python, dimana akan digunakan modul Scikit-learn. 1 Mengimpor packages yang diperlukan import matplotlib.pyplot as plt import seaborn as sns; sns.set()import numpy as np from sklearn.cluster import KMeans 2 Membuat kumpulan data dua dimensi, yang berisi empat blob, dengan menggunakan fungsi make_blob dari paket sklearn.dataset. from sklearn.datasets.samples_generator import make_blobs X, y_true = make_blobs(n_samples = 500, centers = 4, cluster_std = 0.40, random_state = 0) 3 Memvisualisasikan dataset dengan kode program berikut: plt.scatter(X[:, 0], X[:, 1], s = 50); plt.show() 50


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook