多变量优化问题与机器学习的起点在哪里?

我在寻找一个解决使用机器学习的优化问题的起点。

假设我有一大堆砖块,我需要从中挑选出50块砖来建造一堵墙。我的砖块有不同的类型:有些砖块比其他砖块更坚固,有些则更重,因此每次我选择一组砖块时,我都需要进行一次(相对较慢的)结构计算,以确保墙不会倒塌。我的砖块数量太多,无法通过暴力穷举每一种排列组合,因此我想使用机器学习来帮助我找到可能有效的砖块排列,因为我有几百组之前知道可行的砖块组合。

墙壁还需要满足一些主观标准——如果绿色砖块太多,墙可能会显得难看。我对哪些标准是主观评估的有很好的了解(例如,我知道建筑师关心有多少绿色砖块),但我想通过之前的数据训练一个机器学习模型,以了解应该给这些标准赋予什么样的权重,因为我没有关于绿色砖块数量上限的硬性限制——我只有一组数据显示建筑师过去不喜欢一些有很多绿色砖块的墙壁。

这是机器学习可以帮助我解决的问题吗?应该调查哪些框架/模型来解决这种类型的问题?我很难找到一个起点!


回答:

答案部分取决于你是否需要帮助生成新的组合,还是你想理解哪些变量影响成功/接受的可能性。

如果是后者,你可以将这个问题视为一个分类任务。根据你的描述,你可能会提出一些特征来描述你测试过的或将要测试的砖块集合,例如:绿色砖块的数量、砖块的总重量、砖块的平均重量、最底层砖块的重量。

然后你会有一个表格,每行代表一种砖块配置,每列代表上述生成的特征。你还有一个额外的列用于目标变量,根据配置是否成功,该列的值为真/假。

+---------+------------+-------------+---------------+----------------+| n_green | weight_sum | weight_mean | weight_br_sum | target_success |+---------+------------+-------------+---------------+----------------+|      10 |        102 |         0.6 |            15 | true           ||       2 |         60 |         0.5 |            30 | false          ||      40 |        250 |         1.1 |            15 | true           |+---------+------------+-------------+---------------+----------------+

你可以使用线性模型(例如逻辑回归),其中X为从n_green到target_success列的值数组,y为目标列。你可以查看拟合模型的系数,以了解哪些特征对成功影响最大(尽管你应该首先标准化你的特征)。

然后你可以生成新的组合,并通过拟合的模型运行它们以获得成功的概率。

如果砖块的排列/配置很重要,你可能需要研究神经网络,特别是卷积神经网络(CNN)。你需要使用像ELI5Shap这样的库来研究特征的重要性。

如果是前者,你应该研究生成对抗网络(GANs)

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

发表回复

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