python - 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()
这张照片显示了我想要的:
解决方案
要理解的是机器学习不是魔术。
First ML 不能奇迹般地预测一切。
其次,您需要选择正确的 ML 算法,因为没有一种最好的算法可以一直运行得最好。见:https ://en.wikipedia.org/wiki/No_free_lunch_theorem
第三,输入特征很关键。你在这个问题中使用的输入特征看起来像噪音,因为它没有捕捉到数据的周期性,而且 CB 也不适合理解周期性。
对于您的问题,您需要找到一种更适合预测周期性的 ML 算法。
一些更复杂的使用循环神经网络。我怀疑此时这对你来说太先进了。
我会放弃这个问题并找到一个更易于处理/更适合 ML 的问题。
像房价预测这样的东西会很好。
推荐阅读
- python - Python:随机截取模型(必须复制 R 代码)
- amazon-web-services - Which object encryption options are available with Amazon Simple Storage Service (S3)??
- php - 从 php 调用 .net 服务
- html - turn div into link on mobile screen size
- android - My app lags for about a couple of seconds before it become responsive again
- javascript - how to read message in reject(r => new Error({ id, message: 'target'}));
- html - How to deal with params from form being nil? (NoMethodError)
- vba - 在访问表单上的动态记录集上获取 CurrentRecord
- c# - How do I convert Time(7) to .NET Ticks?
- image-processing - 特征匹配展示