Anda mengelola marketing untuk sebuah perusahaan yang sedang berkembang. Setiap bulan, Anda memutuskan berapa banyak uang yang akan dihabiskan untuk iklan TV.
Tapi inilah masalahnya...
๐ฐ Pertanyaan Besar:
"Berapa banyak yang harus saya habiskan untuk iklan bulan depan agar mencapai target penjualan $10 juta?"
Data dari masa lalu
Prediksi masa depan
Buat keputusan
"Jika kita dapat menemukan hubungan matematis antara input kita (pengeluaran iklan) dan output (penjualan), kita dapat memprediksi masa depan."
Ini adalah fondasi dari linear regression.
| Bulan | Budget Iklan TV ($1000s) | Penjualan ($ juta) |
|---|---|---|
| Januari | 120 | 5 |
| Februari | 125 | 7 |
| Maret | 140 | 8 |
| April | 110 | 6 |
Pola mulai muncul? Lebih banyak iklan โ Lebih banyak penjualan
Tapi bisakah kita mengukur hubungan ini? ๐ค
Sebuah fungsi linear membentuk:
$\hat{y} = f(x) = w_0 + w_1x$
$w_0$ = intercept
Di mana garis memotong sumbu y
$w_1$ = slope
Seberapa curam garisnya
Data dunia nyata itu berantakan. Penjualan tidak sempurna mengikuti garis karena:
Model kita tidak akan sempurnaโdan tidak apa-apa! ๐ฏ
Kita perlu memperhitungkan ketidakpastian...
Kita menambahkan variabel acak untuk menangkap ketidakpastian:
$\varepsilon$ (epsilon) = error term atau residual
Menangkap semua yang tidak dijelaskan oleh model kita
๐ก Wawasan Kunci:
Kita mencari perkiraan yang berguna, bukan prediksi sempurna. Dengan mengakui error, kita membangun model yang lebih realistis!
Untuk setiap titik data $(x_i, y_i)$, error adalah:
$y_i$
Nilai aktual (penjualan sebenarnya)
$(w_0 + w_1x_i)$
Nilai prediksi
Ada tak terhingga kemungkinan garis melalui data kita. Mana yang terbaik?
Temukan garis yang membuat total error terkecil di semua titik data.
Tapi bagaimana cara mengukur "total error"? ๐ค
โ ๏ธ Tantangan:
Kita perlu metrik yang:
โ Menangkap besaran error
โ Tidak membiarkan error saling meniadakan
โ Dapat
diminimalkan secara matematis
Jumlahkan semua error:
$\sum e_i = \sum (y_i - (w_0 + w_1x_i))$
Masalah: Error positif dan negatif saling meniadakan!
Contoh:
โข Titik 1: error = +5 (meremehkan)
โข Titik
2: error = -5 (melebih-lebihkan)
โข Total: +5 + (-5) = 0 โ "Sempurna"?
Tapi kedua prediksi salah sebesar 5 unit!
Kesimpulan:
Kita perlu metrik di mana semua error non-negatif sehingga tidak dapat saling meniadakan.
$\sum |e_i|$
Kelebihan:
โ Semua error positif
โ Bobot sama untuk semua error
โ Tangguh terhadap
outlier
Kekurangan:
โ Tidak dapat diturunkan di nol
โ Lebih sulit dioptimalkan
$\sum e_i^2$
Kelebihan:
โ Semua error positif
โ Memberi penalti besar pada outlier
โ Dapat
diturunkan di mana-mana
โ Sifat statistik yang baik
Pemenang!
Digunakan dalam linear regression
$\text{SSE} = \sum e_i^2 = \sum (y_i - (w_0 + w_1x_i))^2$
Kembangkan setiap term dan kuadratkan!
Error kecil
Mendapat penalti kecil
$1^2 = 1$
Error besar
Mendapat penalti sangat besar
$10^2 = 100$
Penjualan mungkin bergantung pada beberapa faktor:
Iklan TV
$x_1$
Iklan Radio
$x_2$
Media Sosial
$x_3$
$\hat{y} = w_0 + w_1x_1 + w_2x_2$
Membentuk bidang datar dalam ruang 3D
Untuk $n$ variabel input:
$\hat{y} = w_0 + w_1x_1 + w_2x_2 + \cdots + w_{n-1}x_{n-1}$
$\sum e_i^2 = \sum (y_i - (w_0 + w_1x_{i1} + w_2x_{i2} + \cdots + w_{n-1}x_{in-1}))^2$
Notasi ini cepat menjadi berantakan! ๐ฐ
Solusi: Gunakan matrix! โก๏ธ
$\sum_{i=1}^{m} (y_i - (w_0 + w_1x_{i1} + w_2x_{i2} + \cdots + w_{n-1}x_{in-1}))^2$
Jelek! Sulit bekerja dengannya! ๐ซ
$\text{SSE} = \|y - XW\|_2^2$
Indah! Bekerja untuk dimensi apa pun! โจ
$\text{SSE} = \|y - XW\|_2^2$
$X \in \mathbb{R}^{m \times n}$
Matrix data input
$m$ = observasi
$n$ = fitur
$y \in \mathbb{R}^m$
Vektor output
$m$ = observasi
Nilai aktual
$W \in \mathbb{R}^n$
Vektor bobot
$n$ = fitur
Parameter yang dicari
$\|\cdot\|_2^2$ = Squared L2 Norm
Nama mewah untuk: "kuadratkan setiap elemen, lalu jumlahkan"
$\|v\|_2^2 =
v_1^2 + v_2^2 + \cdots + v_n^2$
Gunakan kalkulus untuk meminimalkan fungsi error!
Wawasan kunci dari kalkulus:
"Pada titik minimum, derivative (gradient) sama dengan nol"
Sama seperti menemukan bagian terbawah dari lembah! ๐๏ธ
Mulai dengan:
$f(W) = \|y -
XW\|_2^2$
Tulis ulang sebagai dot product:
$f(W) = (y - XW)^T(y - XW)$
Distribusikan transpose:
$= (y^T - W^TX^T)(y - XW)$
FOIL (kalikan):
$= y^Ty
- W^TX^Ty - y^TXW + W^TX^TXW$
Karena $W^TX^Ty$ dan $y^TXW$ adalah skalar dan sama:
$f(W) = y^Ty - 2y^TXW + W^TX^TXW$
$f(W) = y^Ty - 2y^TXW + W^TX^TXW$
Terapkan aturan derivative:
โข $\nabla_W(y^Ty) = 0$ (konstanta)
โข $\nabla_W(-2y^TXW) = -2X^Ty$ (linear)
โข $\nabla_W(W^TX^TXW) = 2X^TXW$ (kuadratik)
Hasil:
$\nabla f(W) = -2X^Ty + 2X^TXW$
$\nabla f(W) = -2X^Ty + 2X^TXW = 0$
โ Bagi dengan 2
$-X^Ty + X^TXW = 0$
โ Tambahkan $X^Ty$ ke kedua sisi
$X^TXW = X^Ty$
$W = (X^TX)^{-1}X^Ty$
Solusi closed-form untuk linear regression!
$W = (X^TX)^{-1}X^Ty$
Terlihat elegan, tapi...
1,000 observasi โ Inversi matrix $1000 \times 1000$
Kompleksitas waktu: $O(n^3)$ ๐
100,000 observasi โ Inversi matrix $100,000 \times 100,000$
Memakan waktu berjam-jam atau crash! ๐ฅ
Alih-alih menghitung inverse secara langsung, ambil langkah-langkah kecil menuju minimum!
๐ฏ Keuntungan:
โ Tidak perlu inversi matrix
โ Berskala hingga jutaan titik data
โ Fondasi
dari ML modern
โ Juga bekerja untuk model non-linear!
$W = (X^TX)^{-1}X^Ty$
Kelebihan:
โ Solusi langsung
โ Tanpa
hyperparameter
โ Jawaban eksak
Kekurangan:
โ Kompleksitas $O(n^3)$
โ Tidak
berskala
โ Intensif memori
Terbaik untuk:
Dataset kecil (< 10k obs)
Update iteratif
Kelebihan:
โ Berskala untuk data besar
โ
Memori rendah
โ Generalisasi ke non-linear
Kekurangan:
โ Perlu tuning
โ Solusi
perkiraan
โ Memerlukan iterasi
Terbaik untuk:
Dataset besar, deep learning
Temukan hubungan linear antara input dan output untuk memprediksi nilai masa depan
Tambahkan $\varepsilon$ untuk memperhitungkan keacakan dan faktor yang tidak terukur
Gunakan Sum of Squared Errors (SSE) untuk mengukur kualitas fit
Normal Equation (data kecil) atau Gradient Descent (data besar)
Model Linear
$\hat{y} = w_0 + w_1x + \varepsilon$
Bentuk Matrix
$\text{SSE} = \|y - XW\|_2^2$
Normal Equation
$W = (X^TX)^{-1}X^Ty$
Topik Selanjutnya
Gradient Descent! ๐
Sekarang setelah kita memahami linear regression, kita perlu belajar bagaimana cara benar-benar menyelesaikannya untuk dataset besar.
๐ Kita akan mengeksplorasi:
"Perjalanan dari teori ke praktik dimulai dengan optimisasi!"
- QuiverLearn