Regresi Linear

Apa itu Regresi Linear?

Regresi linear adalah metode statistik yang digunakan untuk memodelkan hubungan antara variabel independen dan variabel dependen. Model regresi linear dapat diterapkan pada berbagai bidang, termasuk machine learning. Dalam artikel ini, saya akan menjelaskan konsep regresi linear dan bagaimana ia digunakan di machine learning.

Konsep Dasar Regresi Linear Sederhana

Regresi linear sederhana merupakan bentuk regresi yang sederhana dan paling umum. Model ini mengasumsikan bahwa hubungan antara variabel dependen dan independen adalah linear, artinya jika variabel independen berubah sebesar satu satuan, maka variabel dependen akan berubah sebesar koefisien regresi yang ditentukan. Konsep ini dapat dijelaskan dengan persamaan regresi linear sederhana berikut:

$$y = a + bx.$$

Dimana $y$ adalah variabel dependen, $x$ adalah variabel independen, $a$ adalah nilai awal atau titik potong (nilai $y$ ketika $x=0$), dan $b$ adalah koefisien regresi (perubahan nilai $y$ yang dihasilkan oleh perubahan nilai $x$ sebesar satu satuan).


Ilustrasi

Dalam model regresi linear sederhana, tujuan kita adalah untuk menentukan nilai $a$ dan $b$ yang paling tepat atau dengan kata lain meminimalkan error seperti contoh pada gambar di atas sehingga garis regresi linear dapat dengan baik menjelaskan hubungan antara variabel dependen dan independen.

Aplikasi Regresi Linear di Machine Learning

Regresi linear sangat berguna dalam machine learning karena memungkinkan kita untuk memprediksi nilai variabel dependen berdasarkan nilai variabel independen yang diberikan. Sebagai contoh, kita dapat menggunakannya untuk memprediksi harga rumah berdasarkan luas tanah atau memprediksi kinerja karyawan berdasarkan jumlah proyek yang dikerjakan.

Dalam machine learning, kita dapat menggunakan regresi linear sebagai model prediksi dengan cara mempelajari data latih yang telah diberikan. Model regresi linear dapat dilatih dengan meminimalkan selisih antara nilai prediksi dan nilai sebenarnya.

Regresi Linear

Pada dunia nyata, banyak sekali variabel independen yang mempengaruhi satu variabel dependen sehingga pada pengaplikasian regresi linear pada machine learning bukan menggunakan regresi linear sederhana (satu variabel dependen dan satu variabel independen) melainkan regresi linear umum yang berbentuk sebagai berikut :

$$y=\beta_0+\beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 + … + \beta_n x_n$$

atau

$$y=\beta_0 + \sum\limits_{i=1}^n{\beta_i x_i}.$$

Untuk minimalkan error salah satu caranya adalah dengan metode kuadrat terkecil (least squares). Pada metode ini, misalkan pasangan $(x_i, y_i)$ memenuhi persamaan

$$y_i = \beta_0 + \sum\limits_{i=1}^n{\beta_i x_i} + \epsilon$$

dengan $\epsilon$ adalah error. Kita ingin meminimalkan error sehingga persamaan di atas dapat diubah menjadi

$$ \epsilon = y_i - (\beta_0 + \sum\limits_{i=1}^n{\beta_i x_i}).$$

Misalkan $Y=[y_1,\, y_2,\, y_3,\, …,\, y_n]$, $X=[1,\, x_1,\, x_2,\, …,\, x_n]$, dan $\vec{\beta} = [\beta_0,\, \beta_1,\, \beta_2,\, …,\, \beta_n]$, maka persamaan di atas dapat diubah menjadi persamaan vektor yaitu:

$$\epsilon = Y-\vec{\beta}X.$$

Kita ingin meminimalkan error sehingga kita dapat meminimalkan jarak $L(Y,\vec{\beta})=||Y-\vec{\beta}X||^2$.

$$
\begin{align}
\dfrac{\partial L(Y,\vec{\beta})}{\partial \vec{\beta}} &= \dfrac{\partial(||Y-\vec{\beta}X||^2)}{\partial \vec{\beta}} \\
0 &= \dfrac{\partial(Y^TY-Y^TX\vec{\beta}-\vec{\beta}^TX^TY+\vec{\beta}^TX^TX\vec{\beta})}{\partial \vec{\beta}} \\
0 &= -2X^TY+2X^TX\vec{\beta} \\
\vec{\hat{\beta}} &= (X^TX)^{-1}X^TY
\end{align}
$$

Dengan menggunakan $\vec{\hat{\beta}}$ pada hasil di atas, kita dapat membuat persamaan garis regresi linear dengan error yang minimum.

Regresi Linear dengan Python

Pada penjelasan sebelumnya, kita sudah mencari secara matematik bagaimana cara mendapatkan persamaan garis regresi linear dengan error yang minimum. Pada bagian ini, kita akan langsung menggunakan library Scikit-Learn di Python yang sudah menyediakan model regresi linear. Unduh dataset di sini.

Untuk implementasi Regresi Linier dengan python tanpa pusataka scikit-learn dapat di lihat di sini https://github.com/yudopr11/simple-ml.

# import library yang dibutuhkan
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# membaca data
data = pd.read_csv('data.csv')

# memisahkan variabel independen dan dependen
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values

# membagi data menjadi data latih dan data uji
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# membuat objek model regresi linear
regressor = LinearRegression()

# melatih model pada data latih
regressor.fit(X_train, y_train)

# membuat prediksi pada data uji
y_pred = regressor.predict(X_test)

# visualisasi hasil prediksi
plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_pred, color='blue')
plt.title('Gaji vs. Tahun Pengalaman (Data Uji)')
plt.xlabel('Tahun Pengalaman')
plt.ylabel('Gaji')
plt.show()


Hasil Python

Dalam contoh ini, data yang digunakan adalah data mengenai gaji dan tahun pengalaman karyawan. Setelah membaca data, variabel independen (tahun pengalaman) dan dependen (gaji) dipisahkan. Selanjutnya, data dibagi menjadi data latih dan data uji dengan perbandingan 80 : 20 menggunakan library Scikit-Learn. Objek model regresi linear dibuat menggunakan library Scikit-Learn dan dilatih pada data latih. Kemudian, model digunakan untuk membuat prediksi pada data uji dan hasilnya divisualisasikan pada sebuah grafik.

Kesimpulan

Dari artikel ini, kita dapat menyimpulkan bahwa regresi linear adalah salah satu teknik analisis data yang digunakan untuk mempelajari hubungan antara dua variabel atau lebih. Model regresi linear mengasumsikan hubungan linier antara variabel independen dan dependen.

Pendekatan least squares digunakan untuk menentukan koefisien garis regresi linear pada model regresi linear yang dapat digunakan untuk memprediksi nilai variabel dependen untuk setiap nilai variabel independen yang diberikan.

Dalam machine learning, model regresi linear dapat digunakan untuk membangun model prediksi sederhana berdasarkan satu variabel independen. Contohnya, model ini dapat digunakan untuk memprediksi gaji berdasarkan tahun pengalaman seorang karyawan.

Python dan library Scikit-Learn dapat digunakan untuk mengimplementasikan model regresi linear pada data nyata dan melakukan prediksi dengan model tersebut.

Referensi

Montgomery, D. C., Peck, E. A., & Vining, G. G. (2012, April 9). Introduction to Linear Regression Analysis (Vol. 821).
sklearn.linear_model.LinearRegression. (n.d.). Scikit-learn. https://scikit-learn/stable/modules/generated/sklearn.linear_model.LinearRegression.html.