有一组关于植物的数据集,根据数值输入产生特定的数值输出。数据集包含了多年来每15分钟的输入值和输出值。
由于在软件中模拟系统的物理特性成本过高,我希望通过机器学习创建一个模型,使其表现得像系统一样。当输入数据时,模型应能提供相应的输出。
在解决方案中,我已经测试了前馈神经网络。结果尚可,但在某些情况下不够准确。
对于这个问题,还有哪些其他方法可用?
回答:
如果这是时间序列任务,你可以使用神经网络的NARX架构或LSTM网络。后者类似于NARX,是一种递归神经网络。Matlab提供了前者的实现。
https://en.m.wikipedia.org/wiki/Nonlinear_autoregressive_exogenous_model
https://en.m.wikipedia.org/wiki/Long_short-term_memory
如果你“仅仅”想对数据拟合多项式,你可以使用不同阶数的基本线性回归来看看哪个效果最好。注意:它被称为线性回归,并不意味着它只能拟合线性模型。
https://en.m.wikipedia.org/wiki/Linear_regression
其他一些可能性包括核方法,如核岭回归或SVR。后者基于支持向量机,通常表现得相当好(至少在我个人经验中用于分类时)。如果你想尝试SVR,可以使用一个小而优秀的库libSVM。Matlab也提供了这种方法。
以下链接展示了这些算法的比较:
http://scikit-learn.org/stable/auto_examples/plot_kernel_ridge_regression.html
编辑:如果我理解正确的话,如果你想从给定时间t
预测未来时间t+1
的输出,这是一个时间序列任务。尝试使用NARX模型或LSTM网络。