Langkah langkah penerapan machine learning dalam python?

Ada beberapa alasan utama, kenapa banyak yang menggunakan Python dalam membuat model Machine Learning, antara lain:

Show

1. Mudah Dipelajari

Python punya kode yang pendek dan mudah dibaca. Penggunaan Python juga memungkinkan Developer dan Data Scientist bisa menulis sistem yang mampu diandalkan dalam Machine Learning.

2. Tidak Menguras Fokus

Kemudian, dengan kemudahan ketika menggunakan Python, Data Scientist sepertimu bisa lebih fokus pada pemecahan masalah yang ada pada Machine Learning daripada harus berkutat pada nuansa teknis bahasa pemrograman.

3. Varietas Library yang Tinggi dan Beragam

Python punya banyak Library yang bisa digunakan. Ini memungkinkan Data Scientist atau Developer mampu menyelesaikan permasalahan rumit dalam hitungan menit bahkan hitungan detik.

4. Dukungan Komunitas

Dengan banyaknya pengguna Python, membuatnya punya komunitas yang luas dan solid. Dengan begitu, saat kamu kesulitan dan mungkin mengalami kendala, kamu bisa mencari solusinya di dalam komunitas tersebut.

Langkah langkah penerapan machine learning dalam python?

Halo haloo semua! Kembali lagi bersama saya Reyvan Maulid Pradistya di medium! Masih melanjutkan untuk challenge sebelumnya, kali ini kita akan bergeser sedikit untuk membahas terkait dengan Machine Learning tentunya diaplikasikan pada software Python. Ngomong-ngomong soal Machine Learning, jadi inget sama salah satu drama Korea yang kemarin sempat hits dikalangan pecinta drakor. Hayooo tebakkk apaaa??? Iyaaakkk Drakor Startup!

Dalam serial tersebut, implementasi Machine Learning dianalogikan sebagai Tarzan dan Jane oleh Nam Do-San. Di sebuah taman, Do-San menjelaskannya kepada Dal-Mi bahwa machine learning ibarat tarzan yang tinggal di sebuah pulau yang tidak berpenghuni. Kemudian, tarzan bertemu dengan Jane di pulau tersebut. Ketika tarzan memberikan batu, Jane tidak suka. Tetapi ketika Tarzan memberikan bunga, Jane suka. Begitu juga dengan benda lainnya, ketika Tarzan memberikan ular, Jane tidak suka. Dari sini, akhirnya tarzan mulai memahami apa yang disukai oleh Jane dan apa yang tidak disukai oleh Jane.

Berdasarkan analogi Tarzan dan Jane, disimpulkan bahwa salah satu penggunaan yang sesuai dengan jenis machine learning adalah supervised learning. Supervised learning berfokus untuk melakukan prediksi suatu target variabel. Sebagai seorang praktisi data, penggunaan model yang tepat tentunya akan menghasilkan prediksi yang sesuai. Tarzan adalah sebuah komputer yang memberikan informasi mengenai hal yang disukai Jane maupun hal yang tidak disukai Jane. Dengan demikian, Tarzan bisa memilih dengan tepat hadiah yang diberikan oleh Jane. Beberapa penerapan supervised learning adalah customer churn, fraud detection, object detection dan lain-lain. Kalian bisa baca artikel selengkapnya disini ya!

Buat kalian yang pengen kenalan lebih jauh juga dengan belajar machine learning maupun data science. Boleh banget! Kalian bisa belajar juga melalui DQLAB! Kalian bisa cobain modul gratisnya juga loh! Ada “Introduction to Data Science With R” dan “Introduction to Data Science With Python”. Kalau begitu, let’s start about this material! Welcome to Machine Learninggg…….

Pengenalan Machine Learning

Pada bagian ini kamu akan berkenalan dengan machine learning sebagai suatu teknik dimana komputer dapat mengekstraksi atau mempelajari pola dari suatu data, kemudian dengan pola yang telah dipelajari dari data historis, komputer mampu mengenali dan memprediksi trend, hasil atau kejadian di masa mendatang atau dari observasi baru tanpa perlu diprogram secara eksplisit.

Machine Learning? Apa Itu?

“Sering dengar sih, tapi gak tau itu apa. Gak ngerti juga fungsinya apa dalam pengolahan data,”

Nah, jadii Machine Learning adalah teknik dimana komputer dapat mengekstraksi atau mempelajari pola dari suatu data, kemudian dengan pola yang telah dipelajari dari data historis, komputer mampu mengenali dan memprediksi trend, hasil atau kejadian di masa mendatang atau dari observasi baru tanpa perlu diprogram secara eksplisit

Sebagai contoh, pernah buka folder spam di email kamu? Di sana ada banyak email promosi dan sebagainya yang dikirim secara acak ke email kita padahal tidak kita inginkan. Lalu bagaimana, perusahaan seperti Google, Yahoo, Hotmail, Microsoft dan perusahaan penyedia lainnya secara otomatis memfilter pesan spam ini? Tentunya dengan machine learning.

“Selain machine learning, apakah ada cara lain utnuk memfilter spam seperti itu?”

Bisa saja dengan cara lain, tetapi akan ada begitu banyak rules dan logic yang harus dibuat sehingga tidak fleksibel, serta kompleksitasnya akan sulit untuk dikelola. Terutama untuk data dan variabel yang cukup banyak serta berubah sewaktu-waktu, sangat sulit untuk dimodelkan secara kuantitatif atau matematis.

Bisa kusimpulkan jika machine learning ini sangat mempermudah sistem perusahaan. Tapi, apakah machine learning bisa diimplementasikan selain pada email?

Tentu saja, Selain mengenali email sebagai spam atau ukan spam ada banyak contoh penggunaan machine learning lainnya, seperti memprediksi harga saham, pengenalan wajah (face recognition), mengenali tulisan tangan, mendeteksi fraud/scam kartu kredit, memprediksi cuaca, dan memprediksi permintaan barang

Tampaknya ini akan seru. Siap untuk belajar lebih jauh! Mari kita belajar bersama!

Terminologi Machine Learning

Oke, jadi sudah paham ya kalian sampe sini? Karena kita butuh paham dasarnya dulu sebelum lanjutt. Selanjutnya saya akan menjelaskan terkait istilah-istilah yang sering dipakai di machine learning agar kamu tidak bingung dalam project nantinya.

Dalam pembuatan model machine learning tentunya dibutuhkan data. Sekumpulan data yang digunakan dalam machine learning disebut DATASET, yang kemudian dibagi/di-split menjadi training dataset dan test dataset.

TRAINING DATASET digunakan untuk membuat/melatih model machine learning, sedangkan TEST DATASET digunakan untuk menguji performa/akurasi dari model yang telah dilatih/di-training.

Teknik atau pendekatan yang digunakan untuk membangun model disebut ALGORITHM seperti Decision Tree, K-NN, Linear Regression, Random Forest, dsb. dan output atau hasil dari proses melatih algorithm dengan suatu dataset disebut MODEL.

Umumnya dataset disajikan dalam bentuk tabel yang terdiri dari baris dan kolom. Bagian Kolom adalah FEATURE atau VARIABEL data yang dianalisa, sedangkan bagian baris adalah DATA POINT/OBSERVATION/EXAMPLE.

Hal yang menjadi target prediksi atau hal yang akan diprediksi dalam machine learning disebut LABEL/CLASS/TARGET. Dalam statistika/matematika, LABEL/CLASS/TARGET ini dinamakan dengan Dependent Variabel, dan FEATURE adalah Independent Variabel.

Supervised and Unsupervised Learning

“Waittt, inget ga tadi di opening saya menjelaskan tentang supervised dan unsupervised learning di machine learning. Apa sih itu? Bedanya apa, ya?”

Jadi, Machine Learning itu terbagi menjadi 2 tipe yaitu supervised dan unsupervised Learning. Jika LABEL/CLASS dari dataset sudah diketahui maka dikategorikan sebagai supervised learning, dan jika Label belum diketahui maka dikategorikan sebagai unsupervised learning

”Kalau kasusnya yang email tadi, masuknya ke mana yah?”

