Konten [Tampil]

 

Membangun Model Prediksi dengan Scikit-Learn: Panduan Lengkap

Pendahuluan

Scikit-Learn adalah pustaka Machine Learning populer di Python yang menyediakan berbagai alat untuk membangun model prediksi. Artikel ini akan memberikan panduan lengkap untuk membangun model prediksi menggunakan Scikit-Learn, mulai dari persiapan data hingga evaluasi model.

1. Instalasi dan Persiapan

Pastikan Anda telah menginstal pustaka berikut:

pip install numpy pandas scikit-learn matplotlib seaborn

Import pustaka yang diperlukan:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score

2. Memuat Dataset

Gunakan dataset contoh dari Scikit-Learn:

from sklearn.datasets import load_diabetes

data = load_diabetes()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target

# Melihat 5 baris pertama
df.head()

3. Exploratory Data Analysis (EDA)

Sebelum membuat model, kita perlu memahami data.

sns.pairplot(df, diag_kind='kde')
plt.show()

Cek korelasi antar fitur:

plt.figure(figsize=(10,6))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()

4. Membagi Data untuk Pelatihan dan Pengujian

Pisahkan data menjadi training set dan testing set:

X = df.drop(columns=['target'])
y = df['target']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

5. Membuat Model Machine Learning

Kita akan menggunakan Linear Regression dan Random Forest untuk membandingkan performa model:

# Model Linear Regression
lr_model = LinearRegression()
lr_model.fit(X_train, y_train)

# Model Random Forest
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)

6. Evaluasi Model

Setelah model dilatih, lakukan prediksi dan evaluasi:

def evaluate_model(model, X_test, y_test):
    y_pred = model.predict(X_test)
    mae = mean_absolute_error(y_test, y_pred)
    mse = mean_squared_error(y_test, y_pred)
    rmse = np.sqrt(mse)
    r2 = r2_score(y_test, y_pred)
    print(f'MAE: {mae}')
    print(f'MSE: {mse}')
    print(f'RMSE: {rmse}')
    print(f'R2 Score: {r2}')

print("Evaluasi Linear Regression:")
evaluate_model(lr_model, X_test, y_test)

print("\nEvaluasi Random Forest:")
evaluate_model(rf_model, X_test, y_test)

7. Visualisasi Hasil Prediksi

Buat grafik perbandingan antara nilai aktual dan prediksi:

def plot_predictions(y_test, y_pred, title):
    plt.scatter(y_test, y_pred, alpha=0.5)
    plt.xlabel("Actual Values")
    plt.ylabel("Predicted Values")
    plt.title(title)
    plt.show()

plot_predictions(y_test, lr_model.predict(X_test), "Linear Regression Predictions")
plot_predictions(y_test, rf_model.predict(X_test), "Random Forest Predictions")

Kesimpulan

Dalam artikel ini, kita telah membangun model prediksi menggunakan Scikit-Learn dengan Linear Regression dan Random Forest. Evaluasi menunjukkan bahwa pemilihan model yang tepat bergantung pada karakteristik data.

Cobalah model lain seperti Gradient Boosting atau Support Vector Machine (SVM) untuk meningkatkan akurasi prediksi Anda. 🚀

Post a Comment

Lebih baru Lebih lama