Anda di halaman 1dari 14

BAB VIII

PYTHON UNTUK SAINS DATA: MESIN PEMBELAJARAN

Tujuan:
· Memahami konsep sains data dan kemampuannya
· Memahami konsep mesin pembelajaran dan jenis-jenisnya
· Mengetahui dan mampu menggunakan package dalam mesin pembelajaran
· Mampu membuat algoritma regresi sederhana
· Mampu membuat algoritma pengelompokkan sederhana

A. Sains Data
Ilmu data adalah istilah yang relatif baru. William S. Cleveland menciptakan
istilah pada tahun 2001 sebagai bagian dari makalah berjudul "Ilmu Data: Rencana
Aksi untuk Memperluas Bidang Teknis Statistik." Tidak sampai setahun kemudian
Dewan Internasional untuk Ilmu Pengetahuan benar-benar mengakui ilmu data dan
membuat komite untuk itu. Universitas Columbia mulai bertindak pada tahun 2003
dengan memulai publikasi Journal of Data Science.
Namun, dasar matematika di balik sains data berusia berabad-abad karena sains
data pada dasarnya adalah metode untuk melihat dan menganalisis statistik dan
probabilitas. Penggunaan penting pertama statistik sebagai sebuah istilah datang pada
1749, tetapi statistik tentu jauh lebih tua dari itu. Orang-orang telah menggunakan
statistik untuk mengenali pola selama ribuan tahun. Sebagai contoh, sejarawan
Thucydides (dalam History of the Peloponnesian War) menggambarkan bagaimana
orang Athena menghitung ketinggian dinding Platea pada abad kelima SM dengan
menghitung batu bata di bagian dinding yang belum diplester. Karena penghitungan
itu harus akurat, orang Athena mengambil hitungan rata-rata oleh beberapa tentara.
Seperti kebanyakan perdagangan kompleks saat ini, ilmuwan data membutuhkan
pengetahuan berbagai keterampilan untuk melakukan tugas yang diperlukan. Bahkan,
begitu banyak keterampilan yang berbeda diperlukan sehingga para ilmuwan data
sering bekerja dalam tim. Seseorang yang pandai mengumpulkan data mungkin
bekerja sama dengan seorang analis dan seseorang yang berbakat dalam menyajikan
informasi. Akan sulit untuk menemukan satu orang dengan semua keterampilan yang
diperlukan. Dengan mengingat hal ini, daftar berikut ini menjelaskan bidang di mana
seorang ilmuwan data dapat unggul (dengan lebih banyak kompetensi menjadi lebih
baik):
· Pengambilan data: Tidak masalah apa pun keterampilan matematika yang
Anda miliki jika Anda tidak dapat memperoleh data untuk dianalisis sejak
awal. Tindakan menangkap data dimulai dengan mengelola sumber data
menggunakan keterampilan manajemen basis data. Namun, data mentah tidak
terlalu berguna dalam banyak situasi - Anda juga harus memahami domain
data sehingga Anda dapat melihat data dan mulai merumuskan berbagai
pertanyaan untuk ditanyakan. Terakhir, Anda harus memiliki keterampilan
pemodelan data sehingga Anda memahami bagaimana data terhubung dan
apakah data terstruktur.
· Analisis: Setelah Anda memiliki data untuk dikerjakan dan memahami
kompleksitas data itu, Anda dapat mulai melakukan analisis terhadapnya.
Anda melakukan beberapa analisis menggunakan keterampilan alat statistik
dasar, seperti halnya yang dipelajari setiap orang di perguruan tinggi. Namun,
penggunaan trik dan algoritme matematika khusus dapat membuat pola dalam
data lebih jelas atau membantu Anda menarik kesimpulan yang tidak dapat
Anda gambar dengan meninjau data saja.
· Presentasi: Kebanyakan orang tidak memahami angka dengan baik. Mereka
tidak bisa melihat pola yang dilihat oleh ilmuwan data. Penting untuk
memberikan presentasi grafis dari pola-pola ini untuk membantu orang lain
memvisualisasikan apa arti angka-angka dan bagaimana menerapkannya
dengan cara yang bermakna. Lebih penting lagi, presentasi harus
menceritakan kisah tertentu sehingga dampak data tidak hilang.

