개발/머신러닝

파이썬. 머신러닝 - Logistic Regression

웅'jk 2022. 12. 1. 18:00

이번에는 머신러닝 기법 중 하나인 

Logistic Regression 을 알아봅시다.

 

이 기법은 분류에 사용됩니다. 

ex) 나이대별로 이메일을 클릭해서 열지 말지를 분류해 보자

     클릭(1) , 논클릭(0)

 

데이터를 가져와 물건을 구매할지(1) 안할지 (0)으로 분류하여 예측하는 인공지능을

만들어 봅시다,

 

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

# read data
df = pd.read_csv('../data/Social_Network_Ads.csv')

# data check unique
df['Purchased'].unique()

# X 설정 y 설정
X = df.loc[:,['Age','EstimatedSalary']]
y = df['Purchased']

# 데이터의 분석을 위해 피쳐 스케일링
from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X= scaler_X.fit_transform(X)

# train / test
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 = 1) 

# LogisticRegression 학습
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state= 1)
classifier.fit(X_train,y_train)

# test
y_pred = classifier.predict(X_test)
classifier.predict_proba(X_test)
# 확률수치로 알려준다.

# 성능 테스트
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, y_pred)

#      y_pred
# y     0    1
# t  0  52   6     -> 0으로 예측 0 결과 52개 , 1로 예측 6개 틀림
# e  1  14   28    -> 0으로 예측 14개 틀림 , 1 로 예측 28개 정답
# s
# t

from sklearn.metrics import accuracy_score
accuracy_score(y_test,y_pred)

#시각화 방법
# heat map 이용
import seaborn as sb
import matplotlib.pyplot as plt

sb.heatmap(data = cm , annot=True, cmap ='RdPu',linewidth=0.7)
plt.show()