Mengenali email sebagai spam atau bukan spam tergolong sebagai supervised learning, karena kita mengolah dataset yang berisi data point yang telah diberi LABEL ”spam” dan “not spam”. Sedangkan jika kita ingin mengelompokkan customer ke dalam beberapa segmentasi berdasarkan variabel-variabel seperti pendapatan, umur, hobi, atau jenis pekerjaan, maka tergolong sebagai unsupervised learning

Baiklah, kali ini semuanya jadi lebih jelas. Lanjut!

Pilih Algorithm yang Mana?

“Ku sudah tahu bahwa proyek aku adalah tipe supervised learning, terus gimana cara menentukan algorithm yang cocok?”

“Kalau sudah paham bahwa problem aku adalah tipe unsupervised learning, lalu apa algorithm yang tepat untuk kasus seperti ini?”

“Jadi begini, penting untuk diingat bahwa tidak ada ML algorithm yang cocok atau fit untuk diaplikasikan di semua problem. Oleh karena itu, proses ini terkadang memerlukan trial & error seperti research, bahkan experienced data scientist pun tidak akan tahu apakah algorithm itu akan tepat atau tidak jika tidak mencoba. Biasanya, data scientist akan mencoba beberapa algorithm dan membandingkan performansi dari algorithm — algorithm tersebut. Algorithm dengan performansi yang paling baiklah yang dipilih sebagai model,”

“Jadi lebih banyak mencoba dan praktik ya untuk tahu yang tepat dan relevannya?”

“Iya, selain itu untuk supervised learning, jika LABEL dari dataset kalian berupa numerik atau kontinu variabel seperti harga, dan jumlah penjualan, kita memilih metode REGRESI dan jika bukan numerik atau diskrit maka digunakan metode KLASIFIKASI. Untuk unsupervised learning, seperti segmentasi customer, kita menggunakan metode CLUSTERING,”

Langkah langkah penerapan machine learning dalam python?

Eksplorasi Data & Data Pre-processing

Eksplorasi Data: Memahami Data dengan Statistik — Part 1

Selanjutnya saya akan menjelaskan secara singkat tentang tahapan-tahapan dalam pembuatan model machine learning. Membuat model machine learning tidak serta-merta langsung modelling, ada tahapan sebelumnya yang penting untuk dilakukan sehingga kita menghasilkan model yang baik. Untuk penjelasan ini, kalian akan mempraktekkan langsung ya. Kita akan memanfaatkan Pandas library. Pandas cukup powerful untuk digunakan dalam menganalisa, memanipulasi dan membersihkan data. Siap?

Oke, Pertama- tama, kita check dimensi data kita terlebih dahulu. Aksara, silahkan load datanya dan gunakan .shape, .head(), .info(), dan .describe() untuk mengeksplorasi dataset secara berurut. Dataset ini adalah data pembeli online yang mengunjungi website dari suatu e-commerce selama setahun. Untuk datasetnya kalian bisa pakai disini

Berikut adalah syntax yang bisa kalian gunakan:

Langkah langkah penerapan machine learning dalam python?

Berikut adalah output yang dihasilkan:

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Nah, dengan mengetahui dimensi data yaitu jumlah baris dan kolom, kita bisa mengetahui apakah data kita terlalu banyak atau justru sangat sedikit. Jika data terlalu banyak, waktu melatih model akan lebih lama, sedangkan jika data terlalu sedikit, performansi model yang kita hasilkan mungkin tidak cukup bagus, karena tidak mampu mengenali pola dengan baik. Sudah lebih paham sekarang?

Eksplorasi Data: Memahami Data dengan Statistik — Part 2

“Kita lanjut yah. Data eksplorasi tidaklah cukup dengan mengetahui dimensi data dan statistical properties saja, tetapi kita juga perlu sedikit menggali tentang hubungan atau korelasi dari setiap feature, karena beberapa algorithm seperti linear regression dan logistic regression akan menghasilkan model dengan performansi yang buruk jika kita menggunakan feature/variabel saling dependensi atau berkorelasi kuat (multicollinearity). Jadi, jika kita sudah tahu bahwa data kita berkorelasi kuat, kita bisa menggunakan algorithm lain yang tidak sensitif terhadap hubungan korelasi dari feature/variabel seperti decision tree.”

Coba sekarang kita akan lanjutkan eksplorasi data untuk melihat korelasi dan distribusi dataset.

Berikut adalah syntax yang bisa digunakan:

Langkah langkah penerapan machine learning dalam python?

Berikut adalah output yang dihasilkan:

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

“Kenapa mengetahui distribusi LABEL dari dataset itu penting?”

Pertanyaan menarik, mengetahui distribusi label sangat penting untuk permasalahan klasifikasi, karena jika distribusi label sangat tidak seimbang (imbalanced class), maka akan sulit bagi model untuk mempelajari pola dari LABEL yang sedikit dan hasilnya bisa misleading. Contohnya, kita memiliki 100 row data, 90 row adalah non fraud dan 10 row adalah fraud. Jika kita menggunakan data ini tanpa melakukan treatment khusus (handling imbalanced class), maka kemungkinan besar model kita akan cenderung mengenali observasi baru sebagai non-fraud, dan hal ini tentunya tidak diinginkan

Setelah kita menginspeksi nilai korelasi untuk semua variabel, sekarang saatnya kita akan mencoba untuk melakukan inspeksi terhadap nilai korelasi dari fitur tertentu saja pada dataset_corr yang kita gunakan sebelumnya. Fitur-fitur tersebut adalah:

· ExitRates dan BounceRates

· Revenue dan PageValues

· TrafficType dan Weekend

Sehingga, korelasi antara variabel-variabel tersebut akan tampak seperti ini. Bisa kita amati bahwa diantara korelasi dengan variabel-variabel lain, korelasi antara BounceRates dan ExitRates paling kuat, yaitu 0.91. Sementara itu, korelasi yang paling lemah ditempati oleh korelasi antara TrafficType dan Weekend dengan nilai sebesar 0.002

Eksplorasi Data: Memahami Data dengan Visual

“Dalam mengeksplorasi data, kita perlu untuk memahami data dengan visual.”

Selain dengan statistik, kita juga bisa melakukan eksplorasi data dalam bentuk visual. Dengan visualisasi kita dapat dengan mudah dan cepat dalam memahami data, bahkan dapat memberikan pemahaman yang lebih baik terkait hubungan setiap variabel/features.

Misalnya kita ingin melihat distribusi label dalam bentuk visual, dan jumlah pembelian saat weekend. Kita dapat memanfaatkan matplotlib library untuk membuat chart yang menampilkan perbandingan jumlah yang membeli (1) dan tidak membeli (0), serta perbandingan jumlah pembelian saat weekend. Berikut adalah syntax yang bisa kalian gunakan

Langkah langkah penerapan machine learning dalam python?

Berikut adalah hasil output visualisasinya:

Langkah langkah penerapan machine learning dalam python?

Dari visualisasi yang dihasilkan, dapat kita amati bahwa lebih banyak yang tidak melakukan pembelian baik pada saat Revenue maupun pada saat Weekend. Adapun jumlah orang yang melakukan pembelian di Weekend lebih banyak daripada di Revenue.

Data Pre-processing: Handling Missing Value — Part 1

Kita akan move ke materi lanjutannya

Setelah kita melakukan eksplorasi data, kita akan melanjutkan ke tahap data pre-processing. Seperti yang saya jelaskan sebelumnya, raw data kita belum tentu bisa langsung digunakan untuk pemodelan. Jika kita memiliki banyak missing value, maka akan mengurangi performansi model dan juga beberapa algorithm machine learning tidak dapat memproses data dengan missing value. Oleh karena itu, kita perlu mengecek apakah terdapat missing value dalam data atau tidak. Jika tidak, maka kita tidak perlu melakukan apa-apa dan bisa melanjutkan ke tahap berikutnya. Jika ada, maka kita perlu melakukan treatment khusus untuk missing value ini

“Caranya bagaimana?”

Pengecekan missing value dapat dilakukan dengan code berikut menggunakan metod .isnull pada dataset dan kemudian men-chaining-nya dengan method sum. Untuk jumlah keseluruhan missing value digunakan chaining method sum sekali lagi.