B. Mesin Pembelajaran
Pembelajaran mesin adalah tentang mengekstraksi pengetahuan dari data. Ini
adalah bidang penelitian di persimpangan statistik, kecerdasan buatan, dan ilmu
komputer dan juga dikenal sebagai analitik prediktif atau pembelajaran statistik.
Penerapan metode pembelajaran mesin telah dalam beberapa tahun terakhir menjadi
bagian dalam kehidupan sehari-hari. Dari rekomendasi otomatis film mana yang akan
ditonton, makanan apa yang dipesan atau produk mana yang harus dibeli, hingga
radio online hasil personalisasi dan mengenali teman-teman Anda di foto Anda,
banyak situs web dan perangkat modern memiliki algoritma pembelajaran mesin pada
intinya. Ketika Anda melihat situs web yang kompleks seperti Facebook, Amazon,
atau Netflix, sangat mungkin bahwa setiap bagian situs berisi beberapa model
pembelajaran mesin.
Pada waktu awal aplikasi "cerdas", banyak sistem menggunakan aturan
handcoded keputusan "if" dan "else" untuk memproses data atau menyesuaikan input
pengguna. Pikirkan filter spam yang tugasnya memindahkan pesan email masuk yang
sesuai ke folder spam. Anda dapat membuat daftar hitam kata-kata yang akan
menghasilkan email yang ditandai sebagai spam. Ini akan menjadi contoh
penggunaan sistem aturan pakar yang dirancang untuk merancang aplikasi "cerdas".
Membuat aturan keputusan secara manual layak dilakukan untuk beberapa aplikasi,
terutama yang di mana manusia memiliki pemahaman yang baik tentang proses untuk
memodelkan. Namun, menggunakan aturan handcoded untuk membuat keputusan
memiliki dua kelemahan utama:
· Logika yang diperlukan untuk membuat keputusan adalah spesifik untuk satu
domain dan tugas. Mengubah tugas sedikit saja mungkin memerlukan
penulisan ulang seluruh sistem.
· Merancang aturan membutuhkan pemahaman yang mendalam tentang
bagaimana keputusan harus dibuat oleh seorang ahli.
Salah satu contoh kegagalan pendekatan handcoded ini adalah mendeteksi wajah
dalam gambar. Saat ini, setiap smartphone dapat mendeteksi wajah dalam sebuah
gambar. Namun, deteksi wajah adalah masalah yang belum terpecahkan hingga tahun
2001. Masalah utamanya adalah cara piksel (yang membentuk gambar di komputer)
"dirasakan" oleh komputer sangat berbeda dengan cara manusia memandang wajah. .
Perbedaan dalam representasi ini membuat manusia pada dasarnya mustahil untuk
membuat seperangkat aturan yang baik untuk menggambarkan apa yang membentuk
wajah dalam gambar digital. Namun, dengan menggunakan pembelajaran mesin,
hanya menghadirkan sebuah program dengan koleksi besar gambar wajah sudah
cukup untuk algoritma untuk menentukan karakteristik apa yang diperlukan untuk
mengidentifikasi wajah.

C. Jenis-Jenis Mesin Pembelajaran


Algoritma mesin pembelajaran dibagi menjadi 3, yaitu:
· Supervised learning/pembelajaran terawasi
· Unsupervised learning/pembelajaran tidak terawasi
· Reinformance learning/pembelajaran dengan reward
Dalam modul ini kita akan fokus pada supervised learning dan unsupervised
learning.

I. Supervised Learning/Learning by Example


