机器学习模型的泛化能力

我是机器学习的新手,我想就模型泛化问题提一个问题。在我的案例中,我将生产一些机械部件,我对控制输入参数以在最终部件上获得特定属性感兴趣。

更具体地说,我对8个参数(假设为P1, P2, …, P8)感兴趣。为了优化所需生产部件的数量以最大化探索的参数组合,我将问题分成了两组。对于第一组部件,我将改变前4个参数(P1 … P4),而其他参数保持不变。在第二种情况下,我将做相反的操作(变量P5 … P8,常量P1 … P4)。

所以我想知道是否可能创建一个单一的模型,将这八个参数作为输入来预测最终部件的属性。我问这个问题是因为由于我不是同时改变所有8个变量,我认为可能需要为每组参数做一个模型,而且两个不同模型的预测可能无法相互关联。

提前感谢。


回答:

在大多数情况下,拥有两个不同的模型会比一个大模型有更高的准确性。原因是,在局部模型中,模型只会查看4个特征,并且能够识别这些特征之间的模式来进行预测。

但是,这种特定方法几乎肯定无法扩展。现在你只有两组数据,但如果数据增加,你有20组数据。你将无法在生产中创建和维护20个机器学习模型。

对于你的情况,最适合的方法需要一些实验。从数据中随机抽取样本并训练机器学习模型。使用一个大模型和两个局部模型,并评估它们的性能。不仅要看准确性,还要看它们的F1分数、AUC-PR和ROC曲线,以找出最适合你的方法。如果你没有看到性能大幅下降,那么对于整个数据集使用一个大模型将是更好的选择。如果你知道你的数据总是会分为这两组,并且你不关心可扩展性,那么选择两个局部模型。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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