gpt4 book ai didi

python - 为什么使用 scikit-learn 的 GradientBoostingRegressor 从相同的输入中得到不同的输出?

转载 作者:行者123 更新时间:2023-11-30 09:27:34 25 4
gpt4 key购买 nike

例如:

params = {'n_estimators': 200, "max_depth": 4, 'subsample': 1, 'learning_rate': 0.1}
boost = ensemble.GradientBoostingRegressor(**params)
ghostBoost = ensemble.GradientBoostingRegressor(**params)

...

boost.fit(x, y)
ghostBoost.fit(x, y)

...

predictionA = boost.predict(features)
predictionB = ghostBoost.predict(features)

boostghostBoost 完全相同,但 predictionA 不等于 predictionB,为什么会发生这种情况?

最佳答案

尝试将两个模型的 random_state 构造函数参数修复为相同的值。决策树构建过程是随机的,因为每个节点都考虑从可用特征中随机抽取的max_features(有替换无替换)。

编辑:特征采样是在没有替换的情况下完成的。当 max_features=None (默认)时,所有特征都会被评估,但是当 max_depth 不是 None 时,顺序会发生变化,这可能会产生影响目标变量具有非唯一值,导致最佳特征分割并列。

关于python - 为什么使用 scikit-learn 的 GradientBoostingRegressor 从相同的输入中得到不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com