首页 > 解决方案 > Catboost 回归。函数外推

问题描述

我是 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()

这张照片显示了我想要的:

在此处输入图像描述

标签: pythonmachine-learningregressioncatboost

解决方案


要理解的是机器学习不是魔术。

First ML 不能奇迹般地预测一切。

其次,您需要选择正确的 ML 算法,因为没有一种最好的算法可以一直运行得最好。见:https ://en.wikipedia.org/wiki/No_free_lunch_theorem

第三,输入特征很关键。你在这个问题中使用的输入特征看起来像噪音,因为它没有捕捉到数据的周期性,而且 CB 也不适合理解周期性。

对于您的问题,您需要找到一种更适合预测周期性的 ML 算法。

一些更复杂的使用循环神经网络。我怀疑此时这对你来说太先进了。

我会放弃这个问题并找到一个更易于处理/更适合 ML 的问题。

像房价预测这样的东西会很好。


推荐阅读