我使用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是否也采用相同的设置(这是相当标准的)。
任何指出差异的指针都会有所帮助。
答案 0 :(得分:0)
scikit-learn
和Spark MLlib之间的可自定义参数和默认值都不同。特别是Spark中的默认学习读取为0.1,最大深度为3。
更重要的是实现合理缩放所需的算法变化。可能最重要的是连续变量的分级。因此,即使输入参数看起来或多或少相同,您也不太可能获得相同的结果。