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)

이 게시글의 인공지능에 대한 성능평가는 아래의 링크로 이동하면 된다.
'Machine Learning' 카테고리의 다른 글
| imblearn 라이브러리 - up sampling 기법으로 불균형 데이터 다루기 (0) | 2022.12.02 |
|---|---|
| Logistic Regression - Confusion Matrix 인공지능 성능 평가 (0) | 2022.12.02 |
| Linear Regression ( 선형 회귀 )- 인공지능으로 데이터 결과 예측하기 (0) | 2022.12.01 |
| Dataset 을 Training 용과 Test용으로 나누기 (0) | 2022.12.01 |
| 머신러닝 - Label Encoding , Ont-hot Encoding (0) | 2022.12.01 |