Implementasi Regresi Logistik menggunakan Python
Table of Contents
Pemodelan Regresi Logistik - This article is part of a series.
Setelah memahami dasar-dasar teoritis Regresi Logistik, sekarang saatnya untuk menerapkannya menggunakan Python. Langkah-langkah implementasi ini melibatkan beberapa tahap kunci, dari pemrosesan data hingga evaluasi performa model. Berikut adalah rincian lebih lanjut tentang setiap tahapan implementasi:
A. Persiapan Data #
Sebelum kita dapat melatih model, data harus diproses dan disiapkan dengan cermat. Proses ini mencakup langkah-langkah seperti memuat dataset, menangani nilai yang hilang, dan membagi data menjadi set pelatihan dan pengujian. Selain itu, kita perlu memastikan bahwa variabel kategori dikodekan dengan benar dan melakukan skala fitur jika diperlukan. Persiapan data yang baik memberikan dasar yang solid untuk pembangunan model yang akurat dan dapat diandalkan.
1. Memuat Data #
Menggunakan library seperti pandas untuk memuat dataset yang akan digunakan untuk pelatihan dan pengujian model.
import pandas as pd
# Memuat data
data = pd.read_csv('nama_file.csv')
Penjelasan kode:
-
import pandas as pd
: Baris pertama adalah impor library pandas dan memberikan alias sebagai pd. Library ini sangat umum digunakan untuk manipulasi dan analisis data di Python. Dengan memberikan alias, kita bisa menggunakan pd sebagai singkatan saat memanggil fungsi atau metode dari library ini. -
data = pd.read_csv('nama_file.csv')
: Baris ini menggunakan fungsi read_csv dari Pandas untuk memuat data dari file CSV ke dalam suatu objek DataFrame, yang merupakan struktur data tabular yang sangat berguna. Fungsi ini mengasumsikan bahwa data kita tersimpan dalam format CSV dan berada dalam file dengan nama ’nama_file.csv’. Jika data Kamu dalam format yang berbeda atau disimpan di file dengan nama lain, Kamu perlu menyesuaikan nama file dan format baca yang sesuai.
Dengan menggunakan potongan kode ini, kita dapat dengan mudah membaca data dari file CSV ke dalam Python dan mengaksesnya melalui objek DataFrame data.
2. Pemrosesan Data #
Melakukan pemrosesan data, termasuk penanganan missing values, encoding variabel kategori, dan pembagian data menjadi set pelatihan dan pengujian.
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Pemrosesan data
# ...
# Pembagian data
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
B. Pelatihan Model #
Setelah menyelesaikan tahap persiapan data, langkah berikutnya dalam implementasi Regresi Logistik adalah Pelatihan Model. Pada tahap ini, kita akan memilih model Regresi Logistik, menginisialisasi model tersebut, dan melatihnya menggunakan data pelatihan yang telah diproses sebelumnya. Pelatihan model adalah proses di mana model belajar dari pola dalam data untuk membuat prediksi yang optimal pada data yang belum pernah dilihat sebelumnya. Dengan mengenali pola ini, model dapat digunakan untuk membuat prediksi pada data baru. Pada bagian ini, kita akan membahas langkah-langkah penting untuk memulai pelatihan model Regresi Logistik menggunakan Python, mulai dari inisialisasi model hingga proses pelatihan yang sebenarnya.
1. Inisialisasi Model #
Menggunakan library seperti scikit-learn untuk membuat model Regresi Logistik.
from sklearn.linear_model import LogisticRegression
# Inisialisasi model
model = LogisticRegression()
Fungsi LogisticRegression
pada scikit-learn (sklearn) digunakan untuk membuat dan melatih model Regresi Logistik. Regresi Logistik adalah metode yang digunakan untuk memodelkan hubungan antara variabel independen dan variabel dependen biner. LogisticRegression
di skikit-learn mendukung berbagai opsi dan parameter yang memungkinkan pengguna menyesuaikan model sesuai kebutuhan mereka. Berikut adalah penjelasan tentang beberapa parameter utama yang dapat digunakan:
penalty
(default=’l2
’):
Parameter ini menentukan jenis regularisasi yang akan digunakan dalam pelatihan model. Regularisasi membantu mencegah overfitting. ’l2’ menggunakan regularisasi Ridge, sementara ’l1’ menggunakan regularisasi Lasso.
C
(default=1.0
):
Parameter ini mengontrol kekuatan regularisasi. Semakin kecil nilai C, semakin besar regularisasi. Jika Kamu ingin meningkatkan keakuratan model tetapi risiko overfitting, Kamu dapat mengurangi nilai C.
fit_intercept
(default=True
):
Menentukan apakah model akan memiliki perpotongan (intercept). Jika diatur ke False, model tidak akan memiliki perpotongan dan akan melewati (0,0) di ruang fitur.
solver
(default=’lbfgs
’):
Parameter ini menentukan algoritma yang digunakan untuk mendukung model. ‘lbfgs
’ sering digunakan untuk dataset yang relatif kecil, sedangkan ‘liblinear
’ lebih cocok untuk dataset yang lebih besar.
max_iter
(default=100
):
Jumlah iterasi maksimum yang digunakan oleh solver selama pelatihan. Jika solver belum konvergen setelah jumlah iterasi ini, pelatihan akan berhenti.
random_state
(default=None):
Seed untuk mengontrol keacakan selama inisialisasi bobot model. Memberikan nilai ini memastikan reproduktibilitas hasil ketika pelatihan model dilakukan ulang.
Dalam implementasi Regresi Logistik, inisialisasi model menjadi langkah awal yang penting. Pada contoh ini, kita menggunakan library scikit-learn untuk inisialisasi model Regresi Logistik. Scikit-learn (sklearn) adalah salah satu library machine learning yang paling populer dan komprehensif di Python. Ada beberapa alasan mengapa scikit-learn menjadi pilihan umum untuk inisialisasi model:
- Kemudahan Penggunaan:
Scikit-learn dirancang dengan antarmuka yang sederhana dan konsisten, membuatnya mudah digunakan untuk pemula sekalipun. Fokus pada kesederhanaan dan konsistensi membuat pengguna dapat dengan cepat beradaptasi dan memahami konsep-konsep dasar dalam machine learning.
- Beragam Algoritma:
Scikit-learn menyediakan berbagai algoritma machine learning yang siap pakai, termasuk Regresi Logistik. Ini memungkinkan pengguna memilih dan menerapkan model yang sesuai dengan kebutuhan dan karakteristik data mereka.
- Dokumentasi yang Kuat:
Library ini memiliki dokumentasi yang sangat baik dan beragam contoh penggunaan, memudahkan pengguna untuk belajar dan merujuk saat menghadapi masalah atau pertanyaan spesifik.
Namun, jika Kamu mencari alternatif, terdapat beberapa library machine learning lain yang dapat Kamu pertimbangkan:
- TensorFlow dan Keras:
TensorFlow adalah library machine learning yang sangat populer, dan Keras adalah high-level neural networks API yang dapat berjalan di atas TensorFlow. Keduanya menyediakan alat untuk membangun dan melatih model machine learning, termasuk Regresi Logistik.
- PyTorch:
PyTorch adalah library machine learning yang sangat populer, terutama di kalangan peneliti di bidang deep learning. PyTorch memberikan fleksibilitas yang tinggi dalam mendefinisikan dan melatih model, termasuk model Regresi Logistik.
- Statsmodels:
Statsmodels adalah library statistik yang menawarkan fungsi untuk menerapkan model statistik, termasuk Regresi Logistik. Statsmodels lebih fokus pada analisis statistik daripada machine learning, dan cocok untuk mereka yang mencari pendekatan yang lebih statistis.
Pilihan antara scikit-learn dan alternatifnya tergantung pada kebutuhan, preferensi, dan konteks spesifik proyek. Scikit-learn cocok untuk tugas umum dalam machine learning, sedangkan alternatifnya seperti TensorFlow dan PyTorch dapat memberikan kekuatan tambahan, terutama dalam konteks deep learning.
2. Pelatihan Model #
Pelatihan model adalah tahap penting dalam pengembangan Regresi Logistik di mana model belajar dari data pelatihan untuk membuat prediksi yang akurat pada data baru. Proses pelatihan melibatkan penyesuaian parameter model agar sesuai dengan data pelatihan, dan ini dilakukan dengan menggunakan algoritma optimasi seperti Stochastic Gradient Descent (SGD).
Langkah-langkah Pelatihan Model:
- Inisialisasi Parameter
Parameter model, seperti bobot (weights) dan bias, diinisialisasi secara acak atau menggunakan nilai awal tertentu.
- Hitung Prediksi
Dengan parameter yang diinisialisasi, model menghitung prediksi untuk setiap sampel pada data pelatihan.
- Hitung Fungsi Loss (Loss Function)
Fungsi loss (loss function) mengukur sejauh mana prediksi model menyimpang dari nilai sebenarnya pada data pelatihan. Tujuannya adalah untuk meminimalkan fungsi loss.
- Optimasi Parameter
Algoritma optimasi seperti SGD digunakan untuk menyesuaikan parameter model agar fungsi loss diminimalkan. Ini melibatkan perhitungan gradien fungsi loss terhadap parameter dan pembaruan parameter dengan langkah pembelajaran yang ditentukan.
- Iterasi
Langkah-langkah 2-4 diulangi sejumlah iterasi atau epoch sampai model mencapai kinerja yang memadai pada data pelatihan.
- Evaluasi pada Data Validasi
Model diuji pada dataset validasi untuk memastikan bahwa model tidak hanya mempelajari data pelatihan tetapi juga dapat melakukan prediksi yang umum pada data baru.
Library Scikit-learn menyediakan fungsi yang cukup sederhana untuk mengotomatisasi langkah-langkah di atas.
# Pelatihan model
model.fit(X_train, y_train)
Pada contoh ini, fungsi fit
digunakan untuk melatih model Regresi Logistik pada data pelatihan X_train
dan label y_train
. Setelah pelatihan selesai, model siap untuk membuat prediksi pada data pengujian atau data baru lainnya.
Metode fit
pada objek LogisticRegression
di scikit-learn digunakan untuk melatih model Regresi Logistik menggunakan data pelatihan. Saat Kamu memanggil metode fit
, model akan mengadaptasi bobotnya (koefisien dan intersep) berdasarkan data pelatihan sehingga dapat membuat prediksi yang sesuai dengan label yang diberikan. Berikut adalah penjelasan tentang beberapa aspek kunci dari metode fit:
fit(X, y, sample_weight=None)
-
X
: Matriks atau DataFrame fitur dengan dimensi (n_samples
,n_features
). Ini adalah data pelatihan yang digunakan untuk melatih model. -
y
: Vektor atau array berdimensi satu yang menyimpan label atau variabel dependen biner yang sesuai dengan setiap baris data dalamX
. -
sample_weight
: (Opsional) Digunakan untuk memberikan bobot khusus pada setiap sampel selama pelatihan. Ini dapat berguna jika ada kasus ketidakseimbangan kelas atau jika beberapa sampel dianggap lebih penting daripada yang lain.
Setelah model dilatih dengan memanggil metode fit
, parameter model seperti koefisien (coef_) dan intersep (intercept_) akan diestimasi dan disesuaikan untuk mencocokkan data pelatihan. Model yang telah dilatih dapat digunakan untuk membuat prediksi pada data baru.