Langkah langkah penerapan machine learning dalam python?

Berikut adalah output syntax berikut:

Langkah langkah penerapan machine learning dalam python?

Total keseluruhan missing value yang diperoleh sebesar 112

Data Pre-processing: Handling Missing Value — Part 2

“Wah, ternyata ada missing value di dataset kita. Apakah data point-nya bisa dihapus saja?”

Ada beberapa metode yang dapat kita lakukan untuk menangani missing value. Salah satunya menghapus data. Tetapi, metode ini tidak dapat serta merta diimplementasikan. Kita juga perlu menganalisis penyebaran missing value, dan berapa persen jumlah missing value dalam data kita

Metode ini dapat diterapkan jika tidak banyak missing value dalam data, sehingga walaupun data point ini dihapus, kita masih memiliki sejumlah data yang cukup untuk melatih model Machine Learning. Tetapi jika kita memiliki banyak missing value dan tersebar di setiap variabel, maka metode menghapus missing value tidak dapat digunakan. Kita akan kehilangan sejumlah data yang tentunya mempengaruhi performansi model. Kita bisa menghapus data point yang memiliki missing value dengan fungsi .dropna( ) dari pandas library. Fungsi dropna( ) akan menghapus data point atau baris yang memiliki missing value.

Berikut adalah syntax yang bisa digunakan

Langkah langkah penerapan machine learning dalam python?

Jumlah baris dataset tersebut sudah berkurang menjadi 12316 baris data setelah kita hapus nilai missing valuenya

Data Pre-processing: Handling Missing Value — Part 3

“Kalau tidak dihapus, ada metode lain yang bisa dipakai?”

Kita bisa menggunakan metode impute missing value, yaitu mengisi record yang hilang ini dengan suatu nilai. Ada berbagai teknik dalam metode imputing, mulai dari yang paling sederhana yaitu mengisi missing value dengan nilai mean, median, modus, atau nilai konstan, sampai teknik paling advance yaitu dengan menggunakan nilai yang diestimasi oleh suatu predictive model. Untuk kasus ini, kita akan menggunakan imputing sederhana yaitu menggunakan nilai rataan atau mean

Imputing missing value sangat mudah dilakukan di Python, cukup memanfaatkan fungsi .fillna() dan .mean() dari Pandas, seperti berikut

Langkah langkah penerapan machine learning dalam python?

Berikut adalah hasil perbandingannya:

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Jika dibandingkan antar keduanya, sekarang jumlah missing valuenya sudah tidak ada lagi jika dibandingkan dengan sebelumnya

Data Preprocessing: Scaling

“Setelah berhasil menangani missing value, sekarang mari kita mempelajari tahapan preprocessing selanjutnya. Aksara, tolong tampilkan kembali 5 dataset teratas dan deskripsi statistik dari dataset. Coba perhatikan, rentang nilai dari setiap feature cukup bervariasi. Misalnya, ProductRelated_Duration vs BounceRates. ProductRelated_Duration memiliki rentang nilai mulai dari 0–5000; sedangkan BounceRates rentang nilainya 0–1”

“Beberapa machine learning seperti K-NN dan gradient descent mengharuskan semua variabel memiliki rentang nilai yang sama, karena jika tidak sama, feature dengan rentang nilai terbesar misalnya ProductRelated_Duration otomatis akan menjadi feature yang paling mendominasi dalam proses training/komputasi, sehingga model yang dihasilkan pun akan sangat bias. Oleh karena itu, sebelum memulai training model, kita terlebih dahulu perlu melakukan data rescaling ke dalam rentang 0 dan 1, sehingga semua feature berada dalam rentang nilai tersebut, yaitu nilai max = 1 dan nilai min = 0. Data rescaling ini dengan mudah dapat dilakukan di Python menggunakan .MinMaxScaler( ) dari Scikit-Learn library.”

“Kenapa ke range 0–1, tidak menggunakan range yang lain?”

“Karena rumus dari rescaling adalah

Langkah langkah penerapan machine learning dalam python?

Dengan rumus ini, nilai max data akan menjadi 1 dan nilai min menjadi 0; dan nilai lainnya berada di rentang keduanya. Rumus ini tidak memungkinkan adanya rentang nilai selain 0–1,

Perlu diingat bahwa proses scaling hanya bisa dilakukan untuk feature dengan tipe numerik, sedangkan dalam dataset online_raw, terdapat feature dengan tipe string atau karakter dan categorical, seperti Month, VisitorType, Region. Oleh karena itu, kita tidak dapat langsung melakukan scaling , melainkan perlu terlebih dahulu menyeleksi feature — feature dari dataset yang bertipe numerik.

Adapun langkah — langkah yang dapat kita lakukan dalam proses scaling yaitu:

1. Mengimport MinMaxScaler dari sklearn.preprocessing

2. Deklarasikan fungsi MinMaxScaler() ke dalam variabel scaler

3. List semua feature yang akan di-scaling lalu beri nama scaling_column, yaitu : [‘Administrative’, ‘Administrative_Duration’, ‘Informational’, ‘Informational_Duration’, ‘ProductRelated’, ‘ProductRelated_Duration’, ‘BounceRates’, ‘ExitRates’, ‘PageValues’]

4. Gunakan scaling_column untuk melakukan fit transform terhadap feature yang telah di-list.

Data Pre-processing: Konversi string ke numerik

“Kita memiliki dua kolom yang bertipe object yang dinyatakan dalam tipe data str, yaitu kolom ‘Month’ dan ‘VisitorType’. Karena setiap algoritma machine learning bekerja dengan menggunakan nilai numeris, maka kita perlu mengubah kolom dengan tipe pandas object atau str ini ke bertipe numeris. Untuk itu, kita list terlebih dahulu apa saja label unik di kedua kolom ini,”

Label unik kolom ‘Month’:

['Feb' 'Mar' 'May' 'Oct' 'June' 'Jul' 'Aug' 'Nov' 'Sep' 'Dec']

Label unik kolom ‘VisitorType’:

['Returning_Visitor' 'New_Visitor' 'Other']

“Lalu, bagaimana ya cara menrubah tipe pandas object ini ke numerik (int, float) ya?,”

Ok, kita dapat menggunakan LabelEncoder dari sklearn.preprocessing untuk merubah kedua kolom ini seperti ini

Langkah langkah penerapan machine learning dalam python?

“Bisa dilihat kan, bahwa LabelEncoder akan mengurutkan label secara otomatis secara alfabetik, posisi/indeks dari setiap label ini digunakan sebagai nilai numeris konversi pandas objek ke numeris (dalam hal ini tipe data int). Dengan demikian kita telah membuat dataset kita menjadi dataset bernilai numeris seluruhnya yang siap digunakan untuk pemodelan dengan algoritma machine learning tertentu,”

Pemodelan dengan Scikit-Learn

“Masih semangat ? Yang mau cuci tangan silahkan”

“Sip, masih semangat kok. Jadi selanjutnya apa?”

“Oke, saya lanjutkan. Pertama-tama saya akan mengenalkan kamu pada library Scikit — Learn. Scikit-learn adalah library untuk machine learning bagi para pengguna python yang memungkinkan kita melakukan berbagai pekerjaan dalam Data Science, seperti regresi (regression), klasifikasi (classification), pengelompokkan/penggugusan (clustering), data preprocessing, dimensionality reduction, dan model selection (pembandingan, validasi, dan pemilihan parameter maupun model).”

Ada beberapa library machine learning di Python seperti Keras, tetapi Scikit — Learn adalah yang paling basic sehingga jika kita menguasai scikit-learn, kita dapat dengan mudah mempelajari library machine learning yang lain.

Features & Label

Dalam dataset user online purchase, label target sudah diketahui, yaitu kolom Revenue yang bernilai 1 untuk user yang membeli dan 0 untuk yang tidak membeli, sehingga pemodelan yang dilakukan ini adalah klasifikasi. Nah, untuk melatih dataset menggunakan Scikit-Learn library, dataset perlu dipisahkan ke dalam Features dan Label/Target. Variabel Feature akan terdiri dari variabel yang dideklarasikan sebagai X dan [Revenue] adalah variabel Target yang dideklarasikan sebagai y. Gunakan fungsi drop() untuk menghapus kolom [Revenue] dari dataset.

