Machine Learning

Logistic Regression ( 로지스틱 회귀 ) - 인공지능으로 데이터 결과 예측하기

yugyeong 2022. 12. 1. 18:03

 

Logistic Regression

 

아래의 데이터프레임에서 나이( Age )와 연봉( EstimatedSalary ) 데이터를 가지고, 고객이 구매( Purchased )를 할지 안할지 예측하는 인공지능을 만들 것이다.

 

구매를 할지 말지 여부에 대한 것은 분류 문제이기 때문에  Logistic Regression 을 이용하면 된다.

 

 

 

 

먼저 변수 X, y 에 훈련데이터와 테스트 데이터 컬럼을 저장해준다.

 

 

 

 

Logistic Regression 은 feature scaling 을 해주어야한다.

정규화 방법으로 데이터를 피쳐 스케일링 해준다.

 

from sklearn.preprocessing import MinMaxScaler 를 임포트 해준다.

메모리에 MinMaxScaler() 를 올려주어야 하기 때문에 변수 scaler_X 에 저장을 해준다.

fit_transform() 을 이용하여서 데이터를 정규화 해준다.

 

 

 

scaler_X = MinMaxScaler()

X = scaler_X.fit_transform(X)

 

 

 

 

데이터를, 테스트용 데이터와 훈련용 데이터로 나눠주기 위해서 필요한 라이브러리를 임포트 해준다.

 

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)

 

 

 

 

Logistic Regression 로 훈련용 데이터를 인공지능에 학습 시키기 위해 필요한 라이브러리를 임포트 해준다.

 

메모리에 LogisticRegression 를 올려주기 위해서 변수 classifier 에 저장을 해준다. 여기서 random_state 는 seed 값이다.

변수 classifier 를 인공지능에 학습시키기 위해서 fit() 을 해준다.

괄호 안에는 학습을 시키기 위한 X_train 데이터와 y_train 데이터를 넣어준다.

 

from sklearn.linear_model import LogisticRegression

classifier = LogisticRegression(random_state= 1)

classifier.fit(X_train, y_train)

 

 

학습이 잘 되었는지 테스트 하기 위해서는 predict 함수를 이용하면 된다.

classfier.predict(X_test) 를 하여서 변수 y_pred 저장을 하였다.

y_pred 값을 확인해보면, 테스트 데이터의 결과값이 도출된 것을 볼 수 있다.

 

y_pred = classifier.predict(X_test)

 

 

 

현재 데이터프레임 ['Purchased'] 컬럼에서는 고객이 구매를 안했을 경우 0 , 구매를 한 경우 1 로 데이터가 들어있다.

 

만약 인공지능이 예측한 데이터에서 데이터 결과를 몇퍼센트로 나누어서 결과값이 도출됐는지 알고싶을 때는,

predict_proba() 를 이용하면 된다.

 

 

classifier.predict_proba(X_test)

 

 

 

 

이 게시글의 인공지능에 대한 성능평가는 아래의 링크로 이동하면 된다.

https://yu1129.tistory.com/52