Spark多标签分类

Moh*_*ziz 7 scikit-learn apache-spark pyspark

我希望用Spark实现,它是一种具有多输出的多标签分类算法,但是令我惊讶的是,Spark Machine Learning库中没有任何模型可以做到这一点。

如何使用Spark做到这一点?

否则,Scikit Learn Logistic回归在输入/输出中支持多标签分类,但不支持用于训练的大量数据。

要查看scikit学习中的代码,请单击以下链接:https : //gist.github.com/mkbouaziz/5bdb463c99ba9da317a1495d4635d0fc

mar*_*ita 6

同样在 Spark 中有逻辑回归,它支持基于 api文档的多标签分类。另请参见

使用适当的 Spark 配置,您在 scikitlearn 上遇到的大量训练数据的问题将随着 spark 消失。

另一种方法是对您的问题具有的每个标签使用二元分类器,并通过对该标签运行相关无关的预测来获得多标签。您可以使用任何二元分类器在 Spark 中轻松做到这一点。

间接地,也可能有帮助的是使用最近邻居的多标签分类,这也是最先进的。例如,一些最近的邻居 Spark 扩展,如Spark KNNSpark KNN 图

  • 更新:我实际上浏览了 Spark 的代码,似乎 LogisticRegressionWithSGD 仅支持多类而不支持多标签。这是基于这里的代码https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/optimization/Gradient.scala#L251,我看到softmax是完成,而不是用于多标签逻辑回归的标准 sigmoid。也许文档意味着多类而不是多标签。 (3认同)