Aku pun mulai bekerja untuk mengubah dataset ke dalam format yang diminta oleh Scikit — Learn dengan kode berikut:

Langkah langkah penerapan machine learning dalam python?

Setelah kita cek shape nya, terlihat variabel Feature sekarang memiliki 17 kolom dengan variabel Target hanya memiliki 1 kolom saja.

Training dan Test Dataset

“Nah, sebelum kita melatih model dengan suatu algorithm machine , seperti yang saya jelaskan sebelumnya, dataset perlu kita bagi ke dalam training dataset dan test dataset dengan perbandingan 80:20. 80% digunakan untuk training dan 20% untuk proses testing.”

“Perbandingan lain yang biasanya digunakan adalah 75:25. Hal penting yang perlu diketahui adalah scikit-learn tidak dapat memproses dataframe dan hanya mengakomodasi format data tipe Array. Tetapi kalian tidak perlu khawatir, fungsi train_test_split( ) dari Scikit-Learn, otomatis mengubah dataset dari dataframe ke dalam format array.

“Kenapa perlu ada Training dan Testing?”

“Fungsi Training adalah melatih model untuk mengenali pola dalam data, sedangkan testing berfungsi untuk memastikan bahwa model yang telah dilatih tersebut mampu dengan baik memprediksi label dari new observation dan belum dipelajari oleh model sebelumnya. Lebih baik kita praktik saja ya, tampaknya kalau praktik kamu lebih paham.”

“Silahkan bagi dataset ke dalam Training dan Testing dengan melanjutkan coding yang sudah kukerjakan ini. Gunakan test_size = 0.2 dan tambahkan argumen random_state = 0, pada fungsi train_test_split( ). Dicoba saja dulu yah, saya yakin kamu bisa.”

Langkah langkah penerapan machine learning dalam python?

Setelah kita bagi lagi, sekarang jumlah baris pada data Training menjadi 9864 dan Testing menjadi sebanyak 2466 baris.

Training Model: Fit

“Sekarang saatnya kita melatih model atau training. Dengan Scikit-Learn, proses ini menjadi sangat sederhana. Kita cukup memanggil nama algorithm yang akan kita gunakan, biasanya disebut classifier untuk problem klasifikasi, dan regressor untuk problem regresi.”

“Boleh kasih contohnya?”

“Sebagai contoh, kita akan menggunakan Decision Tree. Kita hanya perlu memanggil fungsi DecisionTreeClassifier() yang kita namakan “model”. Kemudian menggunakan fungsi .fit() dan X_train, y_train untuk melatih classifier tersebut dengan training dataset, seperti ini:”

Langkah langkah penerapan machine learning dalam python?

Training Model: Predict

Setelah model/classifier terbentuk, selanjutnya kita menggunakan model ini untuk memprediksi LABEL dari testing dataset (X_test), menggunakan fungsi .predict(). Fungsi ini akan mengembalikan hasil prediksi untuk setiap data point dari X_test dalam bentuk array. Proses ini kita kenal dengan TESTING,”

Benar-benar membutuhkan konsentrasi penuh untuk materi modul ini. Aku pun melanjutkan proses testing menggunakan fungsi .predict() seperti ini:

Langkah langkah penerapan machine learning dalam python?

Sehingga dapat disimpulkan bahwa ukuran y_pred sama dengan ukuran y_test.

Evaluasi Model Performance — Part 1

“Sekarang kita melanjutkan di tahap terakhir dari modelling yaitu evaluasi hasil model. Untuk evaluasi model performance, setiap algorithm mempunyai metrik yang berbeda-beda. Sekarang saya akan menjelaskan sedikit metrik apa saja yang umumnya digunakan. Metrik paling sederhana untuk mengecek performansi model adalah accuracy.”

“Gimana caranya?”

“Kita bisa munculkan dengan fungsi .score( ). Tetapi, di banyak real problem, accuracy saja tidaklah cukup. Metode lain yang digunakan adalah dengan Confusion Matrix. Confusion Matrix merepresentasikan perbandingan prediksi dan real LABEL dari test dataset yang dihasilkan oleh algoritma ML,”

Langkah langkah penerapan machine learning dalam python?

True Positive (TP): Jika user diprediksi (Positif) membeli ([Revenue] = 1]), dan memang benar(True) membeli.

True Negative (TN): Jika user diprediksi tidak (Negatif) membeli dan aktualnya user tersebut memang (True) membeli.

False Positive (FP): Jika user diprediksi Positif membeli, tetapi ternyata tidak membeli (False).

False Negatif (FN): Jika user diprediksi tidak membeli (Negatif), tetapi ternyata sebenarnya membeli.

Evaluasi Model Performance — Part 2

Untuk menampilkan confusion matrix cukup menggunakan fungsi confusion_matrix() dari Scikit-Learn

Langkah langkah penerapan machine learning dalam python?

Dengan confusion matrix, kita dapat mengukur metrik — metrik tersebut dengan rumus-rumus ini:

· Accuracy = (TP + TN ) / (TP+FP+FN+TN)

· Precision = (TP) / (TP+FP)

· Recall = (TP) / (TP + FN)

· F1 Score = 2 * (Recall*Precission) / (Recall + Precission)

Di Python sendiri, kita tidak perlu repot menghitungnya secara manual. Cukup gunakan fungsi classification_report(), maka kita bisa langsung memunculkan hasil perhitungan metrik — metrik tersebut.

Langkah langkah penerapan machine learning dalam python?

Pakai Metrik yang Mana?

Jika dataset memiliki jumlah data False Negatif dan False Positif yang seimbang (Symmetric), maka bisa gunakan Accuracy, tetapi jika tidak seimbang, maka sebaiknya menggunakan F1-Score.

Dalam suatu problem, jika lebih memilih False Positif lebih baik terjadi daripada False Negatif, misalnya: Dalam kasus Fraud/Scam, kecenderungan model mendeteksi transaksi sebagai fraud walaupun kenyataannya bukan, dianggap lebih baik, daripada transaksi tersebut tidak terdeteksi sebagai fraud tetapi ternyata fraud. Untuk problem ini sebaiknya menggunakan Recall.

Sebaliknya, jika lebih menginginkan terjadinya True Negatif dan sangat tidak menginginkan terjadinya False Positif, sebaiknya menggunakan Precision.

Contohnya adalah pada kasus klasifikasi email SPAM atau tidak. Banyak orang lebih memilih jika email yang sebenarnya SPAM namun diprediksi tidak SPAM (sehingga tetap ada pada kotak masuk email kita), daripada email yang sebenarnya bukan SPAM tapi diprediksi SPAM (sehingga tidak ada pada kotak masuk email).

Supervised Learning — Algorithm

Setelah pemahaman dengan prosedur machine learning modelling. Selanjutnya materi akan membahas mengenai machine learning algorithm.

Sebagai dasar, akan dipelajari beberapa algorithm machine learning yaitu Logistic Regression, dan Decision Tree untuk classification problem, dan Linear regression untuk regression problem.

Langkah langkah penerapan machine learning dalam python?

Classification — Logistic Regression

Logistic Regression merupakan salah satu algoritma klasifikasi dasar yang cukup popular. Secara sederhana, Logistic regression hampir serupa dengan linear regression tetapi linear regression digunakan untuk Label atau Target Variable yang berupa numerik atau continuous value, sedangkan Logistic regression digunakan untuk Label atau Target yang berupa categorical/discrete value.

Contoh continuous value adalah harga rumah, harga saham, suhu, dsb; dan contoh dari categorical value adalah prediksi SPAM or NOT SPAM (1 dan 0) atau prediksi customer SUBSCRIBE atau UNSUBSCRIBED (1 dan 0).

Umumnya Logistic Regression dipakai untuk binary classification (1/0; Yes/No; True/False) problem, tetapi beberapa data scientist juga menggunakannya untuk multiclass classification problem. Logistic regression adalah salah satu linear classifier, oleh karena itu, Logistik regression juga menggunakan rumus atau fungsi yang sama seperti linear regression yaitu:

Langkah langkah penerapan machine learning dalam python?

yang disebut Logit, dimana Variabel 𝑏₀, 𝑏₁, …, 𝑏ᵣ adalah koefisien regresi, dan 𝑥₁, …, 𝑥ᵣ adalah explanatory variable/variabel input atau feature.

Output dari Logistic Regression adalah 1 atau 0; sehingga real value dari fungsi logit ini perlu ditransfer ke nilai di antara 1 dan 0 dengan menggunakan fungsi sigmoid.

Langkah langkah penerapan machine learning dalam python?

Jadi, jika output dari fungsi sigmoid bernilai lebih dari 0.5, maka data point diklasifikasi ke dalam label/class: 1 atau YES; dan kurang dari 0.5, akan diklasifikasikan ke dalam label/class: 0 atau NO.

Logistic Regression hanya dapat mengolah data dengan tipe numerik. Pada saat preparasi data, pastikan untuk mengecek tipe variabel yang ada dalam dataset dan pastikan semuanya adalah numerik, lakukan data transformasi jika diperlukan.

Pemodelan Permasalahan Klasifikasi dengan Logistic Regression

Pemodelan Logistic Regression dengan memanfaatkan Scikit-Learn sangatlah mudah. Dengan menggunakan dataset yang sama yaitu online_raw, dan setelah dataset dibagi ke dalam Training Set dan Test Set, cukup menggunakan modul linear_model dari Scikit-learn, dan memanggil fungsi LogisticRegression() yang diberi nama logreg.

Kemudian, model yang sudah ditraining ini bisa digunakan untuk memprediksi output/label dari test dataset sekaligus mengevaluasi model performance dengan fungsi score(), confusion_matrix() dan classification_report().

Langkah langkah penerapan machine learning dalam python?

Berikut adalah outputnya:

ternyata dari output yang kita hasilkan ini, nilai False Positif dan False Negatifnya tidak seimbang (35 dan 318), sehingga kita perlu menggunakan F1-Score untuk mengecek performansi modelnya.

Langkah langkah penerapan machine learning dalam python?

Classification — Decision Tree

Decision Tree merupakan salah satu metode klasifikasi yang populer dan banyak diimplementasikan serta mudah diinterpretasi. Decision tree adalah model prediksi dengan struktur pohon atau struktur berhierarki. Decision Tree dapat digunakan untuk classification problem dan regression problem. Secara sederhana, struktur dari decision tree adalah sebagai berikut:

Langkah langkah penerapan machine learning dalam python?

Decision tree terdiri dari :

  1. Decision Node yang merupakan feature/input variabel;
  2. Branch yang ditunjukkan oleh garis hitam berpanah, yang adalah rule/aturan keputusan, dan
  3. Leaf yang merupakan output/hasil.

Decision Node paling atas dalam decision tree dikenal sebagai akar keputusan, atau feature utama yang menjadi asal mula percabangan. Jadi, decision tree membagi data ke dalam kelompok atau kelas berdasarkan feature/variable input, yang dimulai dari node paling atas (akar), dan terus bercabang ke bawah sampai dicapai cabang akhir atau leaf.

Misalnya ingin memprediksi apakah seseorang yang mengajukan aplikasi kredit/pinjaman, layak untuk mendapat pinjaman tersebut atau tidak. Dengan menggunakan decision tree, dapat membreak-down kriteria-kriteria pengajuan pinjaman ke dalam hierarki seperti gambar berikut :

Langkah langkah penerapan machine learning dalam python?

Seumpama, orang yang mengajukan berumur lebih dari 40 tahun, dan memiliki rumah, maka aplikasi kreditnya dapat diluluskan, sedangkan jika tidak, maka perlu dicek penghasilan orang tersebut. Jika kurang dari 5000, maka permohonan kreditnya akan ditolak. Dan jika usia kurang dari 40 tahun, maka selanjutnya dicek jenjang pendidikannya, apakah universitas atau secondary. Nah, percabangan ini masih bisa berlanjut hingga dicapai percabangan akhir/leaf node.

Seperti yang sudah dilakukan dalam prosedur pemodelan machine learning, selanjutnya dapat dengan mudah melakukan pemodelan decision tree dengan menggunakan scikit-learn module, yaitu DecisionTreeClassifier.

Tugas Praktek

Dengan menggunakan dataset online_raw.csv dan diasumsikan sudah melakukan EDA dan pre-processing, aku akan membuat model machine learning dengan menggunakan decision tree :

  1. Import DecisionTreeClassifier dan panggil fungsi tersebut dengan nama decision_tree
  2. Split dataset ke dalam training & testing dataset dengan perbandingan 70:30, dengan random_state = 0
  3. Latih model dengan training feature (X_train) dan training target (y_train) menggunakan .fit()
  4. Evaluasi hasil model decision_tree yang sudah dilatih dengan testing feature (X_test) dan print nilai akurasi dari training dan testing dengan fungsi .score()

Langkah langkah penerapan machine learning dalam python?

Dari output yang dihasilkan ini, bisa dilihat bahwa nilai akurasi dar training dan testing masing-masing adalah 1 dan 0.86

Regression: Linear Regression — Part 1

Regression merupakan metode statistik dan machine learning yang paling banyak digunakan. Seperti yang dijelaskan sebelumnya, regresi digunakan untuk memprediksi output label yang berbentuk numerik atau continuous value. Dalam proses training, model regresi akan menggunakan variabel input (features) dan variabel output (label) untuk mempelajari bagaimana hubungan/pola dari variabel input dan output.

Langkah langkah penerapan machine learning dalam python?

Model regresi terdiri atas 2 tipe yaitu :

  1. Simple regression model → model regresi paling sederhana, hanya terdiri dari satu feature (univariate) dan 1 target.
  2. Multiple regression model → sesuai namanya, terdiri dari lebih dari satu feature (multivariate).

Adapun model regresi yang paling umum digunakan adalah Linear Regression.

Regression: Linear Regression — Part 2

Linear regression digunakan untuk menganalisis hubungan linear antara dependent variabel (feature) dan independent variabel (label). Hubungan linear disini berarti bahwa jika nilai dari independen variabel mengalami perubahan baik itu naik atau turun, maka nilai dari dependen variabel juga mengalami perubahan (naik atau turun). Rumus matematis dari Linear Regression adalah:

untuk simple linear regression, atau

untuk multiple linear regression dengan, y adalah target/label, X adalah feature, dan a,b adalah model parameter (intercept dan slope)

Langkah langkah penerapan machine learning dalam python?

Perlu diketahui bahwa tidak semua problem dapat diselesaikan dengan linear regression. Untuk pemodelan dengan linear regression, terdapat beberapa asumsi yang harus dipenuhi, yaitu :

  1. Terdapat hubungan linear antara variabel input (feature) dan variabel output(label). Untuk melihat hubungan linear feature dan label, dapat menggunakan chart seperti scatter chart. Untuk mengetahui hubungan dari variabel umumnya dilakukan pada tahap eksplorasi data.
  2. Tidak ada multicollinearity antara features. Multicollinearity artinya terdapat dependency antara feature, misalnya saja hanya bisa mengetahui nilai feature B jika nilai feature A sudah diketahui.
  3. Tidak ada autocorrelation dalam data, contohnya pada time-series data.

Pemodelan Linear regression menggunakan scikit-learn tidaklah sulit. Secara prosedur serupa dengan pemodelan logistic regression. Cukup memanggil LinearRegression dengan terlebih dahulu meng-import fungsi tersebut :

from sklearn.linear_model import LinearRegression

“Setelah memahami konsep dasar dari regression, kita akan berlatih membuat model machine learning dengan Linear regression. Untuk pemodelan ini kita akan menggunakan data ‘Boston Housing Dataset’. Setelah pembelajaran kamu sampai di sini, tahu tidak mengapa kita tidak bisa menggunakan data “online purchase?”

“Hmm, karena untuk linear regression target/label harus berupa numerik, sedangkan target dari online purchase data adalah categorical. Apakah benar?”

