๐Ÿค– KODING & KECERDASAN ARTIFISIAL โ€ข GOOGLE COLAB

Regression: Membuat Prediksi Angka

Belajar menggunakan Machine Learning untuk memprediksi nilai berupa angka. Kita mulai dari contoh sederhana: memprediksi harga rumah berdasarkan luas rumah, kemudian mencoba kasus lain seperti jam belajar โ†’ nilai dan umur kendaraan โ†’ harga.

Bagian 1

๐ŸŽฏ Tujuan Pembelajaran

Setelah mempelajari materi ini, siswa diharapkan mampu:

  1. Menjelaskan pengertian Regression dalam Machine Learning.
  2. Membedakan masalah prediksi angka dengan masalah klasifikasi kategori.
  3. Mengenali feature dan target pada sebuah dataset.
  4. Mempersiapkan dataset sederhana menggunakan Python.
  5. Membagi data menjadi data training dan testing.
  6. Membuat model Linear Regression menggunakan scikit-learn.
  7. Menggunakan model untuk membuat prediksi angka.
  8. Mengukur kesalahan prediksi dengan MAE dan Rยฒ secara sederhana.
  9. Membuat visualisasi hubungan data dan garis prediksi.
  10. Menjelaskan mengapa data training harus cukup mewakili kondisi sebenarnya.
Gagasan utama: Regression digunakan ketika target yang ingin diprediksi berupa angka, misalnya harga, nilai, jumlah penjualan, atau suhu.
Bagian 2

๐Ÿ“ˆ Apa itu Regression?

Regression adalah salah satu jenis masalah dalam Machine Learning yang digunakan untuk mempelajari hubungan antara data masukan dan nilai target berbentuk angka.

Contohnya:

๐Ÿ  Luas rumah โ†’ Harga rumahSemakin luas rumah, pada dataset tertentu harga dapat memiliki kecenderungan meningkat.
๐Ÿ“š Jam belajar โ†’ NilaiData historis dapat digunakan untuk mempelajari hubungan antara waktu belajar dan nilai.
๐Ÿš— Umur kendaraan โ†’ HargaModel dapat mempelajari hubungan antara umur kendaraan dan harga berdasarkan data yang tersedia.
๐Ÿ“ข Jumlah iklan โ†’ PenjualanData pengeluaran atau jumlah iklan dapat digunakan sebagai salah satu fitur untuk memprediksi penjualan.

Regression vs Classification

RegressionClassification
Target berupa angka.Target berupa kategori/kelas.
Contoh: prediksi harga = 450 juta.Contoh: lulus / tidak lulus.
Contoh: prediksi nilai = 82,5.Contoh: bunga Iris setosa / versicolor / virginica.
Trik mengingat: jika pertanyaannya โ€œberapa nilainya?โ€, sering kali kita sedang berhadapan dengan regression. Jika pertanyaannya โ€œtermasuk kategori apa?โ€, sering kali itu classification.
Bagian 3

๐Ÿ  Contoh Kasus: Prediksi Harga Rumah

Misalkan seorang peneliti memiliki data beberapa rumah. Setiap baris berisi luas rumah dan harga rumah.

Luas Rumah (mยฒ)Harga (juta rupiah)
40200
50250
60300
70350
80400
90450

Kita ingin menggunakan data tersebut untuk memperkirakan harga rumah dengan luas yang belum ada di dataset.

Misalnya: berapa perkiraan harga rumah dengan luas 75 mยฒ?

Data luas rumah
โ†’
Training model
โ†’
Masukkan 75 mยฒ
โ†’
Prediksi harga
Perlu diingat: model bukan โ€œmengetahuiโ€ harga rumah yang sebenarnya. Model hanya membuat perkiraan berdasarkan pola data yang diberikan.
Bagian 4

๐Ÿ“Š Dataset Sederhana

Dataset adalah kumpulan data yang digunakan untuk analisis atau pembelajaran model.

Untuk pembelajaran awal, kita dapat membuat dataset langsung menggunakan Python:

import pandas as pd

data = {
    "luas": [40, 50, 60, 70, 80, 90, 100, 110],
    "harga": [200, 250, 300, 350, 400, 450, 500, 550]
}

df = pd.DataFrame(data)

print(df)

