【发布时间】:2020-12-05 06:11:32
【问题描述】:
我有这个随机森林模型 其中 X_train, X_test 以及 y_train, y_test 是形状为 (1,n) 和 (1,m) 的 numpy 数组 即输入仅包含一个特征
model_1 = RandomForestRegressor(n_estimators=50,random_state=42)
model_1.fit(X_train.reshape(-1,1), y_train.reshape(-1,1))
print(model_1.score(X_test.reshape(-1,1), y_test.reshape(-1,1)))
它完全可以很好地拟合训练数据,然后分别为测试数据给出大约 0.95 的分数,但现在如果我想预测
future = np.array([int(i) for i in range(len(X)+1,len(X)+11)])
所以未来是
array([155, 156, 157, 158, 159, 160, 161, 162, 163, 164])
我这样做了:
model_1.predict(future.reshape(-1, 1))
但在输出中我得到了所有相同的值
array([2985.02, 2985.02, 2985.02, 2985.02, 2985.02, 2985.02, 2985.02,
2985.02, 2985.02, 2985.02])
有人能告诉我为什么我的所有预测都是同一个数字吗? 这只是不会发生在 10 个未来值,甚至是 100 个值。 还有其他方法可以手动预测结果吗?
【问题讨论】:
-
当您尝试预测测试数据时会发生什么?我的意思是
model_1.predict(X_test.reshape(-1,1))的结果是什么? -
@büşraçelik for X_test 输出不是同一个数字
-
你能举个小例子吗(也许 m 和 n 小于 5 或小于 10)
{X|y}_train和 @987654328 @ 那会显示问题吗?我不知道这是否会涉及重组您的整个模型,但如果不是,那么能够重现您的问题会有所帮助。
标签: python pandas numpy random-forest