“Tepat sekali. Kalau begitu kita bisa lanjut ke pemodelan. Tujuan dari pemodelan ini adalah memprediksi harga rumah di Boston berdasarkan feature — feature yang ada. Asumsikan saja bahwa kita sudah melakukan data eksplorasi dan data pre-processing. Jadi, data yang akan digunakan adalah data yang siap untuk diproses ke tahap pemodelan.”

Tugas Praktek

Setelah kita paham konsep dasar dari regression ini, saatnya kita berlatih membuat model machine learning dengan Linear regression ini! Untuk pemodelannya, kita akan menggunakan data ‘Boston Housing Dataset’ kalian bisa akses datasetnya disini.Tujuan dari pemodelan ini adalah memprediksi harga rumah di Boston berdasarkan feature — feature yang ada.

  1. Pisahkan dataset ke dalam Feature dan Label, gunakan fungsi .drop(). Pada dataset ini, label/target adalah variabel MEDV
  2. Checking dan print jumlah data setelah Dataset pisahkan ke dalam Feature dan Label, gunakan .shape()
  3. Bagi dataset ke dalam Training dan test dataset, 70% data digunakan untuk training dan 30% untuk testing, gunakan fungsi train_test_split() , dengan random_state = 0
  4. Checking dan print kembali jumlah data dengan fungsi .shape()
  5. Import LinearRegression dari sklearn.linear_model
  6. Deklarasikan LinearRegression regressor dengan nama reg
  7. Fit regressor ke training dataset dengan .fit(), dan gunakan .predict() untuk memprediksi nilai dari testing dataset.

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Sehingga, jumlah baris dari data training dan testing yang terbentuk masing-masing menjadi sebanyak 342 dan 147 baris

Regression Performance Evaluation

“Kalau mengevaluasi perfoma dari model klasifikasi, aku pakai akurasi dan confusion matrix. Nah, kalau modenya regression, metode evaluasinya bagaimana yah?”

“Untuk model regression, kita menghitung selisih antara nilai aktual (y_test) dan nilai prediksi (y_pred) yang disebut error, adapun beberapa metric yang umum digunakan. Coba aku jelaskan langkah-langkahnya.”

Mean Squared Error (MSE) adalah rata-rata dari squared error:

Langkah langkah penerapan machine learning dalam python?

Root Mean Squared Error (RMSE) adalah akar kuadrat dari MSE:

Langkah langkah penerapan machine learning dalam python?

Mean Absolute Error (MAE) adalah rata-rata dari nilai absolut error:

Langkah langkah penerapan machine learning dalam python?

Note: Semakin kecil nilai MSE, RMSE, dan MAE, semakin baik pula performansi model regresi. Untuk menghitung nilai MSE, RMSE dan MAE dapat dilakukan dengan menggunakan fungsi mean_squared_error () , mean_absolute_error () dari scikit-learn.metrics dan untuk RMSE sendiri tidak terdapat fungsi khusus di scikit-learn tapi dapat dengan mudah kita hitung dengan terlebih dahulu menghitung MSE kemudian menggunakan numpy module yaitu, sqrt() untuk memperoleh nilai akar kuadrat dari MSE.

Tugas Praktek

“Kalau kamu sudah paham evaluasi performa model regresi, sekaligus kamu coba hitung nilai MSE, MAE, dan RMSE dari linear modelnya,” pinta Senja

Berikut adalah instruksinya:

  1. Import library yang digunakan: mean_squared_error, mean_absolute_error dari sklearn.metrics dan numpy sebagai aliasnya yaitu np. Serta, import juga matplotlib.pyplot sebagai aliasnya, plt.
  2. Hitung dan print nilai MSE dan RMSE dengan menggunakan argumen y_test dan y_pred, untuk rmse gunakan np.sqrt()
  3. Buat scatter plot yang menggambarkan hasil prediksi (y_pred) dan harga actual (y_test)

Langkah langkah penerapan machine learning dalam python?

Langkah langkah penerapan machine learning dalam python?

Nilai-nilai MSE, MAE, dan RMSE yang dihasilkan cukup kecil, yaitu masing-masing nilainya 0.01, 0.08, dan 0.10. Ini menunjukkan bahwa performansi model regresi yang kita buat sudah cukup baik

Unsupervised Learning — Algorithm

Seperti yang sudah dijelaskan sebelumnya, Machine Learning terdiri atas 2 tipe yaitu supervised dan unsupervised learning. Kita telah banyak membahas tentang supervised learning yaitu Klasifikasi model dan Regression Model. Sekarang kita akan mempelajari dasar- dasar terkait unsupervised learning,

Unsupervised Learning adalah teknik machine learning dimana tidak terdapat label atau output yang digunakan untuk melatih model. Jadi, model dengan sendirinya akan bekerja untuk menemukan pola atau informasi dari dataset yang ada. Metode unsupervised learning yang dikenal dengan clustering. Sesuai dengan namanya, Clustering memproses data dan mengelompokkannya atau mengcluster objek/sample berdasarkan kesamaan antar objek/sampel dalam satu kluster, dan objek/sample ini cukup berbeda dengan objek/sample di kluster yang lain. Contohnya pada gambar berikut:

Langkah langkah penerapan machine learning dalam python?

“Lalu. Kita tahu dari mana bentuk polanya?”

“Pada awalnya kita tidak mengetahui bagaimana pola dari objek/sample, termasuk juga tidak mengetahui bagaimana kesamaan maupun perbedaan antara objek yang satu dengan objek yang lain. Setelah dilakukan clustering, baru dapat terlihat bawah objek/sample tersebut dapat dikelompokkan ke dalam 3 kluster. Untuk menjelaskan tentang metode Clustering, kita akan menggunakan metode clustering yang sangat populer, yaitu K-Means Algorithm yang akan kita praktikkan nanti.”

K-Means Clustering

“Jadi, Algorithm K-Means itu apa dan bagaimana cara kerjanya?” tanyaku antusias.

“K-Means merupakan tipe clustering dengan centroid based (titik pusat). Artinya kesamaan dari objek/sampel dihitung dari seberapa dekat objek itu dengan centroid atau titik pusat.”

Aku masih penasaran. “Jadi, bagaimana kita mengukur kedekatan objek dan centroid?”

“Untuk menghitung kedekatan, digunakan perhitungan jarak antar 2 buah data atau jarak Minkowski. Saya share yah rumusnya

Langkah langkah penerapan machine learning dalam python?

xi , xj adalah dua buah data yang akan dihitung jaraknya, dan p = dimensi/jumlah dari data

Terdapat beberapa tipe perhitungan jarak yang dapat digunakan, yaitu :

  1. Jarak Manhattan di mana g = 1
  2. Jarak Euclidean di mana g = 2
  3. Jarak Chebychev di mana g = ∞

“Aku masih bingung, cara menentukan centroid bagaimana caranya?”

“Untuk menentukan centroid, pada awalnya kita perlu mendefinisikan jumlah centroid (K) yang diinginkan, semisalnya kita menetapkan jumlah K = 3; maka pada awal iterasi, algorithm akan secara random menentukan 3 centroid. Setelah itu, objek/sample/data point yang lain akan dikelompokkan sebagai anggota dari salah satu centroid yang terdekat, sehingga terbentuk 3 cluster data. Sampai sini cukup dipahami?”

“Iterasi selanjutnya, titik-titik centroid diupdate atau berpindah ke titik yang lain, dan jarak dari data point yang lain ke centroid yang baru dihitung kembali, kemudian dikelompokkan kembali berdasarkan jarak terdekat ke centroid yang baru. Iterasi akan terus berlanjut hingga diperoleh cluster dengan error terkecil, dan posisi centroid tidak lagi berubah.”

Langkah langkah penerapan machine learning dalam python?

“Menurutmu, apakah ada perbedaan prosedur antara unsupervised learning dan supervised learning?”

“Secara prosedur, tahap eksplorasi data untuk memahami karakteristik data, dan tahap preprocessing tetap dilakukan. Tetapi dalam unsupervised learning, kita tidak membagi dataset ke feature dan label; dan juga ke dalam training dan test dataset, karena pada dasarnya kita tidak memiliki informasi mengenai label/target data,”