Setelah kode dijalankan, df menjadi tabel yang berisi dua kolom: luas dan harga.

Melihat informasi dataset

print("Jumlah baris:", len(df))
print("Kolom:", df.columns.tolist())
print(df.describe())
Mengapa memeriksa dataset? Karena model Machine Learning sangat bergantung pada data. Kesalahan data, data terlalu sedikit, atau data yang tidak mewakili kondisi sebenarnya dapat memengaruhi hasil model.
Bagian 5

๐Ÿ” Feature dan Target

Dalam Machine Learning, kita sering membedakan data menjadi feature dan target.

Feature (X)Data yang digunakan model sebagai masukan untuk membuat prediksi.
Target (y)Nilai yang ingin diprediksi oleh model.

Pada kasus rumah:

  • Feature X = luas rumah
  • Target y = harga rumah
X = df[["luas"]]
y = df["harga"]

print("Feature:")
print(X)

print("\nTarget:")
print(y)
Mudahnya: X adalah โ€œpetunjukโ€ yang diberikan kepada model, sedangkan y adalah โ€œjawabanโ€ yang ingin dipelajari model.
Bagian 6

๐Ÿ”„ Alur Regression Machine Learning

Dataset
โ†’
Feature & Target
โ†’
Training / Testing
โ†’
Model
โ†’
Prediksi
โ†’
Evaluasi

Penjelasan setiap tahap

1
Dataset
Siapkan data yang relevan dengan masalah.
2
Feature dan target
Tentukan data masukan dan angka yang ingin diprediksi.
3
Training dan testing
Gunakan sebagian data untuk belajar dan sebagian untuk menguji model.
4
Membuat model
Gunakan algoritma regression, misalnya Linear Regression.
5
Prediksi
Berikan data baru kepada model.
6
Evaluasi
Ukur seberapa dekat hasil prediksi dengan nilai sebenarnya.
Bagian 7

๐Ÿ’ป Praktik Lengkap di Google Colab

Kita akan menggunakan Linear Regression karena konsepnya cukup mudah untuk pembelajaran awal.

Langkah 1 โ€” Import library

import pandas as pd
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, r2_score

Langkah 2 โ€” Membuat dataset

data = {
    "luas": [40, 50, 60, 70, 80, 90, 100, 110, 120, 130],
    "harga": [200, 250, 300, 350, 400, 450, 500, 550, 600, 650]
}

df = pd.DataFrame(data)

display(df)

Langkah 3 โ€” Menentukan X dan y

X = df[["luas"]]
y = df["harga"]
Bagian 8

โœ‚๏ธ Membagi Data Training dan Testing

Kita dapat membagi data menjadi dua bagian. Data training digunakan untuk melatih model, sedangkan data testing digunakan untuk melihat bagaimana model bekerja pada data yang tidak digunakan saat proses belajar.

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

print("Jumlah data training:", len(X_train))
print("Jumlah data testing :", len(X_test))

test_size=0.2 berarti sekitar 20% data digunakan untuk testing dan sisanya untuk training.

Mengapa tidak menggunakan semua data untuk training? Karena kita membutuhkan data yang tidak digunakan saat belajar untuk mendapatkan gambaran apakah model dapat bekerja pada data lain.
Bagian 9

๐Ÿง  Membuat Model Linear Regression

Sekarang kita membuat objek model dan melatihnya dengan data training.

model = LinearRegression()

model.fit(X_train, y_train)

print("Model selesai dilatih.")

Perintah fit() berarti model mempelajari hubungan antara feature dan target berdasarkan data training.

Gambaran matematis sederhana

Linear Regression berusaha menemukan hubungan yang dapat digambarkan secara sederhana dengan persamaan:

y = a ร— x + b

y = prediksi target
x = feature
a = koefisien/kemiringan
b = intercept

Dalam contoh rumah, model mencoba mempelajari hubungan antara luas dan harga berdasarkan data yang tersedia.

Bagian 10

๐Ÿ”ฎ Membuat Prediksi

Prediksi data testing

y_pred = model.predict(X_test)

print("Prediksi:")
print(y_pred)

Prediksi rumah baru

Misalnya kita ingin memperkirakan harga rumah dengan luas 75 mยฒ.

data_baru = [[75]]

