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. 🚀
Posting Komentar