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.
[…] 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 […]
Hi my loved one I wish to say that this post is amazing nice written and include approximately all vital infos Id like to peer more posts like this
Interesting analysis! Seeing how quickly visual content is evolving is wild. Tools like Nano Banana are making it accessible for everyone, even on mobile – huge for content creators! Definitely a game changer.
Been playing at 68jlcasino for a while now and I gotta say, it’s not bad! The payouts are pretty consistent and the support team is helpful. Give it a try folks! Check it out here: 68jlcasino
Poneclub’s the place where I spend my fun time every night. A real community vibe. You guys gotta try it! Here’s the link: poneclub
Alright, alright, alright! Asiabet88slotgame, here I come! heard the slots are fire. Wish me luck, gonna spin some reels tonight! Gonna dive into asiabet88slotgame!
123winvin alright, another site with ‘win’ in the name. Hope it lives up to it! Gotta check my luck there: 123winvin
Going to check out PH62. Heard it’s got some cool stuff, anyone else try it before? Let me know your thoughts. Check this out: ph62
PH62slot time! Ready to spin and win (hopefully!). Wish me that lady luck is on my side! Check it out here: ph62slot
Another night, another gamble. Going to try 66jl. What’s everyone opinion on it? Can’t hurt to try and make some real money: 66jl
jiliko – Jiliko Online Casino Philippines: Secure Jiliko Login, Register, App Download & Best Slots. Experience Jiliko Online Casino Philippines! Enjoy secure Jiliko login, fast Jiliko register, and top Jiliko slots. Jiliko app download now for the best PH gaming. visit: jiliko