728x90
728x90
오늘은 파이썬에서 편리하게 사용할 수 있는 머신러닝 기법인 AutoML에 대해서 알아보자!!!!
AutoML은 한마디로 정의하면, 머신러닝 기법들의 성능을 한번에 비교하고 최적의 기법을 선택할 수 있다.
너무나 간편하지 않나!!!????
사용법도 간단하다.
- 우선 다음과 같이 필요한 라이브러리를 import 해준다.
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
rc('font', family='HCR Dotum')
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
- 예제데이터로 boston 데이터를 이용하여 AutoML을 진행해보겠다.
from pycaret.datasets import get_data
from pycaret.regression import * # automl 라이브러리(회귀)
boston = get_data('boston') # 보스턴 데이터 불러오기
exp_name = setup(data = boston, target = 'medv')
best_model = compare_models() # 디폴드 모델들
타겟변수만 설정해주면, 손쉽게 다음과 같이 디폴트로 설정된 머신러닝 모델들의 성능들을 비교할 수 있다.
- 사용자가 직접 원하는 모델과 성능평가 기준으로 모델들을 비교할 수도 있다
# estimator 지정
# 원하는 모델들 중 RMSE가 가장 낮은 3개
compare_models(include = ['lr', 'lasso', 'ridge', 'en', 'br', 'huber', 'kr', 'svm', 'knn', 'dt', 'rf', 'et', 'ada', 'gbr', 'mlp', 'lightgbm'],sort = 'RMSE', n_select = 3)
- 상위 2개의 모델을 선정 후 최적의 하이퍼파라미터 튜닝을 해보자.
# Default
best_2 = compare_models(sort = 'RMSE', n_select = 2)
tuned_best2 = [tune_model(i, search_library="scikit-optimize") for i in best_2]
tuned_best2
- 이뿐만 아니라 보팅, 스태킹 등 모델의 성능을 높일 수 있는 추가적인 기법들도 사용 가능하다.
blender = blend_models(tuned_best2) # 보팅
stacker = stack_models(tuned_best2) # 스태킹
best_rmse_model = automl(optimize = 'RMSE')
- 그림으로 확인해보자.(보팅)
# 그림으로 예측결과 확인
import matplotlib.patches as patches
fig, sub= plt.subplots(figsize = (5, 5))
sub.scatter(predict_model(blender)["medv"], predict_model(blender)["Label"], lw = 1., ec = 'k', fc = 'None', alpha = .75)
sub.add_patch(patches.Rectangle((0, 0),60,60,edgecolor = 'red',fill=False) )
sub.plot([0,60],[0,60], ls="-", c=".3")
sub.set_xlabel('True')
sub.set_ylabel('Pred')
- 그림으로 확인해보자.(스태킹)
# 그림으로 예측결과 확인
import matplotlib.patches as patches
fig, sub= plt.subplots(figsize = (5, 5))
sub.scatter(predict_model(stacker)["medv"], predict_model(stacker)["Label"], lw = 1., ec = 'k', fc = 'None', alpha = .75)
sub.add_patch(patches.Rectangle((0, 0),60,60,edgecolor = 'red',fill=False) )
sub.plot([0,60],[0,60], ls="-", c=".3")
sub.set_xlabel('True')
sub.set_ylabel('Pred')
- 그림으로 확인해보자.(최고모델)
# 그림으로 예측결과 확인
import matplotlib.patches as patches
fig, sub= plt.subplots(figsize = (5, 5))
sub.scatter(predict_model(best_rmse_model)["medv"], predict_model(best_rmse_model)["Label"], lw = 1., ec = 'k', fc = 'None', alpha = .75)
sub.add_patch(patches.Rectangle((0, 0),60,60,edgecolor = 'red',fill=False) )
sub.plot([0,60],[0,60], ls="-", c=".3")
sub.set_xlabel('True')
sub.set_ylabel('Pred')
이상 간단하게 파이썬을 이용한 AutoML에 대해서 알아보았다. 자세한 내용은 아래 링크를 남겨두었으니 참고하면 된다!
다음엔 또 다른 내용으로 찾아오겠다!
https://pycaret.gitbook.io/docs/get-started/quickstart#regression
728x90
728x90
'Data Science' 카테고리의 다른 글
파이썬을 이용한 Tensorflow 사용법 (0) | 2022.06.07 |
---|---|
R프로그래밍 Data Type 알아보기 (0) | 2022.06.03 |
파이썬을 이용한 동적 크롤링 (0) | 2022.06.02 |
파이썬을 이용한 엑셀 파일 합치기 (0) | 2022.06.02 |
파이썬을 이용한 SQL engine 사용법 (1) | 2022.06.02 |
댓글