제퍼넷 로고

기계 학습 모델 최적화 자동화

시간

기계 학습 모델 최적화 자동화

이 문서에서는 머신 러닝을 위해 베이지안 튜닝 및 밴디트를 사용하는 방법에 대한 개요를 제공합니다.


By 히만 슈 샤르마, 생물 정보학 데이터 분석가



님이 촬영 한 사진 헌터 해릿 on Unsplash

 

머신 러닝 모델을 만드는 것은 어려운 작업입니다. 데이터에 가장 적합한 모델을 만들어야하고 더 나은 성능과 정확성을 위해 최적화 할 수 있기 때문입니다. 일반적으로 기계 학습 모델을 만드는 것은 쉽지만 최상의 매개 변수를 찾고 최적화하는 것은 시간이 걸리는 프로세스입니다.

이 프로세스를 자동화하고 기계 학습 모델을 쉽게 만들 수있는 특정 라이브러리 / 패키지가 있습니다. 이러한 패키지를 사용하여 데이터에 가장 적합한 모델과 모델에 가장 적합한 매개 변수를 선택할 수 있습니다.

이 기사에서는 주어진 기계 학습 문제를 해결하기 위해 최상의 모델을 선택하고 하이퍼 파라미터를 조정하는 데 사용되는 BTB (Bayesian Tuning and Bandits)에 대해 설명합니다. 기계 학습을 위해 BTB에 제공되는 다양한 기능을 살펴 보겠습니다.

시작하자…

필수 라이브러리 설치

 
이 기사에서는 Google Colab을 사용합니다. 아래의 명령어를 사용하여 필요한 라이브러리, 즉 BTB를 설치합시다.

!pip install baytune


필요한 라이브러리 가져 오기

 
이 단계에서는 sklearn, btb 등 필요한 모든 라이브러리를 가져옵니다.

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import SGDClassifier
from sklearn.metrics import f1_score, make_scorer
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier, ExtraTreeClassifier
from btb.tuning import Tunable
from btb.tuning import hyperparams as hp
from btb import BTBSession


데이터 세트로드 및 모델 정의

 
다음으로 sklearn에서 유명한 유방암 데이터 세트를 가져오고 원하는 다른 모델의 이름을 포함 할 사전도 정의합니다.

dataset = load_breast_cancer()
models = { 'DTC': DecisionTreeClassifier, 'SGDC': SGDClassifier, 'ETC': ExtraTreeClassifier,
}


다른 모델의 점수 계산

 
다음으로 모델 이름을 정의한 후 다른 모델의 점수를 계산하는 데 사용할 함수를 만듭니다. 이 기능을 사용하여 다른 모델의 점수를 비교합니다.

def scoring_function(model_name, hyperparameter_values): model_class = models[model_name] model_instance = model_class(**hyperparameter_values) scores = cross_val_score( estimator=model_instance, X=dataset.data,y=dataset.target, scoring=make_scorer(f1_score, average='macro'))
return scores.mean()


조정 가능한 초 매개 변수 정의

 
이 단계에서는 조정하려는 하이퍼 파라미터를 정의하고 범위가있는 다른 모델에 대해 다른 하이퍼 파라미터를 제공합니다.

tunables = { 'DTC': Tunable({ 'max_depth': hp.IntHyperParam(min=3, max=200), 'min_samples_split': hp.FloatHyperParam(min=0.01, max=1) }), 'ETC': Tunable({ 'max_depth': hp.IntHyperParam(min=3, max=200), 'min_samples_split': hp.FloatHyperParam(min=0.01, max=1) }), 'SGDC': Tunable({ 'max_iter': hp.IntHyperParam(min=1, max=5000, default=1000), 'tol': hp.FloatHyperParam(min=1e-3, max=1, default=1e-3), }),
}


BTB 세션 생성

 
이제 이것이 마지막 단계입니다. 조정 가능한 하이퍼 파라미터와 위에서 정의한 스코어링 함수를 전달하여 어떤 모델이 데이터에 가장 적합한 지 알아내어 BTB 세션을 만듭니다.

session = BTBSession(
tunables=tunables,
scorer=scoring_function
)


이제 세션을 정의한 후 원하는 반복 횟수를 전달하여이 세션을 실행합니다.

best_proposal = session.run(20)


이제 우리는 해당 모델에 대한 최상의 하이퍼 파라미터 값과 함께 최상의 모델 이름이 포함 된 사전 인 결과를 출력합니다.

best_proposal




Best Model (출처 : 저자별)

 

이것이 BTB를 사용하여 최고의 하이퍼 파라미터 값을 가진 최고의 머신 러닝 모델을 선택하는 방법입니다. 다른 데이터 세트로 이것을 시도하고 응답 섹션에 귀하의 의견을 알려주십시오.

이 기사는 피유시 잉갈레.

가기 전에

 
감사 읽기 위해! 저에게 연락하고 싶다면 hmix13@gmail.com 또는 my LinkedIn 프로필. 내 깃허브 다양한 데이터 과학 프로젝트 및 패키지 자습서에 대한 프로필. 또한 자유롭게 탐색하십시오. 내 프로필 데이터 과학과 관련하여 제가 작성한 여러 기사를 읽었습니다.

 
바이오 : 히만 슈 샤르마 MEDGENOME의 생물 정보학 데이터 분석가입니다. Himanshu는 데이터 세트 분석, 기계 학습 및 딥 러닝 모델 생성에 대한 실무 경험이있는 데이터 과학 애호가입니다. 그는 다양한 데이터 과학 프로젝트와 다양한 조직을위한 Poc를 만드는 작업을 수행했습니다. 그는 시계열 예측을위한 RNN과 함께 이미지 인식 및 객체 감지를위한 CNN 모델을 만드는 데 방대한 경험을 가지고 있습니다. Himanshu는 활발한 블로거이며 데이터 과학 분야에서 약 100 개 이상의 기사를 게시했습니다.

실물. 허가를 받아 다시 게시했습니다.

관련 :

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://www.kdnuggets.com/2021/03/automating-machine-learning-model-optimization.html

spot_img

최신 인텔리전스

spot_img