Lazada Indonesia

Sunday, December 29, 2024

Machine Learning: Membuat Prediksi Dengan Linear Regression


Membuat prediksi berdasarkan data-data yang sudah dimiliki diawal biasanya dalam bahasa inggris disebut forecast.

Misalnya berdasarkan data-data harga emas yang ada, berdasarkan harga komoditas pangan, harga saham atau yang lain, kita dapat melakukan sebuah prediksi berdasarkan data-data lampau yang tersedia. Dalam Machine Learning salah satu metode yang digunakan adalah Linear Regression.

Pada contoh ini kita akan mencoba membuat prediksi berdasarkan data-data yang ada. Contohnya yang paling sederhana adalah berapa kilometer sebuah mobil dapat berjalan jika mobil tersebut kita isi sejumlah liter bahan bakar. Data-data yang ada misalnya, jika diisi 20 liter maka mobil dapat menempuh jarak 100 kilometer. Jika berdasarkan kondisi tertentu misalnya faktor kecepatan rata-rata, beban yang diangkut, kondisi jalan, usia mobil dan sebagainya maka kemungkinan dengan jumlah bahan bakar yang sama, jarak yang ditempuh akan berbeda.

Berdasarkan ilustrasi di atas jumlah bahan bakar/bensin adalah suatu angka numerik yang bisa kita gunakan sebagai landasan untuk melakukan prediksi, maka disebut predictor. Jika sebuah predictor tidak bergantung pada variabel lain, maka disebut independent variable. Jika predictor bergantung pada variabel lain maka disebut dependent variable. Pada contoh di atas jarak yang ditempuh oleh mobil termasuk dependent variable karena tergantung pada berapa jumlah bahan bakar. Sedangkan angka jarak yang kita prediksi disebut target.

Sebelum melakukan prediksi, kita terlebih dahulu harus menyiapkan data. Dengan menggunakan Python kita dapat menggunakan library pandas untuk menyiapkan data. Pada contoh ini kita merujuk pada data yang telah disediakan dari sebuah buku yang saya jadikan rujukan.

import pandas as pd
df1 = pd.read_csv('/content/drive/MyDrive/AI/bensin.csv')
df1

Setelah kita jalankan maka outputnya adalah:

Dalam ilmu statistika kita mengenal beberapa istilah penting dari sebuah data, misalnya angka minimum, angka maksimum, dan rata (mean). Dengan menggunakan pandas kita dapat menampilkan nilai-nilai tersebut untuk mendapatkan gambaran data yang kita gunakan, dengan perintah:

df1.describe()

maka hasilnya adalah sebagai berikut:

Untuk memvisualisasikan data-data yang kita miliki, kita bisa menggunakan code:

Menjelaskan# @title Liter vs Kilometer

from matplotlib import pyplot as plt
df1.plot(kind='scatter', x='Liter', y='Kilometer', s=32, alpha=.8)
plt.gca().spines[['top', 'right',]].set_visible(False)

Maka hasilnya adalah sebagai berikut:

Jika dilihat dari plot data di atas maka sebaran dataset cukup beraturan, sehingga ada dugaan bahwa ada hubungan linear antara angka liter bahan bakar dan angka jarak kilometer yang ditempuh. dari data ini cocok dengan persamaan sederhana simple linear regression:

y = a + bx

Dari persamaan ini, dimana a adalah intercept, dan b adalah slope.

Melatih Model

Sebelum kita melakukan prediksi, kita perlu melakukan training data dulu. Kita harus menyiapkan data-data menggunakan training dataset. Untuk melakukan training kita menggunakan library Scikit-learn. Code yang dapat digunakan seperti berikut:

Menjelaskanimport sklearn.linear_model as lm
liter = df1[['Liter']]
kilometer = df1[['Kilometer']]
X_train, X_test, y_train, y_test = ms.train_test_split(liter, kilometer, test_size=0.2, random_state=0)

Kemudian kita dapat melihat nilai coefisien dan intercept dengan code:

model1 = lm.LinearRegression()
model1.fit(X_train, y_train)
print("model coef:")
print(model1.coef_)
print("model intercept:")
print(model1.intercept_)
Outputnya:

Nilai coefisen dan intercept kita masukkan ke persamaan dan kita tampilkan hasilkan dengan code berikut:

Menjelaskanimport sklearn.model_selection as ms
import numpy as np

plt.scatter(X_train, y_train, edgecolors='r')
plt.xlabel('Liter')
plt.ylabel('Kilometer')
plt.title('Konsumsi Bahan Bakar')
x1 = np.linspace(0,45)
y1 = 3.94 + 6.67 * x1
plt.plot(x1,y1)
plt.show()

Hasilnya seperti berikut:

Untuk menghitung score model, digunakan code berikut:

r2 = model1.score(X_test, y_test)
print("Score:")
print(r2)

Melakukan Prediksi

Misalnya kita ingin melakukan prediksi dengan diberikan nilai input jumlah bahan bakar dalam Liter, 60 liter:

# dengan satu nilai
jarak = model1.predict([[60]])
print(jarak)

outputnya:
[[398.13897723]]

jika ingin melakukan prediksi dengan data test:

# dengan data test
prediksi  = model1.predict(X_test)
print(prediksi)

Code lengkapnya Google Colabs: Prediksi Linear Regression

dataset bensin.csv

Referensi:

Pengenalan Machine Learning dengan  Python. Dios Kurniawan, M.Sc

No comments:

Post a Comment

Machine Learning: Membuat Prediksi Dengan Linear Regression

Membuat prediksi berdasarkan data-data yang sudah dimiliki diawal biasanya dalam bahasa inggris disebut  forecast . Misalnya berdasarkan dat...