我是ML的新手,并且对catboost有疑问。因此,我想预测函数值(例如cos | sin等)。
我检查了所有东西,但我的预测始终是直线
是否可能,如果可以,我该如何解决我的问题
我很乐意发表任何评论))
train_data = np.array(np.arange(1, 100, 0.5))
test_data = np.array(np.arange(100, 120, 0.5))
train_labels = np.array(list(map(lambda x : math.cos(x), np.arange(1, 100, 0.5))))
model = CatBoostRegressor(iterations=100, learning_rate=0.01, depth=12, verbose=False)
model.fit(train_data, train_labels)
preds = model.predict(test_data)
plt.plot(preds)
plt.show()
这张照片显示了我想要的:
最佳答案
我编译了代码,发现对于所有条目,预测向量都包含相同的值[-0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229 -0.09229]
我认为您的模型处于高偏差(欠拟合)状态。尝试增加特征数量或使用多项式特征。
关于python - Catboost回归。函数外推,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54062909/