prediksi = model.predict(data_baru)

print("Perkiraan harga rumah:",
      prediksi[0], "juta rupiah")
Catatan: angka prediksi hanya masuk akal jika data training dan konteks masalah cukup sesuai dengan kondisi yang ingin diprediksi. Dataset latihan di atas sengaja sederhana agar konsep mudah dipelajari.
Bagian 11

๐Ÿ“ Evaluasi Model Regression

Prediksi tidak cukup hanya dilihat. Kita perlu mengukur seberapa jauh prediksi dari nilai sebenarnya.

1. MAE โ€” Mean Absolute Error

MAE menghitung rata-rata jarak absolut antara nilai sebenarnya dan nilai prediksi.

mae = mean_absolute_error(y_test, y_pred)

print("MAE:", mae)

Jika MAE = 10 pada contoh harga dalam juta rupiah, secara sederhana rata-rata kesalahan absolut prediksi sekitar 10 juta rupiah pada data evaluasi tersebut.

2. Rยฒ โ€” R-squared

r2 = r2_score(y_test, y_pred)

print("Rยฒ:", r2)

Rยฒ memberikan ukuran seberapa baik variasi target dapat dijelaskan oleh model pada data yang dievaluasi. Nilainya perlu dibaca bersama konteks, dataset, dan metrik lainnya.

Jangan terjebak pada satu angka. Model sebaiknya dinilai dengan data evaluasi yang tepat dan metrik yang sesuai dengan tujuan penggunaan.
Bagian 12

๐Ÿ“‰ Visualisasi Data dan Garis Prediksi

Visualisasi membantu kita melihat hubungan antara data dan hasil model.

plt.figure(figsize=(8, 5))

plt.scatter(X, y, label="Data asli")

plt.plot(
    X,
    model.predict(X),
    label="Garis regresi"
)

plt.xlabel("Luas rumah (mยฒ)")
plt.ylabel("Harga (juta rupiah)")
plt.title("Regression: Luas Rumah vs Harga")
plt.legend()
plt.show()

Pada grafik, titik menunjukkan data yang tersedia, sedangkan garis menunjukkan hubungan yang dipelajari model.

Aktivitas pengamatan: apakah titik-titik data berada dekat dengan garis? Apakah ada titik yang jauh? Apa yang mungkin menyebabkan perbedaan tersebut?
Bagian 13

๐Ÿงช Mengganti Dataset dengan Contoh Lain

Setelah memahami contoh rumah, siswa dapat mengganti masalah dengan contoh yang lebih dekat dengan kehidupan sehari-hari.

Feature (X)Target (y)Pertanyaan
Jam belajarNilaiBerapa nilai yang diperkirakan dari jumlah jam belajar tertentu?
Umur kendaraanHargaBerapa perkiraan harga kendaraan berdasarkan umurnya?
Luas tanahHargaBerapa perkiraan harga tanah berdasarkan luas?
Jumlah iklanPenjualanBerapa perkiraan penjualan berdasarkan jumlah iklan?

Contoh: Jam Belajar โ†’ Nilai

import pandas as pd

data = {
    "jam_belajar": [1, 2, 3, 4, 5, 6, 7, 8],
    "nilai": [55, 60, 68, 72, 78, 84, 88, 92]
}

df = pd.DataFrame(data)

display(df)

Kemudian ubah bagian feature dan target:

X = df[["jam_belajar"]]
y = df["nilai"]

Setelah itu, langkah train_test_split(), LinearRegression(), fit(), predict(), dan evaluasi dapat digunakan kembali.

Eksperimen: ubah beberapa angka pada dataset. Jalankan kembali model. Perhatikan apakah garis regresi dan hasil prediksi ikut berubah.
Bagian 14

๐Ÿงฉ Mengapa Data Training Harus Mewakili Kondisi Sebenarnya?

Model belajar dari data. Jika data training terlalu sedikit, terlalu sempit, atau berbeda jauh dari kondisi ketika model digunakan, hasil prediksi dapat menjadi kurang sesuai.

Contoh sederhana

Misalnya kita membuat model harga rumah hanya menggunakan rumah dengan luas 40โ€“100 mยฒ di satu wilayah. Kemudian model digunakan untuk memprediksi rumah 500 mยฒ di wilayah yang sangat berbeda. Model mungkin tidak memiliki cukup informasi untuk membuat prediksi yang dapat diandalkan.

