Basic Linear Algebra
Ditulis oleh: Muhammad Faridan Sutariya
Seperti yang banyak orang tau bahwa machine learning adalah kumpulan rumus matematika yang di convert kedalam bahasa pemrograman. Jadi untuk menjadi seorang machine learning engineer atau data scientist maka dibutuhkan pemahaman matematika yang cukup dalam untuk dapat mensolve beberapa permasalahan bisnis yang ada diperusahaannya. di artikel kali ini saya akan membahas aljabar linear yang biasa digunakan pada algoritma Linear Regression. Sebelumnya perlu saya tentukan terlebih dahulu tujuan objective dari pembuatan artikel ini:
- Sejarah singkat aljabar linear.
- Memahami pengertian aljabar linear.
- Dapat mengimplementasi aljabar linear di real life.
- Dapat menyelesaikan permasalahan aljabar linear dengan dua cara yaitu dengan menghitung persamaan dan membuat sebuah plot menggunakan python.
- Sekilas matematika behind in machine learning.
Sejarah aljabar linear
Aljabar linear ditemukan oleh matematikawan berasal dari uzbekistan yaitu Al-Khwarizmi nama populernya dan untuk nama lengkapnya adalah Muhammad ibn Musa Al Khawarizmi yang sekaligus bapak algoritma.
Aljabar Linear lahir dari sebuah buku yang ditulis oleh Al-Khwarizmi dengan judul Al-kitab al-mukhtasar fi hisab al-jabr wa`l-muqabala atau dalam bahasa inggris yaitu The Compendious Book on Calculation by Completion and Balancing. Nama aljabar sendiri diambil dari salah satu kata judul buku tersebut yaitu al-jabr yang di populerkan oleh orang berbahasa inggris menjadi aljabar. Buku tersebut menjadi landasan penting bagi aljabar modern. Aljabar juga merupakan materi yang dipelajari secara luas di dunia saat ini.
Apa itu Aljabar Linear?
Aljabar adalah sebuah aritmatik yang menginclude non-numerical entitas seperti x dan yang lainnya. Sebagai contoh: 2x + 5 = 25
Perhitungan diatas merupakan adalah basic operasi aritmatik yang terdapat sebuah entitas bernama x. Perhitungan ini bisa disebut sebagai persamaan. Untuk menyelesaikan persamaan diatas dapat mengikuti step by step dibawah ini:
2x + 5 = 25
2x + 5–5 = 25–5
2x = 20
2x/2 = 20/2
x = 10
Untuk memastikan bahwa x = 10 adalah dengan cara 2(10) + 5 = 25
Perlu diketahui bahwa jika terdapat exponential disalah satu operand maka tidak dapat disebut sebagai linear algebra sebagai contoh:
Dan juga jika terdapat akar seperti dibawah ini:
Aljabar linear di real life
Terjadi sebuah perampokan di salah satu bank konvensional di Jalan MT Haryono, Kota Balikpapan. perampok tersebut berhasil membawa uang senilai ratusan juta dan berhasil melarikan diri 5 menit lebih cepat dibandingkan polisi yang ingin menangkap perampok tersebut. Perampok tersebut mengendarain mobil yang memiliki kecepatan 150 km/jam dan polisi mengendarain mobil yang memiliki kecepatan 180 km/jam. Disini kita ditugaskan untuk menjawab beberapa pertanyaan seperti berikut:
- Berapa lama mobil polisi bisa menyusul mobil perampok yang lebih dulu melarikan diri?
- Berapa jarak yang akan ditempuh kedua mobile tersebut hingga bertemu?
Disclamer: bahwa perhitungan saya nanti tidak memperhatikan faktor lain selain kecepatan dan start jalan mobil seperti jalur tikus, traffic dan lain-lain. Saya mengerti jika kita mengabaikan faktor lain didalam suatu permasalahan maka akan menimbulkan bias namun untuk mempermudah pembaca dapat kita asumsikan bahwa tidak ada faktor lain selain kecepatan dan start jalan mobil.
Note: Bahwa agar lebih mudah dihitung dan dibuat plotnya dapat kita normalize satuan waktu yang awalnya jam menjadi menit dengan membagi 60, maka akan seperti ini:
- 150km/h = 2.5km/min
- 180km/h = 3km/min
Cara Pertama menghitung persaman
Menentukan persamaan apa saja yang bisa dihitung:
Equation 1: d = 2.5t
Equation 2: d = 3(t — 5)
Karena memiliki variabel yang sama dikedua persaman tersebut maka dapat dibuat menjadi seperti ini:
2.5t = 3(t — 5)
2.5t = 3t — 15
Langkah selanjutnya mengelompokkan value yang memiliki kesamaan.
2.5t — 3t = -15
-0.5t = -15
t = -15 / -0.5 = 30min
Selanjutnya mencari total jarak yang ditempuh dengan cara:
d = 2.5t = 2.5(30) = 75km
d = 3(t — 5) = 3(30–5) = 3(25) = 75km
Dari Kedua perhitungan diatas kita dapat menyimpulkan bahwa mobil polisi dapat menyusul mobil perampok dalam 30 menit dan jarak yang ditempuh oleh kedua mobil tersebut adalah 75 kilometer.
Cara Kedua menggunakan plot
Langkah Pertama import library yang akan digunakan dalam kasus ini yaitu untuk membuat data dummy dan visualisasi data.
import numpy as np # numerical calc
import matplotlib.pyplot as plt # visualize data
Selanjutnya membuat data dummy exponential untuk waktu menggunakan linspace dari numpy dan melakukan perhitungan persamaan seperti yang diatas.
t = np.linspace(0, 40, 1000) # start, finish, n points
d_r = 2.5 * t
d_s = 3 * (t-5)
Terakhir membuat plotnya.
fig, ax = plt.subplots()
plt.title('Perampokan bank konvensional')
plt.xlabel('waktu (dalam minutes)')
plt.ylabel('jarak (dalam km)')
ax.set_xlim([0, 40])
ax.set_ylim([0, 100])
ax.plot(t, d_r, c='green')
ax.plot(t, d_s, c='brown')
plt.axvline(x=30, color='purple', linestyle='--')
_ = plt.axhline(y=75, color='purple', linestyle='--')
Hasilnya akan seperti ini:
terdapat beberapa jenis solusi yang terdapat dialjabar linear seperti: one solution(seperti diatas), No Solution and Infinite solution.
Behind in Linear Regression
Dapat dilihat bahwa untuk satu baris data pada kasus prediksi harga rumah sudah cukup kompleks dengan banyak persamaan.
Bayangkan jika kita memiliki 1 juta baris untuk kasus prediksi harga rumah seperti apa kompleksitasnya persamaan yang harus dihitung. Mungkin disinilah machine learning dapat mengeluarkan magic untuk menghitung seluruh persamaan dari data tersebut.
Semoga bermanfaat untuk pembaca dan penulis.
reference: