我正在寻找合适的机器方法来优化大约五个程序参数。我所拥有的是一张不断增长的表,其中包含过去的结果。
在这种情况下,哪种机器学习方法可以很好地发挥作用?
编辑:
训练数据是一个简单的表格:
时间| P1 | P2 | P3 | P4 |经过的时间
大约有20万行并且稳定增长。优化是最小化“经过的时间”,这也取决于除参数之外的其他因素,但参数是每个样本中最大的影响。
我正在寻找推荐类型的神经网络(或其他方法)。我考虑过反向传播或PSO,但我缺乏经验(只编码GA)来决定从哪里开始。
答案 0 :(得分:1)
是的,这是一个很大的帮助。请注意,StackOverflow被定义为特定问题的位置。但是,我认为这个很简单。
我不知道这可能有多大帮助;我试图简单地开始。
您有足够的数据库来构建预测模型;我从逻辑回归开始,看看它如何预测自己的训练数据。你有ANN软件可以让你'播种'#34;用这样的模型学习?这将使你获得两全其美。
如果传入的数据最终将主导初始数据(比如,增长至少10倍),那么我建议使用神经网络,即使你必须从头开始。输出是否连续依赖于每个输入?换句话说,任何输入的微小变化是否只会使输出发生微小变化 - 或者某些数据值是否有大的跳跃?如果变化是连续的,那么你对反向传播的想法应该效果最好。
您可以选择计算方法吗?经典的梯度下降是开始的地方。如果它对于实际数据不够灵活,那么你可以尝试转向逻辑或高斯。
您是否决定过培训的错误功能(成本函数)?最小二乘是一个经典的选择,但适当的功能取决于你想要的训练"形状":你必须适应"正常"案件准确度很高?你需要一个特别光滑的brane(超平面)吗?你能容忍更远离异常值吗?
幸运的是,您有少量输入的大量数据;这为您提供了很多实验空间。不要害怕在早期实验中添加额外的术语。例如,您可以为每个变量加载一个具有大量变化的梯度下降:x,x ^ 2,x ^ 3,sqrt(x),ln(x),Atan(x)等。