Tutorial Membuat Program Regresi Logistik Dengan Python Menggunakan Anaconda

Share:


Assalamualaikum warohmatullahi wabarokatuh

Programmer Bojonegoro - Hai Guys, pada kesempatan kali ini saya akan membagikan Tutorial Singkat Untuk Membuat Program Regresi Logistik Dengan Python Menggunakan Anaconda.

Sebelum mengikuti Tutorial Membuat Program Regresi Logistik Dengan Python Menggunakan Anaconda ini, silakan download(klik disini) dan install anaconda dulu ya sob.

Kemudian Buka Spyder, dan buat project baru lalu ikuti tutorial membuat program regresi logistik berikut:

Pertama: Load Data

from pprint import pprint
import pandas

data = pandas.read_csv('data.csv')

print(data)

Output

     A     B  C   D  Kelas
0   12  0.20  3  70      1
1   10  0.25  2  80      1
2    9  0.27  3  75      1
3   10  0.30  4  65      0
4    8  0.19  1  90      1
5   11  0.20  3  65      0
6   12  0.32  2  77      1
7   11  0.23  4  83      0
8   10  0.25  4  88      0
9   12  0.32  2  77      1
10  10  0.30  4  65      0
11  11  0.20  3  65      0
12  12  0.20  3  70      1
13   9  0.27  3  75      1
14   8  0.19  1  90      1
15  11  0.23  4  83      0
16  10  0.30  4  65      0
17  10  0.25  2  80      1
18  12  0.20  3  70      1

Kedua: Pisahkan Kolom Kelas Dengan Kolom Fitur

# iki ngilangi kolom paling belakang soale kolom paling belakang kolom kelas
fitur = []
kolom_kelas = []
for i in range(len(data)):
    kolom_fitur = []
    for j in range(len(data.iloc[i])):
        if (j == len(data.iloc[i])-1): # jika iterasi kolom adalah dikolom terakhir maka masukkan nilai ke dalam list kelas
            kolom_kelas.append(data.iloc[i,j])
        else: # jika tidak masukkan ke list kolom fitur
            kolom_fitur.append(data.iloc[i,j])
    fitur.append(kolom_fitur)

print("Data fitur :")
pprint(fitur)
print()
print("Data kelas :")
pprint(kolom_kelas)

Output

Data fitur :
[[12, 0.20000000000000001, 3, 70],
 [10, 0.25, 2, 80],
 [9, 0.27000000000000002, 3, 75],
 [10, 0.29999999999999999, 4, 65],
 [8, 0.19, 1, 90],
 [11, 0.20000000000000001, 3, 65],
 [12, 0.32000000000000001, 2, 77],
 [11, 0.23000000000000001, 4, 83],
 [10, 0.25, 4, 88],
 [12, 0.32000000000000001, 2, 77],
 [10, 0.29999999999999999, 4, 65],
 [11, 0.20000000000000001, 3, 65],
 [12, 0.20000000000000001, 3, 70],
 [9, 0.27000000000000002, 3, 75],
 [8, 0.19, 1, 90],
 [11, 0.23000000000000001, 4, 83],
 [10, 0.29999999999999999, 4, 65],
 [10, 0.25, 2, 80],
 [12, 0.20000000000000001, 3, 70]]

Data kelas :
[1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1]

Ketiga: Ketiga: Bagi Data Menjadi Data Training Dan Data Testing

X_train = fitur[:int(len(fitur)*0.3)] # 1/3 = 0.333
y_train = kolom_kelas[:int(len(kolom_kelas)*0.3)]

X_test = fitur[:int(len(fitur)*0.667)] # 2/3 = 0.667
y_test = kolom_kelas[:int(len(kolom_kelas)*0.667)]

print('Data Training')
print('Fitur : ')
pprint(X_train)
print('Kelas : ')
pprint(y_train)

print()
print('Data Testing')
print('Fitur : ')
pprint(X_test)
print('Kelas : ')
pprint(y_test)

Output

Data Training
Fitur : 
[[12, 0.20000000000000001, 3, 70],
 [10, 0.25, 2, 80],
 [9, 0.27000000000000002, 3, 75],
 [10, 0.29999999999999999, 4, 65],
 [8, 0.19, 1, 90]]
Kelas : 
[1, 1, 1, 0, 1]