Tugas Praktek

“Untuk praktik ini, kita akan menggunakan dataset ‘Mall Customer Segmentation’,” kalian bisa akses datasetnya disini

Aku membaca detail latihan yang sudah ia catatkan untukku:

Dataset ini merupakan data customer suatu mall dan berisi basic informasi customer berupa : CustomerID, age, gender, annual income, dan spending score. Adapun tujuan dari clustering adalah untuk memahami customer — customer mana saja yang sering melakukan transaksi sehingga informasi ini dapat diberikan kepada marketing team untuk membuat strategi promosi yang sesuai dengan karakteristik customer.

“Kita akan melakukan segmentasi customer, dengan memanfaatkan fungsi KMeans dari Scikit-Learn.cluster. Silakan berlatih dengan intruksi di catatan tadi ya, Aksara.”

Aku membuka kembali catatan yang berisi intruksi Senja:

  1. Import pandas sebagai aliasnya dan KMeans dari sklearn.cluster.
  2. Load dataset ‘https://dqlab-dataset.s3-ap-southeast-1.amazonaws.com/pythonTutorial/mall_customers.csv' dan beri nama dataset
  3. Diasumsikan EDA dan preprocessing sudah dilakukan, selanjutnya kita memilih feature yang akan digunakan untuk membuat model yaitu annual_income dan spending_score. Assign dataset dengan feature yang sudah dipilih ke dalam ‘X’. Pada dasarnya terdapat teknik khusus yang dilakukan untuk menyeleksi feature — feature (Feature Selection) mana saja yang dapat digunakan untuk machine learning modelling, karena tidak semua feature itu berguna. Beberapa feature justru bisa menyebabkan performansi model menurun. Tetapi untuk problem ini, secara default kita akan menggunakan annual_income dan spending_score.
  4. Deklarasikan KMeans( ) dengan nama cluster_model dan gunakan n_cluster = 5. n_cluster adalah argumen dari fungsi KMeans( ) yang merupakan jumlah cluster/centroid (K). random_state = 24.
  5. Gunakan fungsi .fit_predict( ) dari cluster_model pada ‘X’ untuk proses clustering.

Langkah langkah penerapan machine learning dalam python?

Inspect & Visualizing the Cluster

Setelah membuat cluster, kita perlu memvisualisasikan hasil dari clustering yang telah kita lakukan sebelumnya. Langkah-langkahnya adalah sebagai berikut:

1. Pertama — tama, import matplotlib.pyplot dan beri inisial plt.

2. Gunakan fungsi .values untuk mengubah tipe ‘X’ dari dataframe menjadi array

3. Pisahkan X kedalam xs dan ys, di mana xs adalah Kolom index [0] dan ys adalah kolom index [1]

4. Buatlah scatter plot dengan plt.scatter() dari xs dan ys, kemudian tambahkan c = labels untuk secara otomatis memberikan warna yang berbeda pada setiap cluster dan alpha = 0.5 ke dalam scatter plot argumen.

5. Hitunglah koordinat dari centroid menggunakan .cluster_centers_ dari cluster_model, laludeklarasikan ke dalam variabel centroids.

6. Pisahkan centroids kedalam centroids_x dan centroids_y, di mana centroids_x adalah kolom index [0] dan centroids_y adalah kolom index [1]

7. Buatlah scatter plot dari centroids_x dan centroids_y , gunakan ‘D’ (diamond) sebagai marker parameter dengan ukuran 50 (s = 50).

Langkah langkah penerapan machine learning dalam python?

Sehingga, data tersebut akan terbagi menjadi 5 cluster seperti pada output berikut.

Langkah langkah penerapan machine learning dalam python?

Measuring Cluster Criteria

Segmentasinya sudah jadi, nih. Sekarang, kita perlu membagi segmentasi ke dalam 5 cluster. Hmmm, bagimana kita mengetahui jumlah cluster segmentasi yang paling optimal?

Jadi begini, clustering yang baik adalah cluster yang data point-nya saling rapat/sangat berdekatan satu sama lain dan cukup berjauhan dengan objek/data point di cluster yang lain. Jadi, objek dalam satu cluster tidak tersebut berjauhan. Nah, untuk mengukur kualitas dari clustering, kita bisa menggunakan inertia untuk mengukur seberapa besar penyebaran object/data point data dalam satu cluster. Semakin kecil nilai inertia maka semakin baik kualitasnya. Kita tidak perlu bersusah payah menghitung nilai inertia, karena secara otomatis telah dihitung oleh KMeans( ) ketika algorithm tersebut di fit ke dataset. Untuk mengecek nilai inertia, cukup dengan print fungsi .inertia_ dari model yang sudah di fit ke dataset.

Kalau begitu, bagaimana caranya mengetahui nilai K yang paling baik dengan inertia yang paling kecil? Kita perlu melakukan trial Error dengan mencoba berbagai jumlah cluster, lalu memplot nilai inertia-nya. Semakin banyak nilai cluster, inertia-nya akan semakin kecil. Contohnya bisa kamu lihat di bawah ini.

Langkah langkah penerapan machine learning dalam python?

Elbow method, salah satu metode yang efektif untuk memilih jumlah cluster yang optimal.

Meskipun suatu clustering dikatakan baik jika memiliki inertia yang kecil, tetapi secara practical in real life, terlalu banyak cluster juga tidak diinginkan. Adapun rule untuk memilih jumlah cluster yang optimal adalah dengan memilih jumlah cluster yang terletak pada “elbow” dalam intertia plot, dimana nilai inertia mulai menurun secara perlahan. Kembali ke contoh plot inertia tadi, dapat dilihat bahwa jumlah cluster yang optimal adalah K = 3.

Praktek

Sekarang, kita akan mencoba membuat inertia plot untuk melihat apakah K = 5 merupakan jumlah cluster yang optimal. Untuk membuat inertia plot ini, kita akan memanfaatkan fungsi looping (for).

1. Pertama — tama, buatlah sebuah list kosong bernama ‘inertia’. List ini akan kita gunakan untuk menyimpan nilai inertia dari setiap nilai K.

2. Gunakan for untuk membuat looping dengan range 1–10. Sebagai index looping, kita akan gunakan k

3. Di dalam fungsi looping, deklarasikan KMeans() dengan nama cluster_model dengan n_cluster = k, dan random_state = 24

4. Gunakan fungsi .fit() dari cluster_model pada ‘X’

5. Dari cluster_model yang sudah di-fit ke dataset, dapatkan nilai inertia dengan inertia_ dan deklarasikan sebagai inertia_value

6. Append inertia_value ke dalam list ‘inertia’

7. Setelah iterasi/looping selesai, plotlah list ‘inertia’ tadi sebagai ordinat-nya dengan absica-nya adalah range(1, 10).

Langkah langkah penerapan machine learning dalam python?

Dari plot yang kita hasilkan ini, bisa disimpulkan bahwa jumlah cluster yang optimal adalah 5.

Langkah langkah penerapan machine learning dalam python?

Project dari Senja

Saatnya kita mulai mengerjakan proyek. Dalam proyek ini, divisi e-commerce kita ingin memprediksi apakah user- user yang sedang mengunjungi halaman website yang baru akan mengklik banner promo (ads) di halaman tersebut atau tidak berdasarkan feature yang ada. Nah, tugas kita di sini adalah membuat machine learning model untuk menyelesaikan permasalahan dari e-commerce ini.

Case Study: Promos for our e-commerce — Part 1

Pertama-tama, kita membuat machine learning model untuk menyelesaikan permasalahan dari e-commerce divisi kantor. Adapun feature — feature dalam dataset ini adalah:

· ‘Daily Time Spent on Site’ : lama waktu user mengunjungi site (menit)

· ‘Age’ : usia user (tahun)

· ‘Area Income’ : rata — rata pendapatan di daerah sekitar user

· ‘Daily Internet Usage’ : rata — rata waktu yang dihabiskan user di internet dalam sehari (menit)

· ‘Ad Topic Line’ : topik/konten dari promo banner

· ‘City’ : kota dimana user mengakses website

