我正在尝试使用机器学习来预测碰撞测试期间材料的特性,但每个数据点都需要物理碰撞一辆昂贵的玩具车,所以我只能收集几百个数据点。最终目标是使用经过训练的模型来确定如何优化材料强度,因为我可以在材料中调整参数,我将其用作输入。
什么类型的模型能够:
处理非常少的数据点(最大限度地减少必要的崩溃次数)
准确了解输入(设计选择)和输出(崩溃性能)之间可能非常复杂的关系
然后能够被探索以在尽可能少的崩溃中找出应该对输入进行哪些更改以最大化输出
我正在尝试使用机器学习来预测碰撞测试期间材料的特性,但每个数据点都需要物理碰撞一辆昂贵的玩具车,所以我只能收集几百个数据点。最终目标是使用经过训练的模型来确定如何优化材料强度,因为我可以在材料中调整参数,我将其用作输入。
什么类型的模型能够:
处理非常少的数据点(最大限度地减少必要的崩溃次数)
准确了解输入(设计选择)和输出(崩溃性能)之间可能非常复杂的关系
然后能够被探索以在尽可能少的崩溃中找出应该对输入进行哪些更改以最大化输出
你的问题的描述是模糊的。如果要进行因果分析,则需要考虑bias-variance-tradeoff。对于因果分析,您将坚持低偏差(例如,使用“最佳线性无偏估计量”,如普通最小二乘回归),而大多数 ML 模型,如神经网络或提升,则选择低方差。
我仍然不清楚:您的数据看起来如何。如果您有更多功能/变量() 比观察 () 你的问题是高维的。对于高维问题,使用Lasso。如果>并且您说至少有 40 多个自由度,您可以简单地应用 OLS 回归。如果您(可以)使用 OLS 并且您关心显着性和置信带,请使用稳健的标准误差(hc2,hc3)。
如上所述,使用 OLS 或 Lasso 可能会有很大的差异。在因果模型中,你可以做的是对,例如添加多项式,或者您可以添加两个交互,例如.
最后,如果“复杂性”源于非线性. 但是,在这种情况下,您会朝着减小方差的方向前进(以可能引入不需要的偏差为代价)。
我猜你的问题的性质是“高维”。这有点特别(我不是这里的专家)。看看“统计学习的要素”,第 18 章。这本书很好地概述了处理这个问题的可能选项。
由于您要处理输入之间非常复杂的关系,因此模型应该足够强大。例如,神经网络似乎比 svm 表现得更好。问题是数据集中的点数。但是,这只是意味着您应该尝试为您的任务开发适当的架构。nn 在小型数据集(具有数百个实例)上显示出良好的结果存在许多挑战。所以,我建议你尝试建筑。有两个链接示例如何构建基线模型https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/(回归问题的数据集)
https://janakiev.com/notebooks/keras-iris/(iris是一个小而简单的分类数据集)
这一步相当容易。然后你可以尝试改变层数和神经元的数量,添加 dropout 以防止在小数据集上过拟合。尽管这需要努力,但结果可能会很高。
对我来说,其他好的模型是梯度提升。它包括树的集合(GB 通常基于树)并在小型数据集上表现良好https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html但是这个模型也应该针对您的问题,正则化技术将有助于减少少量示例的过度拟合。
主要信息是:没有通用算法,它在小数据和高复杂度的情况下从头开始效果很好,但是有一系列工具可以使强大的算法在小观察(正则化、dropout、深度和 GB 中的树数)上表现良好,学习率)。