如何优化输入参数?

我正在寻找一种合适的机器方法来优化大约五个程序参数。我目前拥有一个不断增长的过去结果表。

在这种情况下,哪种机器学习方法会比较合适?

编辑:

训练数据是一个简单的表格:

时间 | P1 | P2 | P3 | P4 | 耗时

大约有20万行,并且还在稳步增长。优化目标是最小化“耗时”,虽然耗时还受其他因素影响,但参数是每个样本中影响最大的因素。

我正在寻找推荐的神经网络类型(或其他方法)。我考虑过反向传播或者可能是粒子群优化,但我缺乏经验(只编写过遗传算法),不知道该从哪里开始。


回答:

是的,这很有帮助。请注意,StackOverflow被定义为一个用于特定问题的平台。然而,我认为这个问题足够简单明了。

我不知道这是否有帮助;我试图从简单开始。

你有足够大的数据库来构建预测模型;我建议从逻辑回归开始,看看它在预测自身训练数据时的表现如何。你有可以用这种模型“播种”学习的人工神经网络软件吗?这将让你同时获得两者的优势。

如果新数据最终会超过初始数据(例如,至少增长10倍),那么我建议使用神经网络,即使你必须从头开始。输出是否连续依赖于每个输入?换句话说,任何输入的微小变化是否只会导致输出的微小变化——还是在某些数据值处有大的跳跃?如果变化是连续的,那么你考虑的反向传播应该是最佳选择。

你有计算方法的选择吗?经典的梯度下降是开始的地方。如果它对实际数据不够灵活,那么你可以尝试转向逻辑或高斯方法。

你已经决定了训练的误差函数(成本函数)吗?最小二乘是一个经典的选择,但合适的函数取决于你期望的训练“形状”:你是否需要非常精确地拟合“正常”情况?你是否需要一个特别平滑的超平面?你能容忍对异常值的偏差更大吗?

幸运的是,你有大量数据对应于少数输入;这给你提供了很多好的实验空间。不要害怕在早期实验中添加额外的项。例如,你可以在梯度下降中为每个变量加载很多变化:x, x^2, x^3, sqrt(x), ln(x), Atan(x)等。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注