我在尝试训练sklearn的GradientBoostingRegressor或时遇到了奇怪的行为并进行了预测。我将举一个例子来演示一个简化数据集的问题,但问题仍然存在于一个更大的数据集中。我有以下2个从大数据集改编的小数据集。正如你所看到的,目标变量对于两种情况都是相同的,但是输入变量虽然它们的值彼此接近,但是不同。目标变量(Y)位于最后一列。sklearn的GradientBoostingRegressor对不同的输入给出了相同的预测
我有以下代码:
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是大熊猫对应于列1通过第5列上第一数据集 X2数据帧是一个大熊猫数据帧对应第1列至第5列表示第二数据集 Y表示目标列。 我面临的问题是,我无法解释为什么pred1是完全一样的pred2?只要X1和X2是不一样的PRED1和PRED2也一定是不同的,他们musn't?请帮我找到我的错误假设。