Jenis algoritma pembelajaran mesin yang paling sukses adalah yang
mengotomatiskan proses pengambilan keputusan dengan menggeneralisasi dari
contoh yang diketahui. Dalam pengaturan ini, yang dikenal sebagai pembelajaran
terawasi/supervised learning, pengguna menyediakan algoritma dengan pasangan
input dan output yang diinginkan, dan algoritma menemukan cara untuk
menghasilkan output yang diinginkan diberikan input. Secara khusus, algoritma ini
mampu membuat output untuk input yang belum pernah dilihat sebelumnya tanpa
bantuan manusia. Kembali ke contoh klasifikasi spam kami, menggunakan
pembelajaran mesin, pengguna menyediakan algoritma dengan sejumlah besar email
(yang merupakan input), bersama dengan informasi tentang apakah ada email yang
merupakan spam (yang merupakan output yang diinginkan). Diberikan email baru,
algoritma kemudian akan menghasilkan prediksi apakah email baru itu spam.
Algoritma pembelajaran mesin yang belajar dari pasangan input / output disebut
algoritma pembelajaran terawasi karena "guru" menyediakan pengawasan untuk
algoritma dalam bentuk output yang diinginkan untuk setiap contoh yang mereka
pelajari. Sementara membuat dataset input dan output seringkali merupakan proses
manual yang melelahkan, algoritma pembelajaran yang diawasi dipahami dengan
baik dan kinerjanya mudah diukur. Jika aplikasi Anda dapat dirumuskan sebagai
masalah pembelajaran yang diawasi, dan Anda dapat membuat dataset yang
menyertakan hasil yang diinginkan, pembelajaran mesin kemungkinan akan dapat
menyelesaikan masalah Anda.
Beberapa contoh penerapan supervised learning:
· Mengidentifikasi kode pos dari angka tulisan tangan di sebuah amplop
Input yang digunakan adalah pemindaian tulisan tangan, dan output yang
diinginkan adalah digit aktual dalam kode pos. Untuk membuat dataset untuk
membangun model pembelajaran mesin, Anda perlu mengumpulkan banyak
amplop. Kemudian Anda dapat membaca kode pos sendiri dan menyimpan
angka sebagai hasil yang Anda inginkan.

· Menentukan apakah tumor jinak berdasarkan gambar medis


Di sini inputnya adalah gambar, dan hasilnya adalah apakah tumornya jinak.
Untuk membuat dataset untuk membangun model, Anda memerlukan
database gambar medis. Anda juga perlu pendapat ahli, jadi dokter perlu
melihat semua gambar dan memutuskan tumor mana yang jinak dan mana
yang tidak. Bahkan mungkin diperlukan untuk melakukan diagnosis tambahan
di luar isi gambar untuk menentukan apakah tumor pada gambar tersebut
kanker atau tidak.

· Mendeteksi aktivitas penipuan dalam transaksi kartu kredit


Di sini input adalah catatan dari transaksi kartu kredit, dan hasilnya adalah
apakah itu kemungkinan penipuan atau tidak. Dengan asumsi bahwa Anda
adalah entitas yang mendistribusikan kartu kredit, mengumpulkan dataset
berarti menyimpan semua transaksi dan mencatat jika pengguna melaporkan
transaksi apa pun sebagai penipuan.
Suatu hal yang menarik untuk dicatat tentang contoh-contoh ini adalah bahwa
meskipun input dan output terlihat cukup mudah, proses pengumpulan data untuk
ketiga tugas ini sangat berbeda. Meskipun membaca amplop itu melelahkan, mudah
dan murah. Di lain pihak, memperoleh pencitraan dan diagnosa medis tidak hanya
membutuhkan mesin yang mahal tetapi juga pengetahuan ahli yang langka dan
mahal, belum lagi masalah etika dan masalah privasi. Dalam contoh mendeteksi
penipuan kartu kredit, pengumpulan data jauh lebih sederhana. Pelanggan Anda akan
memberi Anda hasil yang diinginkan, karena mereka akan melaporkan penipuan.
Yang harus Anda lakukan untuk mendapatkan pasangan input/output dari aktivitas
penipuan dan non-penipuan adalah menunggu.

II. Unsupervised Learning/Grouping


Dalam pembelajaran tanpa pengawasan, hanya data input yang diketahui, dan
tidak ada data output yang diketahui diberikan ke algoritma. Meskipun ada banyak
aplikasi yang berhasil dari metode ini, mereka biasanya lebih sulit untuk dipahami
dan dievaluasi. Pembelajaran tanpa pengawasan merangkum semua jenis
pembelajaran mesin di mana tidak ada output yang diketahui, tidak ada guru untuk
mengajar algoritma pembelajaran. Dalam pembelajaran tanpa pengawasan, algoritma
pembelajaran hanya menunjukkan data input dan diminta untuk mengekstrak
pengetahuan dari data ini.
Beberapa contoh penerapan unsupervised learning:
· Mengidentifikasi topik dalam satu set posting blog
Jika Anda memiliki banyak koleksi data teks, Anda mungkin ingin
meringkasnya dan menemukan tema yang lazim di dalamnya. Anda mungkin
tidak tahu sebelumnya apa topik ini, atau berapa banyak topik yang mungkin
ada. Oleh karena itu, tidak ada keluaran yang diketahui.

