AUC中的差异b / w Apache-Spark的GBT和sklearn

时间:2015-12-10 09:13:43

标签: apache-spark scikit-learn pyspark apache-spark-mllib

我使用Python的sklearn以及Spark的本地独立MLlib实现尝试了GBDT,其中包含二进制分类问题的默认设置。 在这两种情况下,我保持numcterations,loss函数相同。这些功能都是真正有价值和持续的。 然而,与sklearn相比,MLLib实施中的AUC远远不够。 这些是sklearn分类器的参数:

GradientBoostingClassifier(
    init=None, learning_rate=0.001, loss='deviance',max_depth=8,
    max_features=None, max_leaf_nodes=None, min_samples_leaf=1, 
    min_samples_split=2, min_weight_fraction_leaf=0.0, 
    n_estimators=100, random_state=None, subsample=1.0, 
    verbose=0, warm_start=False) 

我想检查是否有办法在MLlib中设置和设置这些参数,或者MLlib是否也采用相同的设置(这是相当标准的)。

任何指出差异的指针都会有所帮助。

1 个答案:

答案 0 :(得分:0)

scikit-learn和Spark MLlib之间的可自定义参数和默认值都不同。特别是Spark中的默认学习读取为0.1,最大深度为3。

更重要的是实现合理缩放所需的算法变化。可能最重要的是连续变量的分级。因此,即使输入参数看起来或多或少相同,您也不太可能获得相同的结果。

另请参阅:Scalable Distributed Decision Trees in Spark MLLib