FotoReportaje - Galería de fotos

Aprendizaje de máquina: 11 herramientas de código abierto

Alcance el poder predictivo del aprendizaje automático con estas librerías y frameworks diversos y fáciles de implementar.

  • El filtrado de spam, el reconocimiento de rostro, los motores de recomendación; cuando se tiene un gran conjunto de datos en el que le gustaría realizar análisis predictivo o de reconocimiento de patrones, el aprendizaje automático, o aprendizaje de máquina, es el camino a seguir. Esta ciencia, en la que las computadoras están capacitadas para aprender, analizar y actuar sobre los datos, sin ser programadas de forma explícita, ha despertado el interés en los últimos tiempos, y ha salido fuera de su original claustro académico y de los círculos de programación de alto nivel.

    Este aumento de popularidad se debe no solo a que cada vez hay hardware más barato y más potente, sino también a la proliferación de software libre que hace que el aprendizaje de máquina sea más fácil de implementar, tanto en máquinas individuales como a escala.

    Estas once herramientas de aprendizaje de máquina proporcionan funcionalidad para aplicaciones individuales o frameworks integrales.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Scikit-learn

    Python se ha convertido en un lenguaje de programación para las matemáticas, la ciencia y las estadísticas, debido a su facilidad de adopción y a la amplitud de sus bibliotecas disponibles para casi cualquier aplicación. Scikit-learn (GitHub) apalanca esta amplitud construyendo sobre varios paquetes existentes de Python -NumPy, SciPy y matplotlib- para el trabajo de matemáticas y ciencias. Las bibliotecas resultantes pueden utilizarse para aplicaciones interactivas workbench, o incrustarse en otro software y ser reutilizados. El kit está disponible bajo una licencia BSD, así que es totalmente abierto y reutilizable.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Shogun

    Figurando entre las más antiguas y venerables bibliotecas de aprendizaje automático, Shogun (GitHub) fue creada en 1999 y escrita en C ++, pero no se limita a trabajar en C ++. Gracias a la biblioteca SWIG, Shogun se puede utilizar de forma transparente en diversos lenguajes y entornos: como Java, Python, C #, Ruby R, Lua, Octave y Matlab.

    Aunque muy apreciada, Shogun tiene competencia. Otra biblioteca de aprendizaje de máquina basada en C ++, Mlpack, ha existido solo desde el 2011, aunque profesa ser más rápida y fácil de trabajar (por medio de un conjunto de API más integral), que con las bibliotecas de la competencia.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Accord Framework / AForge.net

    Accord (GitHub), un framework de procesamiento de señales (signal proccessing) y de aprendizaje de máquina para .Net, es una extensión de un proyecto anterior que va en el mismo sentido, AForge.net. Por cierto, "el procesamiento de señales", se refiere en este caso a una serie de algoritmos de aprendizaje automático para imágenes y audio, como aquellos para la unión perfecta de imágenes o para realizar la detección de rostros. Incluye un conjunto de algoritmos para el procesamiento de la visión; opera en flujos de imágenes (como de video) y puede ser usado para implementar funciones tales como el seguimiento de objetos en movimiento. Accord también incluye bibliotecas que proporcionan una gama más convencional de las funciones de aprendizaje de máquina, desde las redes neuronales hasta los sistemas de árbol de decisión.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Mahout

    El framework Mahout ha estado mucho tiempo atado a Hadoop, pero muchos de los algoritmos bajo su paraguas también pueden funcionar fuera de Hadoop. Estos algoritmos son útiles para aplicaciones autónomas que eventualmente pueden migrar a Hadoop, o para proyectos Hadoop que podrían ser spun off en sus propias aplicaciones independientes.

    Una desventaja de Mahout: Algunos de sus algoritmos actualmente no soportan el framework de alto rendimiento Spark para Hadoop, y en su lugar utilizan el framework legacy MapReduce, que cada vez es más obsoleto. El proyecto ya no acepta algoritmos basados en MapReduce, pero aquellos que buscan una biblioteca con más prestaciones y con garantía de futuro, preferirán echar un vistazo a MLlib.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • MLlib

    La propia biblioteca de aprendizaje automático de Apache para Spark y Hadoop, MLlib, cuenta con una gama de algoritmos comunes y tipos de datos útiles, diseñados para funcionar a velocidad y a escala. Como era de esperarse con cualquier proyecto Hadoop, Java es el lenguaje principal para trabajar en MLlib, pero los usuarios de Python se pueden conectar a MLlib con la biblioteca NumPy (también utilizada en Scikit-learn), y los usuarios Scala pueden escribir código contra MLlib. Si la creación de un clúster Hadoop es poco práctico, MLlib se puede implementar sobre Spark sin Hadoop, y en EC2 o en Mesos.

    Otro proyecto, MLbase, está construido sobre MLlib para obtener resultados con mayor facilidad. En lugar de escribir código, los usuarios realizan consultas por medio de un lenguaje declarativo à la SQL.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • H2O

    Los algoritmos H2O (GitHub) de 0xdata se orientan hacia los procesos de negocio -de fraude o de predicciones de tendencia, por ejemplo- en lugar de, por ejemplo, hacia el análisis de imágenes. H2O puede interactuar de manera independiente con tiendas HDFS, sobre YARN, en MapReduce, o directamente en una instancia de Amazon EC2. Los proyectos Mavens para Hadoop pueden utilizar Java para interactuar con H2O, pero el framework también proporciona enlaces para Python, R, y Scala, proporcionando también interacción cruzada con todas las bibliotecas disponibles en dichas plataformas.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Cloudera Oryx

    He aquí otro proyecto de aprendizaje de máquina diseñado para Hadoop. Oryx viene por cortesía de los creadores de la distribución Cloudera Hadoop. El nombre en la etiqueta no es el único detalle que identifica a Oryx: Debido al énfasis de Cloudera en el análisis de datos en vivo a través del proyecto Spark, Oryx está diseñado para permitir que los modelos de aprendizaje automático sean desplegados en flujos de datos en tiempo real, lo que permite habilitar proyectos como los filtros de spam en tiempo real o los motores de recomendación.

    Una nueva versión del proyecto, tentativamente denominada Oryx 2, está en camino. Esta versión utiliza proyectos Apache, como Spark y Kafka, para un mejor rendimiento, y sus componentes se construyen a lo largo de las líneas más débilmente acopladas para posteriores pruebas a futuro.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • GoLearn

    El lenguaje Go de Google ha estado entre nosotros por solo cinco años, pero ha comenzado a disfrutar de un uso más amplio, gracias a una creciente colección de bibliotecas. GoLearn fue creado para hacerle frente a la falta de una biblioteca de aprendizaje de máquina todo-en-uno para Go; el objetivo es obtener "simplicidad y personalización", según el desarrollador Stephen Witworth. La simplicidad proviene de la forma como los datos han sido cargados y manipulados en la biblioteca. La personalización se encuentra tanto en la naturaleza de código abierto de la biblioteca (tiene licencia MIT), como en cómo algunas de las estructuras de datos pueden ser fácilmente extendidas en una aplicación. Witworth también ha creado un envoltorio GO para la librería Vowpal Wabbit, una de las bibliotecas que se encuentra en la caja de herramientas de Shogun.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • Weka

    Weka, un producto de la Universidad de Waikato, Nueva Zelanda, recoge un conjunto de algoritmos de aprendizaje automático Java específicamente diseñados para la minería de datos. Esta colección, con licencia GNU GPLv3, tiene un sistema de paquetes para extender su funcionalidad, con ambos tipos, paquetes oficiales y no oficiales disponibles. Weka incluso viene con un libro para explicar tanto el software como las técnicas utilizadas, por lo que aquellos que buscan obtener una ventaja en cuanto a los conceptos y el software, van a querer empezar por ahí.

    Aunque Weka no está dirigido específicamente a los usuarios de Hadoop, puede ser utilizado con Hadoop gracias a un conjunto de envolturas desarrolladas para las versiones más recientes de Weka. Tenga en cuenta que todavía no admite Spark, solo MapReduc. Los usuarios Clojure también pueden aprovechar Weka, gracias a la biblioteca CLJ-ml.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • CUDA-Convnet

    A estas alturas casi todo el mundo sabe cómo los GPUs pueden crear ciertos problemas más rápido que los CPU. Pero las aplicaciones no toman automáticamente las ventajas de la aceleración de GPU, éstas tienen que ser específicamente escritas para hacerlo. CUDA-Convnet es una biblioteca de aprendizaje de máquina para aplicaciones de red neuronal, escrita en C ++ para explotar la tecnología de procesamiento de GPU CUDA de Nvidia. Para aquellos que utilizan Python en lugar de C ++, las redes neurales resultantes pueden guardarse como objetos Python pickled y así acceder desde Python.

    Tenga en cuenta que ya no se está desarrollando la versión original del proyecto, pero, desde entonces, se ha está trabajando en un sucesor, CUDA-Convnet2, con soporte para múltiples GPUs y GPUs de generación Kepler. Un proyecto similar, Vulpes, se ha escrito en F# y trabaja generalmente con el framework .NET Framework.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

  • ConvNetJS

    Como su nombre lo indica, ConvNetJS (GitHub) ofrece librerías de aprendizaje automático para redes neuronales para ser usadas en JavaScript, facilitando el uso del navegador como un workbench de datos. Una versión NGP también está disponible para aquellos que utilizan Node.js, y la biblioteca está diseñada para hacer un uso correcto de la asincronía de JavaScript -por ejemplo, las operaciones de entrenamiento pueden ser llamadas de regreso para ejecutarse una vez que se completen. También se incluyen muchos ejemplos de demos.

    Serdar Yegulalp, InfoWorld, 4/marzo/2015

Llegamos a ustedes gracias a:

FOTO REPORTAJES

Más »
Échele un vistazo al smartphone del futuro

Échele un vistazo al smartphone del futuro

¿Cómo se verá su teléfono en diez años? Visitamos las escuelas de diseño y los laboratorios de investigación para descubrir las innovaciones que llegarán a nuestros dispositivos móviles.
13 marcos para dominar el aprendizaje automático

13 marcos para dominar el aprendizaje automático

¿Aventurarse en el aprendizaje automático? Estas son las herramientas de código abierto que hacen el trabajo pesado.
25 sencillas herramientas para crear apps móviles rápidamente

25 sencillas herramientas para crear apps móviles rápidamente

Una vía rápida para el éxito de las apps móviles.
6 apps para Android que le permiten ser más productivo

6 apps para Android que le permiten ser más productivo

A continuación, seis apps con las que incrementar su productividad.