· Mengelompokkan pelanggan ke dalam grup dengan preferensi serupa


Dengan serangkaian catatan pelanggan, Anda mungkin ingin mengidentifikasi
pelanggan mana yang serupa, dan apakah ada kelompok pelanggan dengan
preferensi yang sama. Untuk situs belanja, ini mungkin "orang tua," "kutu
buku," atau "gamer." Karena Anda tidak tahu sebelumnya apa kelompok ini,
atau bahkan berapa jumlahnya, Anda tidak memiliki hasil yang diketahui.

· Mendeteksi pola akses abnormal ke situs web


Untuk mengidentifikasi penyalahgunaan atau bug, seringkali bermanfaat
untuk menemukan pola akses yang berbeda dari normla. Setiap pola abnormal
mungkin sangat berbeda, dan Anda mungkin tidak memiliki contoh perilaku
abnormal yang tercatat. Karena dalam contoh ini Anda hanya mengamati lalu
lintas, dan Anda tidak tahu apa yang merupakan perilaku normal dan
abnormal, ini merupakan masalah yang tidak diawasi.

D. Package yang Penting dalam Mesin Pembelajaran


Python mempermudah pengembang untuk membua model mesin pembelajaran
dengan bantuan package. Beberapa package yang sering digunakan adalah:
1. Scikit-learn (penjelasan + installnya di anaconda)
Scikit-learn merupakan suatu proyek open source yang artinya bebas untuk
digunakan dan didistribusikan, dan siapa pun dapat dengan mudah
mendapatkan kode sumber untuk melihat apa yang terjadi di balik layar.
Proyek scikit-learning berisi sejumlah algoritma pembelajaran mesin yang
canggih, serta dokumentasi komprehensif tentang masing-masing algoritma.
Scikit-learn adalah alat yang sangat populer, dan pustaka Python paling
terkemuka untuk pembelajaran mesin. Proyek ini banyak digunakan di
industri dan akademisi, dan banyak tutorial serta cuplikan kode yang tersedia
secara online.
2. NumPy
NumPy adalah salah satu paket dasar untuk komputasi ilmiah dengan Python.
Paket ini berisi fungsionalitas untuk array multidimensi, fungsi matematika
tingkat tinggi seperti operasi aljabar linier dan transformasi Fourier, dan
generator nomor pseudorandom. Dalam scikit-learn, array NumPy adalah
struktur data mendasar. scikit-learn mengambil data dalam bentuk array
NumPy. Setiap data yang Anda gunakan harus dikonversikan ke array
NumPy. Fungsionalitas inti dari NumPy adalah kelas ndarray, sebuah array
multidimensi (n-dimensional). Semua elemen array harus bertipe sama. Array
NumPy terlihat seperti ini:

3. Pandas
Panda adalah perpustakaan Python untuk perselisihan dan analisis data.
Pandas dibangun di sekitar struktur data yang disebut DataFrame yang
dimodelkan setelah DataFrame R. Sederhananya, panda DataFrame adalah
sebuah tabel, mirip dengan lembar kerja Excel. Panda menyediakan beragam
metode untuk memodifikasi dan mengoperasikan tabel. Berbeda dengan
NumPy, yang mengharuskan semua entri dalam array memiliki tipe yang
sama, panda memungkinkan setiap kolom untuk memiliki tipe yang terpisah
(misalnya, bilangan bulat, tanggal, floating-point numbers, dan string).

Kelebihan lain dari pandas adalah kemampuannya untuk mencerna berbagai


macam format file dan basis data, seperti SQL, file Excel, dan file comma
separated values (CSV). Berikut adalah contoh kecil membuat DataFrame
menggunakan kamus.
Output yang dihasilkan adalah:

4. Matplotlib
Matplotlib adalah perpustakaan perencanakan ilmiah utama di Python.
Matplotlib menyediakan fungsi untuk membuat visualisasi berkualitas
publikasi seperti diagram garis, histogram, plot sebar, dan sebagainya.
Memvisualisasikan data Anda dan berbagai aspek analisis Anda dapat
memberi Anda wawasan penting dan matplotlib akan digunakan untuk semua
visualisasi. Anda dapat menampilkan angka langsung di browser dengan
menggunakan% matplotlib notebook dan% inline perintah matplotlib.
Direkomendasikan untuk menggunakan% matplotlib notebook, yang
menyajikan lingkungan interaktif. Sebagai contoh, kode dibawag ini
menghasilkan plot seperti pada gambar.
Plot garis sederhana dari fungsi sinus menggunakan matplotlib

