gpt4 book ai didi

python - sklearn 的 GradientBoostingRegressor 对不同的输入给出相同的预测

转载 作者:行者123 更新时间:2023-11-30 09:29:59 24 4
gpt4 key购买 nike

我在尝试训练 sklearn 的 GradientBoostingRegressor 并进行预测时遇到了奇怪的行为。我将举一个例子来演示缩小数据集上的问题,但问题仍然存在于更大的数据集上。我有以下 2 个由大数据集改编而成的小数据集。正如您所看到的,两种情况下的目标变量是相同的,但输入变量不同,尽管它们的值彼此接近。目标变量(Y)位于最后一列。

我有以下代码:

d1 = {'0':[101869.2,102119.9,102138.0,101958.3,101903.7,12384900],  
'1':[101809.1,102031.3,102061.7,101930.0,101935.2,11930700],
'2':[101978.0,102208.9,102209.8,101970.0,101878.6,12116700],
'3':[101869.2,102119.9,102138.0,101958.3,101903.7,12301200],
'4':[102125.5,102283.4,102194.0,101884.8,101806.0,10706100],
'5':[102215.5,102351.9,102214.0,101769.3,101693.6,10116900]}
data1 = pd.DataFrame(d1).T
X1 = data1.ix[:,:4]
Y = data1[5]

d2 = {'0':[101876.0,102109.8,102127.6,101937.0,101868.4,12384900],
'1':[101812.9,102021.2,102058.8,101912.9,101896.4,11930700],
'2':[101982.5,102198.0,102195.4,101940.2,101842.5,12116700],
'3':[101876.0,102109.8,102127.6,101937.0,101868.4,12301200],
'4':[102111.3,102254.8,102182.8,101832.7,101719.7,10706100],
'5':[102184.6,102320.2,102188.9,101699.9,101548.1,10116900]}
data2 = pd.DataFrame(d2).T
X2 = data2.ix[:,:4]
Y = data2[5]

re1 = ensemble.GradientBoostingRegressor(n_estimators=40,max_depth=None,random_state=1)
re1.fit(X1,Y)
pred1 = re1.predict(X1)

re2 = ensemble.GradientBoostingRegressor(n_estimators=40,max_depth=None,random_state=3)
re2.fit(X2,Y)
pred2 = re2.predict(X2)

哪里X1 是一个 pandas 数据帧,对应于 1st 数据集上的第 1 列第 5 列X2 是一个 pandas DataFrame,对应于2nd 数据集上的第 1 列第 5 列Y 代表目标列。我面临的问题是我无法解释为什么 pred1pred2 完全相同?只要X1X2不同,pred1pred2也一定不同,不是吗? ?请帮我找出我的错误假设。

最佳答案

您所观察到的情况完全符合您的预期。您将高复杂度估计器拟合到数据(max_深度=无),因此很容易记住所有数据,这在训练数据上完全过度拟合。然后预测将是您为训练提供的任何标签。

看看 Peter 在这里关于如何正确调整 GradientBoosting 的演讲: https://www.youtube.com/watch?v=-5l3g91NZfQ

无论如何,你至少应该有一个测试集。

关于python - sklearn 的 GradientBoostingRegressor 对不同的输入给出相同的预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687179/

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