spark multiclassclassificationevaluator gbt forest classifier and apache-spark apache-spark-mllib apache-spark-ml

apache spark - multiclassclassificationevaluator - ¿Cuál es la diferencia entre los paquetes Spark ML y MLLIB?



random forest classifier spark (2)

Noté que hay dos clases LinearRegressionModel en SparkML, una en ML y otra en el paquete MLLib .

Estos dos se implementan de manera muy diferente, por ejemplo, el de MLLib implementa Serializable , mientras que el otro no lo hace.

Por cierto ame es cierto sobre RandomForestModel .

¿Por qué hay dos clases? ¿Cuál es el "correcto"? ¿Y hay una manera de convertir uno en otro?


oasmllib contiene una antigua API basada en RDD, mientras que oasml contiene una nueva compilación de API alrededor de Dataset y ML Pipelines. ml y mllib alcanzaron la paridad de características en 2.0.0 y mllib se está desaprobando lentamente (esto ya sucedió en el caso de regresión lineal) y lo más probable es que se elimine en la próxima versión principal.

Entonces, a menos que su objetivo sea la compatibilidad con versiones anteriores, la "elección correcta" es oasml .


Chispa Mllib

spark.mllib contiene la API heredada construida sobre los RDD.

Spark ML

spark.ml proporciona una API de nivel superior construida sobre DataFrames para construir tuberías de ML.

Según [ el anuncio oficial

A partir de Spark 2.0, las API basadas en RDD en el paquete spark.mllib han entrado en modo de mantenimiento. La API principal de Machine Learning para Spark es ahora la API basada en DataFrame en el paquete spark.ml. Apache spark se recomienda usar spark.ml

  • MLlib aún admitirá la API basada en RDD en spark.mllib con correcciones de errores.
  • MLlib no agregará nuevas características a la API basada en RDD.

  • En las versiones de Spark 2.x, MLlib agregará características a la API basada en DataFrames para alcanzar la paridad de características con la API basada en RDD.

  • Después de alcanzar la paridad de características (aproximadamente estimada para Spark 2.3), la API basada en RDD quedará en desuso.
  • Se espera que la API basada en RDD se elimine en Spark 3.0.

¿Por qué MLlib está cambiando a la API basada en DataFrame?

  • Los DataFrames proporcionan una API más fácil de usar que los RDD. Los muchos beneficios de DataFrames incluyen Spark Datasources, consultas SQL / DataFrame, optimizaciones de Tungsten y Catalyst y API uniformes en todos los idiomas.

  • La API basada en DataFrame para MLlib proporciona una API uniforme en todos los algoritmos ML y en múltiples idiomas.

  • Los DataFrames facilitan la práctica ML Pipelines, particularmente las transformaciones de características Vea la guía de tuberías para más detalles.

Más información lea doc - https://spark.apache.org/docs/latest/ml-guide.html