· ‘Male’ : apakah user adalah Pria atau bukan

· ‘Country’ : negara dimana user mengakses website

· ‘Timestamp’ : waktu saat user mengklik promo banner atau keluar dari halaman website tanpa mengklik banner

· ‘Clicked on Ad’ : mengindikasikan user mengklik promo banner atau tidak (0 = tidak; 1 = klik).

Langkah pertama yang akan kita lakukan yaitu melakukan eksplorasi data dengan .head(), .info(), .describe(), dan .shape.

Langkah langkah penerapan machine learning dalam python?

Jika dilihat dari data infonya, ternyata dataset tersebut sama sekali tidak memiliki nilai null. Jadi, kita bisa langsung masuk ke tahap selanjutnya.

Langkah langkah penerapan machine learning dalam python?

Case Study: Promos for our e-commerce — Part 2

Sekarang, mari kita lanjut dengan ekplorasi data untuk langkah ke-2 dan ke-3, yaitu:

· Data eksplorasi dengan dengan mengecek korelasi dari setiap feature menggunakan fungsi .corr()

Langkah langkah penerapan machine learning dalam python?

Setelah diamati, ternyata korelasi antara variabel-variabelnya banyak yang tidak begitu kuat sehingga kita bisa menggunakan algorithm Logistic Regression untuk membuat modelnya.

Langkah langkah penerapan machine learning dalam python?

· Data eksplorasi dengan mengecek distribusi label menggunakan fungsi .groupby() dan .size().

Langkah langkah penerapan machine learning dalam python?

Ternyata, jumlah user yang melakukan klik dengan yang tidak melakukan klik memiliki jumlah yang seimbang, yaitu sama-samaa berjumlah 500.

Langkah langkah penerapan machine learning dalam python?

Case Study: Promos for our e-commerce — Part 3

Kita akan lanjut dengan mengeksplorasi data dengan visualisasi melalui tahap — tahap ini:

· Melakukan eksplorasi data dengan visualisasi, dimana jumlah user dibagi ke dalam rentang usia menggunakan histogram (.hist()). Gunakan bins = data.Age.nunique() sebagai argumen, dimana .nunique() akan menghitung jumlah data untuk setiap usia (Age). Gunakan .pairplot() dari seaborn untuk menggambarkan hubungan setiap feature.

Langkah langkah penerapan machine learning dalam python?

Dari histogram yang sudah kita buat ini, bisa kita simpulkan bahwa jumlah user yang paling banyak melakukan klik adalah mereka yang usianya 31 tahun, disusul dengan user yang berusia 36 tahun. Jumlah user ini umumnya akan semakin berkurang untuk usia di atas 40 tahun.

Langkah langkah penerapan machine learning dalam python?

Output dari langkah #4a.

Langkah langkah penerapan machine learning dalam python?

Output dari langkah #4b.

Case Study: Promos for our e-commerce — Part 4

Setelah melakukan eksplorasi data, kita akan mengecek apakah terdapat missing value dari data. Jika terdapat missing value, bisa diatasi dengan treatment seperti didrop atau diimputasi. Jika tidak, maka kita bisa lanjutkan ke langkah berikutnya.

Langkah langkah penerapan machine learning dalam python?

Ternyata, missing valuenya tidak ada sama sekali. Jadi, kita bisa lanjut ke langkah berikutnya!

Langkah langkah penerapan machine learning dalam python?

Case Study: Promos for our e-commerce — Part 5

Setelah mengecek missing value, kita akan membuat pemodelan dengan Logistic Regression dengan cara seperti berikut:

· Melakukan pemodelan dengan Logistic Regression, gunakan perbandingan 80:20 untuk training vs testing

· Deklarasikan data ke dalam X dengan mendrop feature/variabel yang bukan numerik (type = object) dari data, karena Logistic Regression hanya dapat memproses numerik variabel. Assign Target/Label feature sebagai y

· Split X dan y ke dalam training dan testing dataset. Gunakan perbandingan 80:20 dengan random_state = 42

· Assign classifier sebagai logreg, kemudian fit classifier ke X_train dan predict dengan X_test. Print evaluation score nya.

Langkah langkah penerapan machine learning dalam python?

Dari teknis evaluasi permorfance yang kita lakukan ini, ternyata nilai accuracynya untuk data Training dan Testing adalah sama, yaitu 0.9. Tapi, kita masih belum mengetahui bagaimana performansi model jika menggunakan confusion matrix dan classification report. Kita akan gunakan kedua metrik ini di bagian selanjutnya,

Langkah langkah penerapan machine learning dalam python?

Case Study: Promos for our e-commerce — Part 6

Yeay, ngga kerasa sekarang kita sudah masuk ke langkah terakhir dari project ini. Di tahap ini, kita akan cek performansi modelnya menggunakan confusion matrix dan classification report.

Langkah langkah penerapan machine learning dalam python?

Hasil:

Langkah langkah penerapan machine learning dalam python?

Quiz Answer

Berdasarkan hasil evaluasi yang kita lakukan, bisa kita simpulkan bahwa model yang kita buat sudah sangat baik dalam memprediksi user yang akan mengklik website atau tidak. Hal tersebut dapat dilihat dari nilai accuracy = 0.90; dimana dataset memiliki jumlah label yang seimbang (balance class), sehingga evaluasi performansi dapat menggunakan metrik Accuracy.

Penutup/Kesimpulan

Congratulations! Akhirnya selesai satu lagi modul Machine Learning With Python For Beginner. Berdasarkan materi-materi yang telah kupelajari dan praktekkan dalam modul ini, aku telah mendapatkan pengetahuan (knowledge) dan praktek (skill) yang diantaranya

  • Memahami apa itu machine learning dengan jenisnya untuk pemodelan
  • Memahami dan mampu melakukan Eksplorasi Data & Data Pre-processing
  • Memahami dan mampu melakukan proses-proses Pemodelan dengan Scikit-Learn
  • Memahami dan mampu melakukan proses-proses pemodelan dengan menggunakan algoritma pada Supervised Learning
  • Memahami dan mampu melakukan proses-proses pemodelan dengan menggunakan algoritma pada Unsupervised Learning
  • Mengerjakan mini project yang merupakan integrasi keseluruhan materi dan tentunya materi-materi pada modul-modul sebelumnya untuk menyelesaikan persolan bisnis

_________________________________________________________________

Oke, kalau begitu sekian dulu pembahasan kita kali ini. Terima kasih atas kesediaan kalian dan waktu yang telah diluangkan untuk membaca tulisan ini. Semoga bermanfaat! Happy Weekend! Sampai Jumpa lagi di next topic

Referensi:

Machine Learning With Python For Beginner

Jelaskan mengenai langkah langkah penerapan machine learning dalam python?

Ini Dia Langkah-Langkah Penerapan Machine Learning Python.
Identifikasi Masalahmu..
Mengumpulkan dan Mempersiapkan Data..
3. Seleksi Algoritma Untuk Solusi..
4. Evaluasi dan Perbaikan Terhadap Model..
Yuk, BELAJAR MACHINE LEARNING GRATIS BERSAMA DQLAB SELAMA 1 BULAN!.

Langkah langkah proses dalam machine learning?

Setidaknya, ada empat langkah data processing dalam machine learning..
Pembersihan data. Sebagai langkah awal, Anda harus melakukan pembersihan data terlebih dahulu. ... .
Penggabungan data. Selanjutnya, Anda bisa melakukan integrasi atau menggabungkan sejumlah data di sebuah data set. ... .
Pengubahan bentuk data. ... .
Pengurangan data..

Machine learning menggunakan bahasa apa?

Python, Bahasa Pemrograman untuk Machine Learning Python adalah salah satu bahasa pemrograman yang dianggap sebagai opsi paling tepat untuk seluruh proyek Artificial Intelligence (AI), termasuk machine learning.

Machine learning belajar tentang apa?

Istilah machine learning pada dasarnya adalah proses komputer untuk belajar dari data (learn from data). Tanpa adanya data, komputer tidak bisa belajar apa-apa. Oleh karena itu, jika kita ingin belajar machine learning, pasti akan berinteraksi dan terlibat dengan data.