Membangun Model Klasifikasi Klasik Menggunakan Logistic Regression pada Dataset Iris

Dalam dunia Machine Learning, klasifikasi adalah salah satu permasalahan yang paling sering dijumpai. Salah satu algoritma paling mendasar namun sangat kuat untuk menyelesaikan masalah klasifikasi biner (dua kelas) adalah Logistic Regression.

Pada artikel kali ini, kita akan membedah secara mendalam kode Python yang mendeteksi apakah sebuah bunga Iris termasuk ke dalam spesies Setosa atau bukan, menggunakan pustaka populer scikit-learn.

1. Source Code Lengkap (Python)

Berikut adalah kodingan lengkap yang kita gunakan untuk memproses data, melatih model, hingga mengevaluasi performanya:

#Import library

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix

# Loaad dataset
iris = load_iris()
x = iris.data
y = (iris.target == 0).astype(int) # 1 jika Setosa, 0 jika bukan

#Split data
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=42)

# Inisialisasi dan latih model
model = LogisticRegression()
model.fit(x_train, y_train)

# Prdiksi
y_pred = model.predict(x_test)
y_proba = model.predict_proba(x_test)[:, 1] #Probabilitas kelas 1

#Evaluasi
print("Cnfusion Matrix:")
print(confusion_matrix(y_test, y_pred))

print("\nClassification Report:")
print(classification_report(y_test, y_pred))

# Menampilkan koefisien dan intercept
print("\nKoefisien (Beta):", model.coef_)
print("Intercept (Beta_0):", model.intercept_)

2. Output Terminal

Ketika kode di atas dijalankan, berikut adalah hasil output performa model kita:



3. Penjelasan Detail Baris per Baris

Mari kita bedah alur logika kodingan ini agar lebih mudah dipahami:

A. Transformasi Target Biner

Secara bawaan, dataset Iris memiliki 3 kelas target: Setosa (0), Versicolor (1), dan Virginica (2). Di baris ini:


Kita mengubahnya menjadi Klasifikasi Biner. Semua bunga Setosa (0) diubah nilainya menjadi 1, sedangkan spesies lainnya otomatis menjadi 0. Model kita kini hanya fokus menjawab: "Apakah bunga ini Setosa?"

B. Pembagian Data (Train-Test Split)

Kita menyisihkan 30% data (test_size=0.3) sebagai data ujian (x_test & y_test) untuk menguji seberapa pintar model kita nantinya setelah belajar dari 70% data training. random_state=42 memastikan hasil pembagian data selalu konsisten tiap kali kode dijalankan.

Kesimpulan

Model Logistic Regression terbukti sangat efektif dan efisien untuk memisahkan jenis bunga Iris Setosa secara linear dari jenis lainnya dengan tingkat akurasi yang absolut pada dataset pengujian ini.



Komentar

Postingan Populer