CatBoost¶
Snowflake ML Model Registry는 CatBoost(catboost.CatBoostClassifier, catboost.CatBoostRegressor, ``catboost.CatBoostRanker``와 같이 ``catboost.CatBoost``에서 파생된 모델)를 사용하여 생성된 모델을 지원합니다.
log_model 을 호출할 때 options 사전에서 다음 추가 옵션을 사용할 수 있습니다.
옵션 |
설명 |
|---|---|
|
모델 오브젝트에서 사용할 수 있는 메서드 이름 목록입니다. CatBoost 모델에는 대상 메서드가 존재한다고 가정하면 기본적으로 |
|
SHAP를 사용하여 모델에 대한 설명 가능성을 활성화할지 여부입니다. 기본값은 |
|
GPU로 플랫폼에 배포할 때 사용할 CUDA 런타임 버전으로 기본값은 11.8입니다. 수동으로 |
레지스트리가 대상 메서드의 서명을 알도록 sample_input_data 모델을 로깅할 때 signatures 또는 CatBoost 매개 변수를 지정해야 합니다.
예¶
이러한 예제에서는 ``reg``가 ``snowflake.ml.registry.Registry``의 인스턴스라고 가정합니다.
CatBoostClassifier¶
다음 예제에서는 CatBoost 분류기를 학습하고, Snowflake ML Model Registry에 기록하고, 추론과 설명 가능성을 위해 등록된 모델을 사용하는 주요 단계를 보여줍니다. 이 워크플로에는 다음 작업이 포함됩니다.
샘플 데이터 세트의 CatBoost 분류기를 학습합니다.
모델을 Snowflake ML Model Registry에 기록합니다.
예측을 수행하고 예측 확률을 검색합니다.
모델의 예측에 대한 SHAP 값을 가져옵니다.
import catboost
from sklearn import datasets, model_selection
# Load dataset
cal_data = datasets.load_breast_cancer(as_frame=True)
cal_X = cal_data.data
cal_y = cal_data.target
# Normalize column names (replace spaces with underscores)
cal_X.columns = [col.replace(' ', '_') for col in cal_X.columns]
cal_X_train, cal_X_test, cal_y_train, cal_y_test = model_selection.train_test_split(
cal_X, cal_y, test_size=0.2
)
# Train CatBoost Classifier
classifier = catboost.CatBoostClassifier(
iterations=100,
learning_rate=0.1,
depth=6,
verbose=False
)
classifier.fit(cal_X_train, cal_y_train)
# Log the model
model_ref = reg.log_model(
model=classifier,
model_name="my_catboost_classifier",
version_name="v1",
sample_input_data=cal_X_test,
)
# Make predictions
result_df = model_ref.run(cal_X_test[-10:], function_name="predict")
# Get prediction probabilities
proba_df = model_ref.run(cal_X_test[-10:], function_name="predict_proba")
# Get explanations (SHAP values)
explanations_df = model_ref.run(cal_X_test[-10:], function_name="explain")
CatBoostRegressor¶
다음 예제에서는 CatBoost 회귀자를 학습하고, Snowflake ML Model Registry에 기록하고, 등록된 모델을 추론에 사용하는 주요 단계를 보여줍니다. 이 워크플로에는 다음 작업이 포함됩니다.
샘플 데이터 세트의 CatBoost 회귀자를 학습합니다.
모델을 Snowflake ML Model Registry에 기록합니다.
예측을 수행합니다.
import catboost
from sklearn import datasets, model_selection
# Load dataset
cal_data = datasets.load_diabetes(as_frame=True)
cal_X = cal_data.data
cal_y = cal_data.target
cal_X_train, cal_X_test, cal_y_train, cal_y_test = model_selection.train_test_split(
cal_X, cal_y, test_size=0.2
)
# Train CatBoost Regressor
regressor = catboost.CatBoostRegressor(
iterations=100,
learning_rate=0.1,
depth=6,
verbose=False
)
regressor.fit(cal_X_train, cal_y_train)
# Log the model
model_ref = reg.log_model(
model=regressor,
model_name="my_catboost_regressor",
version_name="v1",
sample_input_data=cal_X_test,
)
# Make predictions
result_df = model_ref.run(cal_X_test[-10:], function_name="predict")
설명 가능성 비활성화하기¶
설명 기능이 필요하지 않은 경우 로깅 중에 해당 기능을 비활성화하여 모델 크기와 종속성을 줄일 수 있습니다.
model_ref = reg.log_model(
model=classifier,
model_name="my_catboost_classifier_no_explain",
version_name="v1",
sample_input_data=cal_X_test,
options={"enable_explainability": False},
)