Data terlalu sedikitModel memiliki informasi terbatas tentang pola yang mungkin terjadi.
Rentang terlalu sempitModel belum tentu bekerja baik di luar rentang data yang dipelajari.
Kondisi berbedaData training mungkin tidak menggambarkan lingkungan penggunaan model.
Data biasKelompok atau kondisi tertentu mungkin terlalu banyak atau terlalu sedikit terwakili.
Hati-hati dengan extrapolation: memprediksi jauh di luar rentang data training dapat berisiko karena model tidak memiliki banyak contoh untuk mendukung prediksi tersebut.

Pertanyaan utama

Apa yang terjadi jika data training yang digunakan tidak mewakili kondisi sebenarnya?

Model dapat menghasilkan prediksi yang kurang akurat atau kurang sesuai ketika digunakan pada kondisi nyata. Karena itu, kualitas dan keterwakilan data merupakan bagian penting dari Machine Learning.

Bagian 15

๐Ÿ“ 5 Latihan Soal

Soal 1. Apa yang dimaksud dengan Regression dalam Machine Learning? Berikan dua contoh masalah regression.
Lihat pedoman jawaban
Regression adalah masalah Machine Learning untuk memprediksi target berupa angka. Contoh: luas rumah โ†’ harga dan jam belajar โ†’ nilai.
Soal 2. Pada kasus โ€œluas rumah โ†’ harga rumahโ€, manakah yang menjadi feature dan manakah yang menjadi target?
Lihat jawaban
Feature (X) adalah luas rumah. Target (y) adalah harga rumah.
Soal 3. Mengapa dataset perlu dibagi menjadi data training dan testing?
Lihat pedoman jawaban
Data training digunakan untuk melatih model, sedangkan data testing digunakan untuk mengevaluasi model pada data yang tidak digunakan saat proses belajar.
Soal 4. Apa arti sederhana MAE = 8 jika satuan target adalah juta rupiah?
Lihat pedoman jawaban
Secara sederhana, rata-rata kesalahan absolut prediksi pada data yang dievaluasi adalah sekitar 8 juta rupiah.
Soal 5. Mengapa data training yang tidak mewakili kondisi sebenarnya dapat menjadi masalah?
Lihat pedoman jawaban
Karena model belajar dari pola data tersebut. Jika data terlalu sempit, sedikit, atau berbeda dari kondisi penggunaan, model dapat menghasilkan prediksi yang kurang sesuai pada data nyata.
Bagian 16

๐Ÿ› ๏ธ 5 Tugas Praktik

Tugas 1 โ€” Regression Harga Rumah

Buat kembali model prediksi harga rumah menggunakan dataset minimal 10 baris.

  • Tentukan feature luas rumah.
  • Tentukan target harga.
  • Bagi data training dan testing.
  • Buat Linear Regression.
  • Lakukan prediksi.
  • Hitung MAE dan Rยฒ.

Output: kode, tabel dataset, hasil prediksi, nilai evaluasi, dan kesimpulan.

Tugas 2 โ€” Jam Belajar โ†’ Nilai

Buat dataset minimal 12 siswa dengan kolom jam_belajar dan nilai. Gunakan regression untuk memprediksi nilai berdasarkan jumlah jam belajar.

Bonus: prediksi nilai untuk siswa yang belajar 6,5 jam.

Tugas 3 โ€” Umur Kendaraan โ†’ Harga

Buat dataset minimal 12 kendaraan dengan feature umur_kendaraan dan target harga.

Buat model, lakukan prediksi satu kendaraan baru, lalu jelaskan apakah hasil prediksi masuk akal berdasarkan rentang data training.

Tugas 4 โ€” Bandingkan Dua Dataset

Buat dua dataset untuk masalah yang sama. Dataset A dibuat cukup beragam, sedangkan Dataset B dibuat sangat sempit.

Latih model pada keduanya dan bandingkan hasilnya. Jelaskan bagaimana keterwakilan data dapat memengaruhi prediksi.

Tugas 5 โ€” Proyek Mini Regression

