如何解决如何为 LightGBM 的 mmlspark 实现设置 n_estimators
我正在使用 LightGBMRanker 的 mmlspark 版本(但同样的问题似乎适用于 LightGBMClassifier 等) - 在实例化估算器时,似乎没有办法设置“n_estimators”参数存在于LightGBM 的普通(非火花)版本。
这基本上设置了集合中树的数量..有谁知道如何做到这一点,或者是否以某种方式自动设置?
谢谢!
解决方法
根据 mmlspark
的测试,在 Scala 中您可以使用实例方法 .setNumIterations()
。
def baseModel: LightGBMRanker = {
new LightGBMRanker()
.setLabelCol(labelCol)
.setFeaturesCol(featuresCol)
.setGroupCol(queryCol)
.setDefaultListenPort(getAndIncrementPort())
.setRepartitionByGroupingColumn(false)
.setNumLeaves(5)
.setNumIterations(10)
}
如果您在 Python 中通过 mmlspark
使用 pyspark
,您可以在估算器的构造函数中设置 numIterations
。
from mmlspark.lightgbm import LightGBMRanker
features_col = 'features'
query_col = 'query'
label_col = 'labels'
lgbm_ranker = LightGBMRanker(
labelCol=label_col,featuresCol=features_col,groupCol=query_col,predictionCol='preds',leafPredictionCol='leafPreds',featuresShapCol='importances',repartitionByGroupingColumn=True,numLeaves=32,numIterations=200,evalAt=[1,3,5],metric='ndcg'
)
在 LightGBM 中,n_estimators
和 n_iterations
都表示相同的意思,如 https://lightgbm.readthedocs.io/en/latest/Parameters.html#num_iterations 所述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。