使用哪种算法来预测某些任务的持续时间

数据挖掘 机器学习 算法
2022-01-21 16:41:04

我有一个包含 36K 进程的数据集,每个进程有 7 个特征。每组代表一项任务,我知道完成每项任务需要多长时间。我想建立一个能够预测未来任务持续时间的模型。

我只了解了决策树 (DT) 并尝试将其应用于我的问题。结果准确度得分为 0.03。我认为DT不适合,因为时间是连续的,DT是为了分类。

哪种算法适合持续时间预测?

我的环境:带有 sklearn 的 Python,如果这很重要的话。

3个回答

其他人所说的是准确的,您需要建立某种回归模型。根据任务持续时间的规模,您必须对其建模略有不同。

事实上,有一整类模型试图预测持续时间。这些被称为生存模型。这是一个关于生存分析的 Python 库。

但这些模型是相当学术的。一个典型的技巧是使用 Gamma、Poison 或 Log-Normal 回归,因为这些模型预测非负值,所以效果很好。

您可能想查看 scikit 的DecisionTreeRegressor() 类决策树回归器将预测一个实数。相比之下,决策树分类器将为观察预测离散类。更高级的版本是RandomForestRegressor() 类,它构建回归树的随机森林第三个要考虑的选项可能是GradientBoostedRegressor()

我还推荐这个来自 Scikit 的流程图,它可以帮助你选择一个估算器。

您面临一个回归问题:您的目标是在给定一组输入变量的值(这些输入变量可以是任何类型:数字、类别等)的情况下预测连续变量的值。通常应用决策树分类问题,您的目标是预测离散值。

sklearn 中有几种回归方法可供您使用。最简单的,也许是你应该开始的,是线性模型:http ://scikit-learn.org/stable/modules/linear_model.html 。

请注意,您可能需要转换输入数据。例如,如果其中一个特征是分类的,您可能需要将其转换为一组二进制变量为了获得更好的结果,其他过程,如数据规范化,也可能是可取的。

编辑:如评论中所述,决策树也可以应用于回归问题。但是,根据我自己的经验,您通过此算法获得的输出曲线通常具有可能影响最终偏差的逐步形状(例如,参见 scikit-learn 文档中的示例。)。我建议不要约束自己并尝试不同类型的算法。