针对特定问题的算法建议

数据挖掘 机器学习 阿帕奇火花 排行
2022-02-23 10:05:33

我正在解决一个问题,其中我有一些关于一些发电机组的数据集。这些单元中的每一个都已被激活以在过去运行,并且在激活时,一些单元出现了一些问题。我现在拥有所有这些数据,我想为这些发电机组提出某种排名。排名的标准很简单。他们是:

  1. 特定发电机组被激活的最大次数
  2. 发电机组在激活过程中遇到了多少次问题

稍后我将通过添加更多标准来扩展此排名算法。我将使用 Apache Spark MLIB 库,并且我已经可以看到已经有很多算法。

http://spark.apache.org/docs/latest/mllib-guide.html

我只是不确定哪种算法适合我的目的。有什么建议么?

2个回答

您可以使用聚类算法(例如 k-means)将生成器分组。在你尝试之前,你永远不知道你会得到什么样的团体。随着集群数量的增加,尝试评估每组生成器的特性。在某些时候,您应该找到有意义的生成器划分。您的 k-means 算法的输入将是您在帖子中提到的标准:它被激活的次数、激活问题的数量等等。完成后,生成器所属的组就是它的排名。如果您有 1000 个生成器,此方法将不会生成 1-1000 的排名。相反,它会给你,例如 k=3:一组 243 个优秀的生成器,320 个普通的生成器,和 446 个糟糕的生成器。

除了少数例外,您几乎可以为您的模型使用任何机器学习算法。大多数机器学习包的美妙之处在于,每个模型的界面大多相同(尽管调整参数会有所不同),并且只需几行代码即可尝试每个模型。您没有理由人为地限制自己尝试某些模型。

此规则的一些例外是可能仅适用于分类或仅适用于回归的算法。听起来您正在尝试预测一个连续的目标变量,然后将其用于排名。如果是这种情况,那么您将无法使用称为朴素贝叶斯的算法,因为它只能输出概率。在其他罕见的情况下,如深度学习模型,运行时间可能很长(数小时或数天),在这些情况下,除非您有充分的理由(例如,人脸识别),否则您不会希望使用这样的算法在图像中)。不过,您应该能够使用 MLlib 中的几乎所有算法:梯度提升、随机森林等。