Data Testing
Fitur : 
[[12, 0.20000000000000001, 3, 70],
 [10, 0.25, 2, 80],
 [9, 0.27000000000000002, 3, 75],
 [10, 0.29999999999999999, 4, 65],
 [8, 0.19, 1, 90],
 [11, 0.20000000000000001, 3, 65],
 [12, 0.32000000000000001, 2, 77],
 [11, 0.23000000000000001, 4, 83],
 [10, 0.25, 4, 88],
 [12, 0.32000000000000001, 2, 77],
 [10, 0.29999999999999999, 4, 65],
 [11, 0.20000000000000001, 3, 65]]
Kelas : 
[1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0]

Keempat: Lakukan Logistic Regression

from sklearn.linear_model import LogisticRegression

clf = LogisticRegression(C=1E4, tol=1E-25, random_state=101)
clf.fit(X_train, y_train) # gunakan data training untuk method fit

# prediksi kelas dari data testing
predict = clf.predict(X_test)
print('Data Aktual :')
print(y_test)
print('Data Prediksi')
print(predict)

# lihat akurasi
akurasi = clf.score(X_test, y_test)

print('akurasi tebakan pada data test : ')
print(akurasi)

Output

Data Aktual :
[1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0]
Data Prediksi
[1 1 1 0 1 1 1 1 1 1 0 1]
akurasi tebakan pada data test : 
0.666666666667

Kelima: Buat matriks confusion

from sklearn.metrics import confusion_matrix

confusion = confusion_matrix(predict, y_test)
print(confusion)

Output

[[2 0]
 [4 6]]

Alhamdulillah, itulah Tutorial Membuat Program Regresi Logistik Dengan Python Menggunakan Anaconda.

Berikut code program Regresi Logistik, secara lengkap

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 21 13:14:03 2017

@author: Tubianto
"""
#PERTAMA: LOAD DATA
from pprint import pprint
import pandas

data = pandas.read_csv('data.csv')

print(data)

#Kedua: Pisahkan kolom kelas dengan kolom fitur
# iki ngilangi kolom paling belakang soale kolom paling belakang kolom kelas
fitur = []
kolom_kelas = []
for i in range(len(data)):
    kolom_fitur = []
    for j in range(len(data.iloc[i])):
        if (j == len(data.iloc[i])-1): # jika iterasi kolom adalah dikolom terakhir maka masukkan nilai ke dalam list kelas
            kolom_kelas.append(data.iloc[i,j])
        else: # jika tidak masukkan ke list kolom fitur
            kolom_fitur.append(data.iloc[i,j])
    fitur.append(kolom_fitur)

print("Data fitur :")
pprint(fitur)
print()
print("Data kelas :")
pprint(kolom_kelas)

#Ketiga: Bagi data menjadi data training dan data testing
X_train = fitur[:int(len(fitur)*0.3)] # 1/3 = 0.333
y_train = kolom_kelas[:int(len(kolom_kelas)*0.3)]

X_test = fitur[:int(len(fitur)*0.667)] # 2/3 = 0.667
y_test = kolom_kelas[:int(len(kolom_kelas)*0.667)]

print('Data Training')
print('Fitur : ')
pprint(X_train)
print('Kelas : ')
pprint(y_train)

print()
print('Data Testing')
print('Fitur : ')
pprint(X_test)
print('Kelas : ')
pprint(y_test)

#Keempat: Lakukan Logistic Regression
from sklearn.linear_model import LogisticRegression

clf = LogisticRegression(C=1E4, tol=1E-25, random_state=101)
clf.fit(X_train, y_train) # gunakan data training untuk method fit

# prediksi kelas dari data testing
predict = clf.predict(X_test)
print('Data Aktual :')
print(y_test)
print('Data Prediksi')
print(predict)

# lihat akurasi
akurasi = clf.score(X_test, y_test)

print('akurasi tebakan pada data test : ')
print(akurasi)

#Kelima: Buat matriks confusion
from sklearn.metrics import confusion_matrix

confusion = confusion_matrix(predict, y_test)
print(confusion)

Terimakasih dan Semoga Bermanfaat
Baca juga: Cara Membuat Aplikasi Kalkulator Dengan Python Menggunakan Library PySide

Wassalamualaikum warohmatullahi wabarokatuh

No comments