无法用参数初始化Spark版CatBoostClassifier问题咨询
CatBoost Spark版参数配置解决方法
catboost_spark的CatBoostClassifier遵循Spark MLlib的API设计规范,不能直接在初始化时传入learning_rate、loss_function这类训练参数,需要用以下方式配置:
方法1:使用setParams批量设置
from catboost import catboost_spark model = catboost_spark.CatBoostClassifier() model.setParams( learning_rate=configs['catboost']['learning_rate'], loss_function='Logloss', num_leaves=31 )
方法2:初始化时通过params字典传入
model = catboost_spark.CatBoostClassifier( params={ 'learning_rate': configs['catboost']['learning_rate'], 'loss_function': 'Logloss', 'num_leaves': 31 } )
方法3:单独调用setter方法
每个参数对应一个以set开头的驼峰命名方法:
model = catboost_spark.CatBoostClassifier() model.setLearningRate(configs['catboost']['learning_rate']) model.setLossFunction('Logloss') model.setNumLeaves(31)
注意:参数名在params字典里使用原生CatBoost的命名(比如num_leaves),而setter方法采用驼峰命名(比如setNumLeaves),两者对应关系可参考CatBoost Spark版的参数列表。
内容的提问来源于stack exchange,提问作者user27360168
相关产品推荐
相关产品推荐

