Pemahaman Ini Perlu Anda Ketahui Dalam Logistic Regression

Artificial Intelligence For Learning The Basics

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

Apa Itu Logistic Regression?

Logistic Regression merupakan model machine learning yang digunakan untuk memprediksi dependen variabel yang bersifat kategorikal dari banyaknya variabel independen yang diberikan.

Data kategorikal disini adalah memprediksi dua kemungkinan kelas yang terjadi misalnya “iya atau tidak”. Dalam Logistic Regression, “iya atau tidak” termasuk kedalam dependen variabel yang dimana “ya” merupakan perwakilan dari angka 1 dan “tidak” merupakan perwakilan dari angka 0.

Karena Logistic Regression hanya memprediksi dependen variabel “ya” atau “tidak”, maka bentuk data dari independen variabel dan dependen variabel adalah dua data linear yang sejajar.

Dari bentuk data Logistic Regression ini, dibutuhkan fungsi sigmoid untuk mengubah output dari kombinasi linear independen variabel menjadi probabilitas atau kemungkinan yang bernilai “0” atau “1”.

Setelah output diubah dari yang sebelumya “ya” atau “tidak” menjadi “1” atau “0” kemudian kita harus menentukan ambang batas untuk menentukan ke arah mana independen variabel akan berakhir.

Apabila Anda menentukan ambang batas seperti 0,5 maka independen variabel yang nilainya diatas 0,5 akan berakhir di angka “1” yang dimana artinya prediksi dependen variabel tersebut akan menghasilkan “ya”.

Sebaliknya, apabila indepeden variabel nilainya berada dibawah 0,5 maka independen variabel tersebut akan berakhir di angka “0” yang dimana artinya prediksi variabel dependen tersebut akan menghasilkan “tidak”.

Rumus Logistic Regression

Rumus dari Logistic Regression ini merupakan gabungan dari beberapa rumus yaitu sebagai berikut :

Rumus Simple Linear Regression atau Multiple Linear Regression

  • Simple Linear Regression

y = a + bX

Keterangan :
Y : variabel dependen (respon/prediksi)
a : konstan (titik awal)
b : koefisien (kemiringan garis prediksi)
X : variabel independen (prediktor)

  • Multiple Linear Regression

y = b0 + b1X1 + b2X2 + b3X3 + ….. + bnXn

Keterangan :
Y : variabel dependen (respon/prediksi)
b0 : konstan (titik awal)
b1 : koefisien 1 (kemiringan garis prediksi)
b2 : koefisien 2 (kemiringan garis prediksi)
b3 : koefisien 3 (kemiringan garis prediksi)
bn : koefisien ke n (kemiringan garis prediksi)
X1 : variabel independen 1 (prediktor)
X2 : variabel independen 2 (prediktor)
X3 : variabel independen 3 (prediktor)
Xn : variabel independen ke n (prediktor)

Rumus Fungsi Sigmoid

p = 1/1 + e^-y

Keterangan :
p = probabilitas
e = bilangan euler(2.718)
y = Simple Linear Regression atau Multiple Linear Regression

Rumus fungsi sigmoid ini berguna untuk menghitung probabilitas dari data observasi independen variabel supaya bisa menentukan kearah mana independen variabel tersebut akan berakhir, apakah variabel independen tersebut akan berakhir di angka “0” atau “1” pada variabel dependen.

Rumus Logistic Regression

ln(p/1-p) = a + bX

Rumus Logistic Regression diatas merupakan rumus untuk membuat garis linear regression yang sebelumnya lurus, menjadi bentuk dari fungsi sigmoid untuk menyesuaikan garis tersebut terhadap bentuk data dari variabel independen dengan variabel dependen yang linear dan sejajar.

Maximum Likelihood

Maximum likelihood merupakan metode yang digunakan dalam Logistic Regression untuk mencari bentuk dari fungsi sigmoid yang terbaik untuk variabel independen dengan variabel dependennya. Cara menghitung Maximum Likelihood adalah sebagai berikut :

Maximum Likelihood = Total perkalian antara independen yang memiliki nilai 1 dan nilai 0 pada dependen variabel

Semakin besar nilai dari Maximum Likelihood maka semakin besar baik pula bentuk dari fungsi sigmoid yang sesuai dengan data variabel independen dengan variabel dependen yang diberikan.

Kode Python Untuk Membuat Model Logistic Regression

  • Impor librari

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

  • Impor dataset

dataset = pd.read_csv(‘Social_Network_Ads.csv’)
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values

  • Memisahkan dataset menjadi training set dan test set

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

  • Feature Scaling

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

  • Latih model Logistic Regression kedalam training set

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state = 0)
classifier.fit(X_train, y_train)

  • Memprediksi hasil test set

y_pred = classifier.predict(X_test)
print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))

  • Memprediksi data observasi baru

print(classifier.predict(sc.transform([[30,87000]])))

note:
Memprediksi data observasi baru berguna untuk mengetahui apakah model yang kita buat sudah akurat atau belum.

  • Membuat Confusion Matrix

from sklearn.metrics import confusion_matrix, accuracy_score
cm = confusion_matrix(y_test, y_pred)
print(cm)
accuracy_score(y_test, y_pred)

note:
Confusion Matrix merupakan indikator yang digunakan untuk memeriksa apakah model yang kita buat sudah akurat atau belum. Dalam Confusion Matrix ini terdapat matrix yang digunakan untuk mengetahui seberapa banyak prediksi yang didapat oleh model sama dengan hasil dari data observasi aslinya.

Untuk mengukur akurasi model terhadap data yang diberikan, kita dapat menggunakan “accuracy_score”. Accuracy score ini berguna untuk mengetahui seberapa akurat model machine learning dalam memprediksi sebuah data kategorikal atau klasifikasi. Hasil dari accuracy score dinyatakan dalam bentuk persen.

  • Visualisasi hasi test set

from matplotlib.colors import ListedColormap
X_set, y_set = sc.inverse_transform(X_test), y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() – 10, stop = X_set[:, 0].max() + 10, step = 0.25),
np.arange(start = X_set[:, 1].min() – 1000, stop = X_set[:, 1].max() + 1000, step = 0.25))
plt.contourf(X1, X2, classifier.predict(sc.transform(np.array([X1.ravel(), X2.ravel()]).T)).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap((‘red’, ‘green’)))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap((‘red’, ‘green’))(i), label = j)
plt.title(‘Logistic Regression (Test set)’)
plt.xlabel(‘Age’)
plt.ylabel(‘Estimated Salary’)
plt.legend()
plt.show()

Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy

Semua hal yang sudah dibahas diatas, akan membantu Anda memahami apa itu logistic regression, bagaimana cara kerjanya, bagaimana cara membuatnya dan lainnya supaya Anda bisa membuat model Logsitic Regression yang kuat untuk memprediksi data kategorikal.

Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai 6 tips & tricks mengurangi COGS dan blog kami selanjutnya mengenai K-Nearest Neighbors.

0 0 votes
Article Rating
0 0 votes
Article Rating
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

[…] Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai segala hal yang perlu Anda ketahui tentang COGS dan blog kami selanjutnya mengenai Logistic Regression. […]

[…] Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai Logistic Regression. Nantikan konten blog kami selanjutnya yang ga kalah […]

2
0
Would love your thoughts, please comment.x
()
x
Scroll to Top