본문 바로가기
인공지능(AI)/머신러닝

[핸즈온 머신러닝] 2장 머신러닝 프로젝트 처음부터 끝까지

by hyezzisss 2022. 1. 8.

⭐ 데이터 준비단계 -> 모니터링 도구 구축 -> 사람의 평가 파이프라인 세팅 -> 주기적인 모델 학습 자동화

1. 모델 선택과 훈련

1) 교차 검증을 사용한 평가

  • k-겹 교차 검증
from sklearn.model_selection import cross_val_score
scores = sross_val_score(tree_reg, housing_prepared, housing_labels,
                        scoring = "neg_mean_squarred_error", cv=10)
tree_rmse_scores = np.sqrt(-scores)

실험한 모델을 모두 저장해놓으면 필요할 때 쉽게 복원할 수 있다.

-> 파이썬의 pickle 패키지나 큰 넘파이 배열을 저장하는데 아주 효율적인 joblib을 사용하여 사이킷런 모델 간단히 저장 가능하다.

import joblib
joblib.dump(my_model, "my_model.pkl")
# ~~~~
my_model_loaded = joblib.load("my_model.pkl")

2. 모델 세부 튜닝

1) 그리드 탐색

  • 최적의 하이퍼파라미터 조합을 탐색
  • 어떤 하이퍼파라미터 값을 지정해야 할지 모를 때는 연속된 10의 거듭제곱을 시도해보는 것이 좋음
  • 비슷하게 이상치나 값이 빈 특성을 다루거나 특성 선택 등을 자동으로 처리하는 데 사용
  • 비교적 적은 수의 조합을 탐구할 때 좋음

2) 랜덤 탐색

  • 하이퍼파라미터 탐색 공간이 커지면 RandomizedSearchCV를 사용하는 것이 좋음
  • 가능한 모든 조합을 시도하는 대신 각 반복마다 하이퍼파라미터에 임의의 수를 대입하여 지정한 횟수만큼 평가 -> 랜덤 탐색 1000번으로 실행하면 각기 다른 1000개의 값을 탐색

3) 앙상블 방법

  • 최상의 모델을 연결 -> 모델의 그룹이 최상의 단일 모델보다 더 나은 성능을 발휘할 때가 많음

3. 론칭, 모니터링, 시스템 유지 보수

1. 훈련된 사이킷런 모델을 저장하여 predict() 메서드를 호출해 예측 만들기

2. REST API를 통해 질의할 수 있는 전용 웹 서비스로 모델 감싸기

3. 구글 클라우드 AI 플랫폼과 같은 클라우드에 배포하기

 

댓글