🍋Polynomial Regression

Regresi Polinomial

Pengantar

Regresi Polynomial adalah bentuk yang lebih kompleks dari regresi linear yang digunakan untuk memodelkan hubungan antara variabel independen (prediktor) dan variabel dependen (yang ingin diprediksi) dengan menggunakan polinomial sebagai fungsi pendugaan. Regresi polinomial memungkinkan kita untuk menangkap hubungan yang lebih kompleks antara variabel-variabel ini daripada regresi linear sederhana yang hanya menggunakan garis lurus.

Fungsi regresi polinomial memiliki bentuk berikut:

Y=β0+β1X+β2X2+β3X3++βnXnY = \beta_0 + \beta_1X + \beta_2X^2 + \beta_3X^3 + \ldots + \beta_nX^n

Di sini:

  • Y adalah variabel dependen yang ingin diprediksi.

  • X adalah variabel independen (prediktor).

  • β0,β1,β2,,βn\beta_0, \beta_1, \beta_2, \ldots, \beta_n adalah koefisien regresi yang harus diestimasi dari data.

  • nn adalah derajat tertinggi dari polinomial yang digunakan (biasanya bilangan bulat positif).

Beberapa hal yang perlu diperhatikan tentang regresi polinomial:

  1. Derajat Polinomial: Derajat polinomial nn adalah parameter yang perlu ditentukan. Nilai nn mengontrol sejauh mana model dapat menyesuaikan data. Nilai nn yang lebih tinggi dapat menghasilkan model yang lebih fleksibel, tetapi juga berisiko overfitting.

  2. Overfitting: Regresi polinomial dengan derajat yang tinggi dapat rentan terhadap overfitting, yaitu ketika model terlalu baik dalam menyesuaikan data pelatihan tetapi kurang baik dalam membuat prediksi pada data baru.

  3. Validasi Model: Penting untuk melakukan validasi model untuk memilih derajat polinomial yang sesuai. Teknik seperti validasi silang (cross-validation) dapat digunakan untuk mengevaluasi kinerja model pada data yang tidak digunakan selama pelatihan.

  4. Plotting Data: Visualisasi data dengan plot dapat membantu dalam memahami apakah hubungan antara variabel independen dan dependen memiliki bentuk polinomial.

  5. Interpretasi Koefisien: Interpretasi koefisien dalam regresi polinomial menjadi lebih rumit dengan meningkatnya derajat polinomial. Ini membuatnya kurang intuitif dibandingkan dengan regresi linear sederhana.

Regresi polinomial berguna ketika hubungan antara variabel tidak linear dan tidak dapat dijelaskan dengan baik oleh model linear sederhana. Dengan memilih derajat polinomial yang tepat dan melakukan validasi model yang baik, regresi polinomial dapat menjadi alat yang kuat dalam pemodelan data yang kompleks.

Selanjutnya kita buat kedalam code python berdasar dari data test dan data training yang sebelumnya telah dibuat seperti berikut,

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# Data training
X_train = np.array([
    [6, 2],
    [8, 1],
    [10, 0],
    [14, 2],
    [18, 3]
])
y_train = np.array([7, 9, 13, 17.5, 18])

# Data testing
X_test = np.array([
    [8, 2],
    [9, 0],
    [11, 2],
    [16, 2],
    [12, 0]
])
y_test = np.array([11, 8.5, 15, 18, 11])

# Inisialisasi model Linear Regression
model = LinearRegression()

# Membentuk polinomial fitur
poly = PolynomialFeatures(degree=2)  # Ganti degree sesuai dengan derajat polinomial yang diinginkan
X_train_poly = poly.fit_transform(X_train)
X_test_poly = poly.transform(X_test)

# Melatih model dengan data training
model.fit(X_train_poly, y_train)

# Melakukan prediksi dengan data testing
y_pred = model.predict(X_test_poly)

# Menghitung R-squared (R2) dari model terlatih
r2 = r2_score(y_test, y_pred)

# Plot hasil regresi
plt.scatter(X_test[:, 0], y_test, color='blue', label='Data Testing')
plt.scatter(X_test[:, 0], y_pred, color='red', label='Prediksi')
plt.title('Grafik Polynomial Regression')
plt.xlabel('Diameter Pizza (inci)')
plt.ylabel('Harga Pizza (dolar)')
plt.legend()
plt.show()

# Menampilkan nilai R-squared
print(f"R-squared (R2): {r2:.2f}")

Hasilnya,

R-squared (R2): 0.34

Grafik pada gambar adalah grafik Polynomial Regression yang menggambarkan hubungan antara diameter pizza (inci) dan harga pizza (dolar) berdasarkan model Polynomial Regression yang telah dilatih dengan data training.

Penjelasan grafik:

  • Data Testing (biru): Titik-titik biru dalam grafik mewakili data testing yang digunakan untuk menguji model. Setiap titik biru memiliki dua koordinat, yaitu diameter pizza (sumbu x) dan harga pizza yang sebenarnya (sumbu y).

  • Prediksi (merah): Titik-titik merah dalam grafik mewakili hasil prediksi harga pizza oleh model Polynomial Regression. Setiap titik merah memiliki koordinat yang sama dengan diameter pizza (sumbu x), tetapi nilai y adalah prediksi harga pizza yang dihasilkan oleh model.

  • Hubungan Non-linear: Perhatikan bahwa bentuk hubungan antara diameter pizza dan harga pizza dalam grafik adalah non-linear. Ini adalah karakteristik utama dari regresi polinomial, yang memungkinkan model untuk menyesuaikan pola yang lebih kompleks daripada regresi linear sederhana.

  • Derajat Polinomial: Bentuk hubungan ini ditentukan oleh derajat polinomial yang digunakan dalam model. Dalam contoh ini, derajat polinomial adalah 2, sehingga model Polynomial Regression menggunakan polinomial kuadrat untuk menyesuaikan data.

  • Evaluasi Model: Nilai R2R^2 (R-squared) digunakan untuk mengukur sejauh mana model Polynomial Regression cocok dengan data testing. Semakin dekat titik-titik merah ke titik-titik biru (data testing), semakin baik model dalam menjelaskan data. Nilai R2R^2 yang tinggi menunjukkan bahwa model memiliki kemampuan yang baik dalam menjelaskan variasi dalam data.

Grafik ini membantu dalam memvisualisasikan bagaimana model Polynomial Regression memprediksi harga pizza berdasarkan diameter pizza dan menunjukkan sejauh mana model sesuai dengan data testing yang sebenarnya.

Last updated