Anda di halaman 1dari 11

Modul Praktikum 3

Pembelajaran Mesin
Regresi Logistic

Program Studi Sains Data


Jurusan Sains
Institut Teknologi Sumatera

2023
I. Tujuan Instruksional Umum II. Tujuan Instruksional Khusus
Praktikum bertujuan untuk menerapkan 1. Mahasiswa mampu memahami
teori regresi logistic. regresi logistic.
2. Mahasiswa mampu menyelesaikan
studi kasus terkait regresi logistic.

A. Teori Dasar

Klasifikasi adalah salah satu bidang pembelajaran mesin yang paling penting, dan regresi
logistik adalah salah satu metode dasarnya. Regresi logistik adalah teknik klasifikasi mendasar.
Regresi logistik cepat dan relatif tidak rumit, dan mudah untuk menginterpretasikan
hasilnya. Meskipun pada dasarnya metode untuk klasifikasi biner, ini juga dapat diterapkan pada
masalah multikelas. Kita memerlukan pemahaman tentang fungsi sigmoid dan fungsi logaritma
natural untuk memahami apa itu regresi logistik dan cara kerjanya. Gambar ini menunjukkan fungsi
sigmoid (atau kurva berbentuk S):

Fungsi sigmoid memiliki nilai yang sangat dekat dengan 0 atau 1. Fungsi sigmoid cocok untuk
diterapkan dalam metode klasifikasi. Gambar ini menggambarkan logaritma natural dari beberapa
variabel 𝑥, untuk nilai 𝑥 antara 0 dan 1:

Saat 𝑥 mendekati nol, logaritma natural dari 𝑥 menuju negatif. Ketika 𝑥 = 1, log(𝑥) adalah 0.
Kebalikannya berlaku untuk log(1 − 𝑥). Dalam praktikum ini, kita akan melihat penjelasan untuk
kasus umum regresi logistik yang diterapkan pada klasifikasi biner. Saat Anda menerapkan regresi
logistik beberapa variabel dependen 𝑦 pada kumpulan variabel independen 𝐱 = (𝑥₁, …, 𝑥ᵣ), di mana
𝑟 adalah jumlah prediktor ( atau input), Anda mulai dengan nilai prediktor yang diketahui 𝐱ᵢ dan
respons aktual (atau keluaran) yang sesuai 𝑦ᵢ untuk setiap pengamatan 𝑖 = 1, …, 𝑛.
2
Tujuan praktikum ini adalah menemukan fungsi regresi logistik 𝑝(𝐱) sedemikian rupa
sehingga tanggapan yang diprediksi 𝑝(𝐱ᵢ) sedekat mungkin dengan 𝑦ᵢ untuk setiap pengamatan 𝑖 =
1, …, 𝑛. Ingat bahwa respon sebenarnya hanya bisa 0 atau 1 dalam masalah klasifikasi biner. Ini
berarti bahwa setiap 𝑝(𝐱ᵢ) harus mendekati 0 atau 1. Itulah mengapa lebih mudah menggunakan
fungsi sigmoid. Setelah kita memiliki fungsi regresi logistik 𝑝(𝐱), kita dapat menggunakannya
untuk memprediksi output baru.

B. Latihan
Dalam praktikum ini kita akan melakukan latihan terkait contoh dengan masalah klasifikasi biner
satu-variasi. Ada beberapa langkah umum yang akan kita ambil saat menyiapkan model klasifikasi:

1. Import packages, fungsi, dan kelas


2. Dapatkan data untuk dikerjakan dan jika sesuai, ubahlah
3. Buat model klasifikasi dan latih (atau sesuaikan) dengan data yang ada
4. Evaluasi model kita untuk melihat apakah kinerjanya memuaskan.

Model yang cukup bagus yang kita tentukan dapat digunakan untuk membuat prediksi lebih lanjut
terkait data baru. Prosedur di atas sama untuk klasifikasi dan regresi.

Latihan 1

Langkah 1: Import packages, Fungsi, dan Kelas


Pertama, kita harus mengimpor Matplotlib untuk visualisasi dan NumPy untuk array. kita juga
memerlukan LogisticRegression, classification_report(), dan confusion_matrix()dari scikit-learn:

Sekarang kita telah mengimpor semua yang kita butuhkan untuk regresi logistik di Python dengan
scikit-learn.
Langkah 2: Dapatkan Data
Dalam praktiknya, kita biasanya memiliki beberapa data untuk dikerjakan. Untuk tujuan contoh ini,
mari kita buat array untuk nilai input (𝑥) dan output (𝑦):

Array xharus dua dimensi. Untuk membuat xdua dimensi, Anda menerapkan .reshape() argumen -
1 untuk mendapatkan baris sebanyak yang diperlukan dan 1 mendapatkan satu kolom. Begini
caranya x dan y dapat dilihat nilainya:

3
Langkah 3: Buat Model dan Latih
Setelah kita menyiapkan input dan output, kita dapat membuat dan menentukan model klasifikasi.

Setelah model dibuat, kita harus menyesuaikan (atau melatih) model tersebut. Model fitting adalah
proses penentuan koefisien 𝑏₀, 𝑏₁, …, 𝑏ᵣ yang sesuai dengan nilai terbaik dari cost function.

Pada titik ini, kita telah menentukan model klasifikasi. kita dapat dengan cepat mendapatkan atribut
model. Misalnya, atribut .classes_

Ini adalah contoh klasifikasi biner, dan ybisa 0 atau 1, seperti yang ditunjukkan di atas. Kita juga
bisa mendapatkan nilai kemiringan 𝑏₁ dan titik potong 𝑏₀ dari fungsi linier 𝑓 seperti:

4
Langkah 4: Evaluasi Model
Setelah model ditentukan, kita dapat memeriksa kinerjanya dengan .predict_proba(), yang
mengembalikan matriks probabilitas bahwa keluaran yang diprediksi sama dengan nol atau satu:

Dalam matriks di atas, setiap baris sesuai dengan satu pengamatan. Kolom pertama adalah
probabilitas output yang diprediksi menjadi nol, yaitu 1 - 𝑝(𝑥). Kolom kedua adalah probabilitas
bahwa keluarannya adalah satu, atau 𝑝(𝑥). Kita bisa mendapatkan prediksi aktual, berdasarkan
matriks probabilitas dan nilai 𝑝(𝑥), dengan .predict():

Gambar di bawah ini mengilustrasikan input, output, dan hasil klasifikasi:

Lingkaran hijau mewakili respons aktual serta prediksi yang benar. Merah × menunjukkan prediksi
yang salah. Garis hitam penuh adalah estimasi garis regresi logistik 𝑝(𝑥). Kotak abu-abu adalah
titik pada garis ini yang sesuai dengan 𝑥 dan nilai pada kolom kedua dari matriks probabilitas. Garis
putus-putus hitam adalah logit 𝑓(𝑥).Nilai 𝑥 sedikit di atas 2 sesuai dengan threshold 𝑝(𝑥)=0.5, yaitu
𝑓(𝑥)=0. Nilai 𝑥 ini adalah batas antara titik-titik yang diklasifikasikan sebagai nol dan yang
diprediksi sebagai satu. Misalnya, titik pertama memiliki input 𝑥=0, output aktual 𝑦=0, probabilitas
𝑝=0,26, dan nilai prediksi 0. Titik kedua memiliki 𝑥=1, 𝑦=0, 𝑝=0,37, dan prediksi sebesar 0. Hanya
poin keempat yang memiliki output aktual 𝑦=0 dan probabilitasnya lebih tinggi dari 0,5 (pada
𝑝=0,62), sehingga salah diklasifikasikan sebagai 1. Semua nilai lainnya diprediksi dengan benar.5
Ketika kita memiliki sembilan dari sepuluh observasi yang diklasifikasikan dengan benar, akurasi
model kita sama dengan 9/10=0,9, yang dapat kita peroleh dengan .score():

Kita dapat memperoleh informasi lebih lanjut tentang keakuratan model dengan confusion matrix
dengan menggunakan confusion_matrix()

Kita dapat memvisualisasikan keakuratan model dengan confusion matrix

Kita bisa mendapatkan laporan klasifikasi yang lebih komprehensif dengan classification_report():

6
Tingkatkan Modelnya
kita dapat meningkatkan model sebelumnya dengan mengatur parameter yang berbeda. Misalnya,
nilai regularisasi C sama dengan 10.0:

Sekarang kita memiliki model lain dengan parameter berbeda. sehingga akan memiliki matriks
probabilitas yang berbeda dan koefisien dan prediksi yang berbeda:

7
Dalam hal ini, kita mendapatkan semua prediksi yang benar, seperti

Skor (atau akurasi) 1 dan nol di bidang kiri bawah dan kanan atas dari confusion matriks
menunjukkan bahwa output aktual dan yang diprediksi adalah sama. Hal ini ditunjukkan dengan
gambar di bawah ini:

Gambar ini mengilustrasikan bahwa perkiraan garis regresi sekarang memiliki bentuk yang
berbeda dan titik keempat diklasifikasikan dengan benar sebagai 0. Tidak ada × merah, jadi tidak
ada prediksi yang salah.

Latihan 2

Mari selesaikan masalah klasifikasi lainnya. Ini mirip dengan yang latihan 1 sebelumnya, kecuali
outputnya berbeda pada nilai kedua. Kode ini mirip dengan kasus sebelumnya di Latihan 1:

8
Contoh kode klasifikasi ini menghasilkan output seperti berikut:

9
Gambar di bawah mengilustrasikan contoh ini dengan delapan prediksi yang benar dan dua yang
salah:

Gambar ini mengungkapkan satu karakteristik penting dari contoh ini. Berbeda dengan yang
sebelumnya di Latihan 1, masalah ini tidak dapat dipisahkan secara linear . Itu berarti Anda
tidak dapat menemukan nilai 𝑥 dan menggambar garis lurus untuk memisahkan pengamatan
dengan 𝑦=0 dan pengamatan dengan 𝑦=1. Tidak ada garis seperti itu. Ingatlah bahwa regresi
logistik pada dasarnya adalah pengklasifikasi linier, jadi secara teoritis kita tidak dapat membuat
model regresi logistik dengan akurasi 1 dalam kasus ini.

C. TUGAS INDIVIDU
Lakukan percobaan praktikum berdasarkan latihan diatas, terjemahkan setiap baris code pemrograman dan
tambahkan grafik output didapatkan dan berikan analisis hasil berupa apakah ada perbedaan jika
perubahan parameter, berikan alasan suatu model tidak dapat dikatakan regresi logistik. Tugas Individu
ditulis dalam format .ipyb atau .py
Deadline pengumpulan : 30 Maret 2023 Pukul 20:00 WIB di GCR

10
D. TUGAS KELOMPOK
Buatlah modul latihan seperti contoh diatas dengan menggunakan regresi logistik dengan packages
StatsModels dalam bentuk laporan pdf dan buatlah tutorialnya.
Deadline pengumpulan : 5 Maret 2023 Pukul 23:59 WIB di GCR

11

Anda mungkin juga menyukai