B. Aplikasi Regresi Sederhana di Python


1. Regresi Linear Sederhana
Analisis regresi merupakan salah satu supervised learning sederhana yang
digunakan untuk menemukan trendline/garis pembatas terbaik untuk
mendeskripsikan suatu kumpulan data. Analisis regresi sederhana yang akan kita
pelajari adalah regresi linier yang menggunakan garis lurus untuk menjelaskan
kumpulan data. Proses dalam regresi linear adalah:
1. Mendapatkan sample data
2. Membuat model yang menjelaskan data tersebut, dan
3. Membuat prediksi untuk keseluruhan populasi berdasarkan dari model yang
telah dikembangkan.

Dalam model regresi linear terdapat variabel tidak bebas (y) yang akan diprediksi dan
variabel bebas (x1, x2, dst). Variabel tidak bebas Y merupakan fungsi dari variable
bebas x1, x2, dst. Model regresi paling sederhana itu sendiri adalah :
y = β₀ + β₁x₁ + ℇ ,
dimana :
y = variabel yang akan diprediksi
x = variabel bebas
β₁ = koefisien kemiringan
β₀ = konstanta/nilai minimum
ℇ = estimasi eror

Persamaan tersebut juga dapat disederhanakan menjadi,


ŷ = b₀ + b₁xᵢ
dimana ℇ dimisalkan sebagai 0.

2. Install Package
Sebelum melakukan kodingan terhadap aplikasi linear sederhana, ada
beberapa package yang perlu diinstall. Cara untuk menginstall package-package
pada IDE Pycharm antara lain :
• Pilih File > Other Settings > Settings for New Project/Preferences for New
Projects.
• Pilih Project Interpreter > Klik “+”
• Ketik nama package yang ingin di download

Package yang akan digunakan antara lain :


• Numpy : Memungkinkan kita untuk bekerja dengan array multidimensi dan
berfungsi untuk mengatur serta memproses data.
• Pandas : Memungkinkan kita untuk mengatur data dalam bentuk table dan
melampirkan label deskriptif pada baris dan kolom.
• Matplotlib : Memungkinkan kita untuk mendesign visualisasi perhitungan
Numpy dalam bentuk 2D.
• Seaborn : Package visualisasi yang berdasarkan Matplotlib. Package ini
menyediakan visualisasi grafik statistic yang lebih menarik.
• StatsModels : Package yang dibangun di atas Numpy dan Scipy, terintegrasi
dengan pandas dan berfungsi untuk memberikan ringkasan yang bagus.
• Sklearn : Digunakan untuk membangun model pada data.
• Scipy : memungkinkan kita untuk menangani operasi aljabar dan matriks serta
operasi matematika lainya.

3. Aplikasi Regresi Linear Sederhana

C. Aplikasi K-Means Clustering di Python


K-Means Clustering merupakan sebuah metode untuk mengelompokan data-
data yang tidak memiliki label. Sehingga K-Means Clustering termasuk ke
dalam metode unsupervised learning. Mekanisme yang dipakai dari metode
ini adalah dengan membagi data menjadi kumpulan bagian yang berbeda.
Dimana ketika dilakukan observasi di masing-masing anggota bagian
kelompok, makan akan mendapatkan hasil yang mirip. Pada masing-masing
bagian tersebut akan diberikan titik tengah yang menunjukkan bagian-bagian
yang berbeda setelah dilakukan iterasi ke-n.

Pemilihan jumlah kelompok untuk membagi data, atau disebut ‘K’ dilakukan
dengan membandingkan jumlah K dengan standar error yang muncul. titik
dimana nilai standar error tidak lagi menurun drastis dapat menjadi salah satu
metode pendekatan untuk menentukan nilai K atau jumlah kelompok paling
optimal.

Penggunaan K-Means clustering pada bahasa pemprograman Python dapat


dilakukan dengan menggunakan bantuan packages, yaitu seaborn, matplotlib,
dan sklearn.
Sedangkan hasil dari pengelompokkan dari K-Means Clustering ini dapat
dilakukan dengan menggunakan matplotlib yang dicontohkan sebagai berikut:

Anda mungkin juga menyukai