-
[머신러닝] 하이퍼파라미터와 AutoML머신러닝 배우기 2023. 12. 8. 15:54
머신러닝을 배워서 모델을 학습하는 것은 코드상으로는 간단합니다. 몇 줄 되지 않는 코드로 머신러닝 모델을 사용했다고 할 수 있습니다.
from sklearn.ensemble import GradientBoostingClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report # (X와 y는 적절한 데이터셋을 사용하도록 수정하세요) # 데이터를 훈련 세트와 테스트 세트로 나눔 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Gradient Boosting Classifier 모델 객체 생성 clf = GradientBoostingClassifier() # 모델을 훈련 세트로 훈련 clf.fit(X_train, y_train) # 테스트 세트로 예측 y_pred = clf.predict(X_test) # 정확도 평가 accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy}')
하지만 다들 아시다시피 이것이 끝이 아니죠. 예시로 든 Gradient Boosting Classifier 모델만 해도 파라미터가 아래와 같습니다.
저희는 성능을 높이기 위해 파라미터를 바꿔보고, 모델을 바꿔보고, 피쳐를 수정해는 등 다양한 시도를 하면서 모델 성능을 평가합니다. "이것을 자동으로 해줄 순 없을까..." 바로 그게 AutoML입니다. 말 그대로 머신러닝을 자동화하는 것입니다. AutoML을 자세히 설명하기 전에 Hyper parameter에 대해서 알 필요가 있는데, 바로 사람이 정해줘야하는 것들을 하이퍼 파라미터라고 부릅니다. (반대로, 컴퓨터가 좋은 값을 찾아주는 것은 파라미터θ 라고 합니다.)
AutoML은 머신러닝 모델을 자동으로 구축하고 최적화하는 기술입니다. 최적의 모델을 찾기 위해 다양한 알고리즘과 하이퍼파라미터를 탐색하고, 최적의 조합을 찾는 과정을 수행합니다. Feature Engineering, Model Selection, Hyper parameter tuning 측면에서 발생하는 복잡한 과정들을 자동화하여 사용자가 전문적인 지식 없이도 더 효과적으로 모델을 구축할 수 있도록 합니다. 어떤 변수를 쓰고, 어떤 모델을 쓰고, 어떤 파라미터 값을 넣어줘야 하는지 기존에 사람이 결정했다면 이제는 컴퓨터가 정해주는 것이죠!
즉, Auto ML 이 해야하는 3가지 큰 축은
- Automated Feature Engineering
- Automated Model Selection
- Automated HPO, hyper parameter optimization = 하이터파라미터 튜닝 = 모델 튜닝
Google AutoML, H2O.ai, DataRobot, TPOT, Auto-Sklearn 등 많은 기업들에서 AutoML 관련 툴들과 플랫폼을 많이 연구하고 노력하고 있습니다. 하루 빨리 코드한 줄로, 빠르고 쉽게 성능 좋은 모델을 만들 수 있길 바래봅니다!
'머신러닝 배우기' 카테고리의 다른 글
[머신러닝] SVM 서포트벡터머신 쉽게 이해하기 (1) 2023.12.11 [머신러닝] 변수가 모델에 얼마나 큰 영향을 끼치니? 확인하는 두가지 방법 feature importance, permutation importance (0) 2023.12.11 XG Boost 탄생과 모델의 장단점 (2) 2023.12.05 [머신러닝] 분류 모델 성능 평가 방법 (2) ROC Curve, AUC (1) 2023.12.05 [머신러닝] 분류 모델 성능 평가 방법 (1) Confusion Matrix (2) 2023.12.05