Categories
Dokumentasi

Logistic Regression

Dalam statistik, model logistik (atau model logit) adalah model statistik yang memodelkan log-odds suatu peristiwa sebagai kombinasi linier dari satu atau lebih variabel bebas. Dalam analisis regresi, regresi logistik/logistic regression (atau regresi logit) adalah memperkirakan parameter model logistik (koefisien dalam kombinasi linier).

Daftar Isi

Penerapan Logistic Regression

Regresi logistik adalah algoritma pembelajaran mesin terawasi yang banyak digunakan untuk tugas klasifikasi biner, seperti mengidentifikasi apakah email merupakan spam atau bukan dan mendiagnosis penyakit dengan menilai ada tidaknya kondisi tertentu berdasarkan hasil tes pasien. Pendekatan ini menggunakan fungsi logistik (atau sigmoid) untuk mengubah kombinasi linier fitur masukan menjadi nilai probabilitas yang berkisar antara 0 dan 1.

— Logistic Regression
https://bptsi.unisayogya.ac.id/logistic-regression/ 2024-04-15 13:50:26
Logistic Regression
Training Logistic Regression
Klasifikasi Logistic Regression

Logistic Regression Pada Data Numerik

Data

Var 1Var 2Klasifikasi
x10.10.2kelasA
x20.50.9kelasB
x30.40.3kelasA
x40.60.8kelasB
data latih
Var 1Var 2Klasifikasi
x50.30.2kelasA
x60.60.9kelasB
x70.50.4kelasA
data uji

Penyelesaian Dengan Program

import numpy as np

# data latih
v01X_train = np.array([
    [0.1, 0.2, 1],  # kelasA
    [0.5, 0.9, 0],  # kelasB
    [0.3, 0.3, 1],  # kelasA
    [0.7, 0.75, 0]  # kelasB
])

# data uji
v02X_test = np.array([
    [0.3, 0.2, 1],  # kelasA
    [0.6, 0.9, 0],  # kelasB
    [0.5, 0.4, 1]   # kelasA
])

# Fungsi sigmoid
def sigmoid(lo):
    return 1 / (1 + np.exp(-lo))

# Inisialisasi v03b da_n v04a
np.random.seed(0)
v03b = np.random.rand(2)
v04a = np.random.rand()

# Learning rate
lr = 0.1

# Training
for epoch in range(10):
    for x in v01X_train:
        logodds = np.dot(v03b, x[:2]) + v04a
        p = sigmoid(logodds)
        da_ = p - x[2]
        db_ = np.dot(x[:2], da_)
        v03b -= lr * db_
        v04a -= lr * da_

# Testing
kelas_prediksi = []
for x in v02X_test:
    logodds = np.dot(v03b, x[:2]) + v04a
    p = sigmoid(logodds)
    kelas_prediksi.append(1 if p >= 0.5 else 0)

# Hasil
print(f"Kelas prediksi untuk data uji {v02X_test[:,:2]}: {kelas_prediksi}")

from sklearn.linear_model import LogisticRegression
model_ = LogisticRegression(solver='lbfgs', max_iter=10)
model_.fit(v01X_train[:,:2], v01X_train[:,2])
# predict output
v05y_test = model_.predict(v02X_test[:,:2])

print(f"Kelas prediksi untuk data uji {v02X_test[:,:2]}: {v05y_test}")
#hasil run
Kelas prediksi untuk data uji [[0.3 0.2]
 [0.6 0.9]
 [0.5 0.4]]: [1, 0, 1]
Kelas prediksi untuk data uji [[0.3 0.2]
 [0.6 0.9]
 [0.5 0.4]]: [1. 0. 1.]

Variabel Terakhir

Hasil

Klasifikasi
x5kelasA
x6kelasB
x7kelasA
hasil klasifikasi

Penyelesaian Spreadsheet

Demikian, semoga bermanfaat. [bst]

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.