在使用XGBoost的多分类算法时,需要设置num_class参数为分类的数量。但是在AWS SageMaker中,可以通过设置"objective"参数为"multi:softmax"或"multi:softprob",来自动设置num_class参数。如果手动设置了num_class参数,可能会出现错误。因此,解决方法是删除手动设置的num_class参数。
示例代码:
from sagemaker import get_execution_role
from sagemaker.amazon.amazon_estimator import get_image_uri
role = get_execution_role()
container = get_image_uri(region_name='us-east-1',
repo_name='sagemaker-xgboost',
repo_version='0.90-1')
xgb = sagemaker.estimator.Estimator(container,
role,
train_instance_count=1,
train_instance_type='ml.m4.xlarge',
output_path=output_location,
sagemaker_session=sagemaker_session)
xgb.set_hyperparameters(objective='multi:softmax',
num_round=100)
xgb.fit(inputs=data_channels,
logs=True)