54 votos

Aprendizaje automático con Python

Estoy considerando utilizar bibliotecas de Python para hacer mis experimentos de Aprendizaje Automático. Hasta ahora, he estado confiando en WEKA, pero he estado bastante insatisfecho en general. Esto es principalmente porque he encontrado que WEKA no está bien soportado (muy pocos ejemplos, la documentación es escasa y el apoyo de la comunidad es menos que deseable en mi experiencia), y me he encontrado en situaciones difíciles sin ayuda. Otra razón por la que estoy contemplando este movimiento es porque me está gustando mucho Python (soy nuevo en Python), y no quiero volver a codificar en Java.

Así que mi pregunta es, ¿cuáles son las

  1. completo
  2. escalable (100k características, 10k ejemplos) y
  3. ¿hay bibliotecas bien soportadas para hacer ML en Python?

Estoy especialmente interesado en la clasificación de textos, por lo que me gustaría utilizar una biblioteca que tenga una buena colección de clasificadores, métodos de selección de características (Information Gain, Chi-Sqaured, etc.) y capacidades de preprocesamiento de texto (stemming, eliminación de palabras clave, tf-idf, etc.).

Basándome en los hilos de correo electrónico anteriores aquí y en otros lugares, he estado mirando PyML, scikits-learn y Orange hasta ahora. Cómo han sido las experiencias de la gente con respecto a las 3 métricas mencionadas anteriormente que menciono?

¿Alguna otra sugerencia?

3voto

Monroecheeseman Puntos 825

SHOGUN ( 将軍 ) es una caja de herramientas de aprendizaje automático a gran escala, que parece prometedora.

2voto

robbinsr Puntos 21

Biblioteca de código abierto python ml PySpark MLlib https://spark.apache.org/docs/0.9.0/mllib-guide.html

biblioteca propia de ml con prueba gratuita GraphLab Create https://dato.com/products/create/

1voto

chrisamiller Puntos 1236

Como destacó @ogrisel, scikit-learn es uno de los mejores paquetes de aprendizaje automático que existen para Python. Es adecuado para conjuntos de datos tan pequeños como 100k características (dispersas) y 10k muestras, e incluso para conjuntos de datos ligeramente más grandes que pueden contener más de 200k filas. Básicamente, cualquier conjunto de datos que quepa en la memoria.

Pero, si usted está buscando un marco de aprendizaje automático de Python altamente escalable, yo recomendaría Pyspark MLlib. Dado que los conjuntos de datos hoy en día pueden crecer exponencialmente (dada la ola de big data y deep learning), a menudo se necesita una plataforma que pueda escalar bien y correr rápido no sólo en la fase de entrenamiento del modelo, sino también durante la fase de ingeniería de características (transformación de características, selección de características). Veamos las tres métricas de la plataforma Spark Mllib que le interesan:

  1. Escalabilidad: Si su conjunto de datos puede caber en la memoria, scikit-learn debería ser su elección. Si es demasiado grande para caber en la memoria, Spark es el camino a seguir. Lo importante a tener en cuenta aquí es que Spark funciona más rápido sólo en un entorno distribuido.

  2. Amplitud: Sklearn es mucho más rico en términos de implementaciones decentes de un gran número de algoritmos comúnmente utilizados en comparación con spark mllib. El soporte para la manipulación y transformación de datos es también más rico en scikit-learn. Spark Mllib tiene suficientes módulos de transformación de datos que hacen el truco la mayoría de las veces. Por lo tanto, en caso de terminar con spark mllib por cuestiones de escalabilidad, todavía será capaz de hacer el trabajo. Tiene todo el soporte para el análisis de correlación, la extracción de características (tf-idf, word2vec, CountVectorizer), la transformación de características (Tokenizer, StopWordsRemover, nn-gram, Binarizer, PCA etc). Para obtener una lista detallada, consulte el siguiente enlace:

Extracción, transformación y selección de características en Spark mllib

  1. Clasificación: Spark mllib tiene todas las implementaciones de los principales algoritmos que se utilizan la mayoría de las veces (incluyendo los algoritmos que funcionan bien para la clasificación de texto). Para obtener una descripción detallada de los algoritmos disponibles en mllib, consulte el siguiente enlace.

Mllib Clasificación y regresión

Bonificación: Apache Spark es compatible con Python, R, Java y Scala. Así, si el día de mañana decides experimentar con un lenguaje diferente (como elección personal o por motivos profesionales), no tendrás que aprender un framework completamente nuevo.

0voto

Simon Stevens Puntos 18

No sé si todavía estás buscando algún consejo (hiciste esta pregunta hace 5 meses...). Acabo de empezar este libro y hasta ahora está bastante bien:

https://www.amazon.com.mx/dp/1491962291/ref=cm_cr_ryp_prd_ttl_sol_3

El autor muestra código, ejemplos y explica algo de teoría y matemáticas "entre bastidores" de los algoritmos de ML. Lo encuentro muy instructivo. Espero que pueda ser lo mismo para ti.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X