Pertemuan 7: Linear Regression dengan Scikit-learn

Tujuan Pembelajaran

Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu menerapkan konsep dan keterampilan berikut secara mandiri.

  • Membagi data menjadi data latih dan data uji.
  • Melatih model Linear Regression dengan Scikit-learn.
  • Mengevaluasi model menggunakan MSE dan R-squared.
  • Memprediksi nilai untuk data baru.

Alur Scikit-learn konsisten untuk semua model: siapkan matriks fitur X dan vektor target y, pisahkan menjadi data latih dan uji, buat objek model, panggil fit untuk melatih, lalu predict untuk menebak. Memahami alur ini memudahkan kita berpindah dari satu algoritma ke algoritma lain.Menjelaskan mengapa hasil evaluasi pada data uji lebih jujur daripada pada data latih: model bisa menghafal data latih, padahal tujuannya adalah memprediksi data baru yang belum pernah dilihat.

Pembagian Data Latih dan Uji

Data uji digunakan untuk menilai kemampuan model pada data yang belum pernah dilihat, sehingga hasilnya lebih jujur. Parameter test_size menetapkan proporsi data uji dan random_state membuat pembagian konsisten setiap dijalankan.Menekankan pentingnya menafsirkan metrik, bukan sekadar mencetaknya. MSE mencapai nilai nol hampir mustahil dan tidak selalu buruk; yang penting adalah tren kesalahan yang wajar sesuai skala data.

from sklearn.model_selection import train_test_split

X = df[["JamBelajar"]]
y = df["Nilai"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print("Data latih:", len(X_train))
print("Data uji:", len(X_test))

Melatih Linear Regression

Objek LinearRegression mencari garis terbaik dengan meminimalkan jumlah kuadrat kesalahan prediksi. Setelah fit, atribut coef_ memberi kemiringan garis dan intercept_ memberi titik potongnya.

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)

print("Slope:", model.coef_)
print("Intercept:", model.intercept_)

Evaluasi dengan MSE dan R2

Mean Squared Error (MSE) adalah rata-rata kuadrat selisih prediksi dan nilai sebenarnya; makin kecil makin baik. R-squared menunjukkan proporsi variansi yang dijelaskan model, dengan nilai 1 berarti prediksi sempurna dan nilai 0 berarti setara tebakan rata-rata.

from sklearn.metrics import mean_squared_error, r2_score

y_pred = model.predict(X_test)
print("MSE:", mean_squared_error(y_test, y_pred))
print("R2:", r2_score(y_test, y_pred))

Memprediksi Nilai Baru

Model yang sudah dilatih dapat dipakai memprediksi data baru. Bentuk input harus cocok dengan bentuk saat pelatihan, yaitu matriks satu baris berisi satu kolom fitur.

prediksi = model.predict([[4.5]])
print("Prediksi nilai untuk 4.5 jam:", prediksi[0])

Langkah Praktik

Gunakan dataset JamBelajar dan Nilai Anda sendiri agar hasil prediksi terasa lebih realistis dan dapat diverifikasi secara intuitif.

  • Siapkan dataset JamBelajar dan Nilai minimal 30 baris.
  • Bagi data 80% latih dan 20% uji dengan random_state=42.
  • Latih LinearRegression lalu cetak koefisien dan intercept.
  • Evaluasi pada data uji dengan MSE dan R2 lalu tafsirkan.
  • Gambar scatter data asli beserta garis prediksi.

Jangan berhenti pada mencetak metrik; tafsirkan apakah garis prediksi masuk akal dan berapa besar kesalahannya pada data uji.

Latihan

Latihan regresi menuntut Anda menafsirkan metrik, bukan sekadar menjalankan kode. Sertakan interpretasi hasil pada setiap jawaban.

  • Jelaskan fungsi data uji dan mengapa data uji tidak boleh dipakai untuk melatih model.
  • Apa arti nilai R2 sebesar 0.82 pada hasil regresi?
  • Buat model prediksi harga rumah (fitur luas, target harga) lalu laporkan MSE dan R2.
No Comment! Be the first one.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *