如何为LightGBM的mmlspark实现设置n_估计器



我使用的是LightGBMRanker的mmlspark版本(但同样的问题似乎也适用于LightGBMClassifier等(-在实例化估计器时,似乎没有办法设置;n_估计器";LightGBM的正常(非火花(版本中存在的参数。

这基本上设置了集合中的树数。。有人知道如何做到这一点吗,或者这是不是以某种方式自动设置的?

谢谢!

根据mmlspark的测试,在Scala中可以使用实例方法.setNumIterations()

def baseModel: LightGBMRanker = {
new LightGBMRanker()
.setLabelCol(labelCol)
.setFeaturesCol(featuresCol)
.setGroupCol(queryCol)
.setDefaultListenPort(getAndIncrementPort())
.setRepartitionByGroupingColumn(false)
.setNumLeaves(5)
.setNumIterations(10)
}

参考:https://github.com/Azure/mmlspark/blob/36ee274e93e1f7a07fc863061ad726e5ca5b49ee/src/test/scala/com/microsoft/ml/spark/lightgbm/split2/VerifyLightGBMRanker.scala#L62

如果您通过pyspark在Python中使用mmlspark,则可以在估计器的构造函数中设置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'
)

参考:https://github.com/Azure/mmlspark/blob/663d9650d3884ece260a457d9b016088380c2cb9/notebooks/samples/LightGBM%20-%20概述.ipynb

在LightGBM中,n_estimatorsn_iterations的含义相同,如https://lightgbm.readthedocs.io/en/latest/Parameters.html#num_iterations.

最新更新