Comencé a experimentar con H2O hace más de un año, y ahora es la herramienta principal que uso para el modelado predictivo. La razón es simple, H2O es realmente rápido. En grandes conjuntos de datos, he sido testigo de una mejora de velocidad de más de 100 veces sobre Python (scikit-learn) y R al ejecutar ciertos modelos de aprendizaje supervisado. Cuanto mayor sea el conjunto de datos, más dramática será la diferencia de rendimiento. Eche un vistazo a los puntos de referencia de este sitio web para obtener más métricas: szilard / benchm-ml
La única otra herramienta de código abierto que conozco que es comparable en velocidad es XGBoost, pero está limitada a solo uno o dos algoritmos. En contraste, H2O tiene un conjunto completo de algoritmos de aprendizaje supervisados y no supervisados, aunque no tan completos como las bibliotecas / paquetes en Python o R.
Existen algunas herramientas comerciales que ofrecen un rendimiento similar al H2O, como SAS y Revolution Analytics (ahora parte de Microsoft). Pero tendrá que pagar una licencia para usarlos.
- ¿Realizar el blanqueamiento de datos antes del entrenamiento mejora la capacidad de generalización de un SVM?
- ¿Cómo funciona el sistema de clasificación de Aarne-Thompson?
- ¿Podrían las entradas del algoritmo de entrenamiento Perceptron tener diferentes tipos?
- ¿Por qué no se prueba bien Theano en otros sistemas que no sean Linux?
- Desde un punto de vista práctico, ¿por qué es tan importante saber programar en Machine Learning?
Ahora, si scikit-learn parece ser adecuado para su conjunto de datos, entonces, por supuesto, quédese con él. Pero si siente la necesidad de una plataforma más escalable, le recomiendo que pruebe H2O.
Editar: Me gustaría abordar algunos de los puntos hechos por Alexander Tchitchigin. Aunque H2O está escrito en Java, no es necesario conocer Java para usarlo. Se puede acceder a H2O a través de R, Python, Java y Scala. Incluso hay una interfaz web donde simplemente puede arrastrar y soltar.
Tampoco es necesario un clúster Hadoop / Spark para usar H2O. Hago la mayor parte de mi trabajo H2O en una sola máquina. Hay una gran característica en la que puede iniciar H2O en diferentes máquinas para formar un clúster virtual para acelerar su cálculo. Pero incluso esta característica no requiere Hadoop / Spark.
Finalmente, no necesita cientos de GB de datos para justificar el uso de H2O. He visto mejoras notables en el rendimiento al modelar en 10s de MB de datos. Pero en los conjuntos de datos del tamaño de GB, las mejoras serán asombrosas.