Pilih salah satu kasus berikut:

  • Luas tanah โ†’ harga tanah
  • Jumlah iklan โ†’ penjualan
  • Jam belajar โ†’ nilai
  • Umur kendaraan โ†’ harga

Dataset minimal 20 baris. Program harus melakukan:

  1. Membaca atau membuat dataset.
  2. Menampilkan data.
  3. Menentukan feature dan target.
  4. Membagi training/testing.
  5. Membuat model regression.
  6. Membuat minimal 3 prediksi.
  7. Menghitung MAE dan Rยฒ.
  8. Membuat grafik data dan garis regression.
  9. Menjelaskan keterbatasan model.
  10. Menjawab pertanyaan: โ€œApa yang terjadi jika data training tidak mewakili kondisi sebenarnya?โ€

Output: notebook Google Colab + laporan singkat berisi dataset, proses, hasil, grafik, evaluasi, dan kesimpulan.

Checklist Pengumpulan

Bagian 17

๐Ÿ’ญ Pertanyaan Refleksi

  1. Apa perbedaan utama Regression dan Classification?
  2. Mengapa harga rumah termasuk target berbentuk angka?
  3. Apa fungsi data training?
  4. Apa fungsi data testing?
  5. Apa arti sederhana MAE dalam hasil evaluasi?
  6. Mengapa kita perlu melihat grafik selain angka evaluasi?
  7. Apa yang terjadi jika dataset terlalu sedikit?
  8. Apa yang terjadi jika data training tidak mewakili kondisi sebenarnya?
  9. Mengapa memprediksi jauh di luar rentang data training dapat berisiko?
  10. Menurutmu, apa saja data tambahan yang dapat membuat prediksi harga rumah menjadi lebih realistis?
Pikirkan lebih jauh: harga rumah tidak hanya dipengaruhi luas. Lokasi, jumlah kamar, kondisi bangunan, akses jalan, fasilitas, dan banyak faktor lain dapat berpengaruh. Ini menunjukkan bahwa masalah nyata sering membutuhkan lebih dari satu feature.
Bagian 18

๐Ÿ“Œ Ringkasan

  1. Regression digunakan untuk memprediksi nilai berbentuk angka.
  2. Contohnya adalah luas rumah โ†’ harga rumah dan jam belajar โ†’ nilai.
  3. Feature (X) adalah data masukan yang digunakan untuk membuat prediksi.
  4. Target (y) adalah nilai yang ingin diprediksi.
  5. Data dapat dibagi menjadi training dan testing.
  6. Linear Regression dapat digunakan sebagai model sederhana untuk mempelajari hubungan antarvariabel.
  7. Model dapat digunakan untuk membuat prediksi pada data baru.
  8. MAE membantu mengukur rata-rata kesalahan absolut prediksi.
  9. Rยฒ memberikan ukuran tambahan tentang seberapa baik variasi target dijelaskan model pada data evaluasi.
  10. Visualisasi membantu memahami hubungan data dan hasil model.
  11. Data training harus cukup relevan dan mewakili kondisi penggunaan.
  12. Prediksi Machine Learning adalah perkiraan berdasarkan data, bukan jaminan nilai sebenarnya.
Kalimat kunci: โ€œModel yang baik bukan hanya tentang algoritmanya, tetapi juga tentang data yang digunakan untuk melatih dan mengujinya.โ€
Praktik Mandiri

๐Ÿš€ Tantangan Tambahan

Setelah menyelesaikan proyek, coba ubah kasus dari satu feature menjadi beberapa feature.

Contoh prediksi harga rumah menggunakan:

  • luas rumah,
  • jumlah kamar,
  • umur bangunan.

Diskusikan: apakah menambahkan feature selalu membuat model menjadi lebih baik? Bagaimana cara membuktikannya dengan data testing?

Catatan: semakin banyak feature tidak otomatis berarti model semakin baik. Feature perlu relevan, datanya berkualitas, dan evaluasi harus dilakukan dengan benar.
Referensi Praktik

๐Ÿ“š Google Colab

Gunakan Google Colab untuk menjalankan seluruh contoh Python pada materi ini.

Materi Pembelajaran Koding dan Kecerdasan Artifisial โ€ข Machine Learning โ€ข Regression โ€ข Python โ€ข Google Colab