1) 지도학습 (Supervised Learning)
2) 비지도학습 (Unsupervised Learning)
3) 강화학습 (Reinforcement Learning)
예측모델 구축 코드
로지스틱 회귀 분류 모델
import pandas as pd
import numpy as np
import plotly.express as px
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 이진 / 다중 클래스 분류
# 로지스틱 회귀모델은 회귀 모델이지만 분류에 사용
from sklearn.metrics import accuracy_score
import pickle
1) 데이터 핸들링
df1 = pd.read_csv('01_Data.csv')
df1['해약여부'] = df1['State'].replace( {'계약확정' : 0, '기간만료' : 1,
'해약확정' : 1, '해약진행중' : 1})
# 결측값 제거
df2 = df1.dropna()
# 컬럼 확인
# df2.columns
2) 목표변수 / 설명변수 선택
X = df2[['Age', 'Credit_Score', 'Amount_Month', 'Term']]
Y = df2['해약여부']
3) 학습 데이터와 검증 데이터를 분할
x_train, x_test, y_train, y_test = train_test_split(X, Y,
random_state = 5555)
4) 학습 실시 (분류) 로지스틱 회귀
model = LogisticRegression()
model.fit(x_train, y_train)
5. 성능 확인
y_train_pred = model.predict(x_train)
y_test_pred = model.predict(x_test)
print('학습 정확도 : ', accuracy_score(y_train, y_train_pred))
print('테스트 정확도 : ', accuracy_score(y_test, y_test_pred))
6) 새로운 데이터 입력
x1 = input('Age를 입력하시오')
x2 = input('Credit_Score를 입력하시오')
x3 = input('Amount_Month를 입력하시오')
x4 = input('Term를 입력하시오')
input_data = pd.DataFrame(data = [[x1, x2, x3, x4]])
input_data.columns = X.columns
# 새로운 값 예측
model.predict(input_data)[0]
# 예측 결과 : 정상
7. 생성한 모델을 파일로 저장
pickle.dump(model, open('model.sav', 'wb')) # wb : write binary : 쓰기