CatBoost

Snowflake ML Model Registry는 CatBoost(catboost.CatBoostClassifier, catboost.CatBoostRegressor, ``catboost.CatBoostRanker``와 같이 ``catboost.CatBoost``에서 파생된 모델)를 사용하여 생성된 모델을 지원합니다.

log_model 을 호출할 때 options 사전에서 다음 추가 옵션을 사용할 수 있습니다.

옵션

설명

target_methods

모델 오브젝트에서 사용할 수 있는 메서드 이름 목록입니다. CatBoost 모델에는 대상 메서드가 존재한다고 가정하면 기본적으로 predict, predict_proba, 대상 메서드가 있습니다.

enable_explainability

SHAP를 사용하여 모델에 대한 설명 가능성을 활성화할지 여부입니다. 기본값은 True 입니다. 활성화하는 경우 explain 메서드는 로깅된 모델에서 사용할 수 있습니다.

cuda_version

GPU로 플랫폼에 배포할 때 사용할 CUDA 런타임 버전으로 기본값은 11.8입니다. 수동으로 None 으로 설정하면 GPU가 있는 플랫폼에 모델을 배포할 수 없습니다.

레지스트리가 대상 메서드의 서명을 알도록 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")
Copy

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")
Copy

설명 가능성 비활성화하기

설명 기능이 필요하지 않은 경우 로깅 중에 해당 기능을 비활성화하여 모델 크기와 종속성을 줄일 수 있습니다.

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},
)
Copy