OPEN SOURCE Y MACHINE LEARNING El principio de una larga amistad ÍNDICE 1. ¿QUÉ ES MACHINE LEARNING? 2. FRAMEWORKS 2.1. 2.2. 2.3. 2.4. TENSORFLOW H2O THEANO KERAS 3. ¿POR DÓNDE EMPEZAR? 3.1. 3.2. 3.3. Scikit-learn Jupyter NLTK 4. A JUGAR ¿QUÉ ES MACHINE LEARNING? FASE 1: APRENDIZAJE PREPROCESADO DATOS ● ● ● Normalización Limpieza Etc…. APRENDIZAJE ANÁLISIS DEL ERROR ● ● ● ● ● ● Supervisado No supervisado Etc... F-Score Curva ROC Etc... FASE 2: PREDICCIÓN NUEVOS DATOS PREDICCIÓN MODELO DATOS PREDICHOS MODELO 2016 ● Los frameworks Open Source de ML alcanzan un estado de madurez bastante alto gracias a la comunidad. ● Las grandes empresas se vuelcan en ello: ○ Google ○ Facebook ○ Microsoft ○ IBM ○ Amazon ● La ingente cantidad de datos que se recopila genera soluciones a nuevos tipos de problemas. ● La capacidad de procesamiento es barata gracias al Cloud. Fuente: https://www.safaribooksonline.com/library/view/apache-mahoutessentials/9781783554997/ch01s04.html FRAMEWORKS TENSOR FLOW ● De Google usado en DeepMind ● Amplia adopción ● Algoritmos ○ Regresión ○ Redes Neuronales ■ Recurrentes ■ Convolucionales ■ Image Recognition ● Visualización del flujo a través de TensorBoard ● Distribuido a partir de la Release 0.8.0 H20 ● ● ● ● ● ● Funciona sobre SPARK gracias a Sparkling water Interfaz web fácil de usar y asistida Soporte agnóstico: ○ Bases de datos comunes ○ Tipos de archivos de datos Escalable masivamente para el análisis de datos Algoritmos ○ Redes Neuronales ○ Gradient Boosting Machine ○ Regresión ○ Árboles de decisión. ○ K-Means ○ Naive-Bayes ○ Etc. Scoring de datos en Real-time THEANO ● Estrecha integración con NumPy ● Uso transparente de la CPU ○ Cálculos intensivos hasta un 140X más rápido que en CPU. ● Algoritmos ○ Redes Neuronales Convolucionales. ○ Regresión ● Complicado de instalar ○ No apto para principiantes Fuente: http://i.stack.imgur.com/akoSm.png KERAS ● Framework Python para redes neuronales ● Permite usar Theano y Tensorflow ● Fácil de Usar ● Buena documentación ● Comunidad en crecimiento ● Soporte de Google ¿YA SÉ DE MACHINE LEARNING? NO ¿POR DÓNDE EMPEZAR? SCIKIT-LEARN ● Ejemplos de algoritmos de todas las clases ● Librería para resolver la mayoría de problemas de Machine Learning a pequeña escala ● Ideal para aprender ● Para Python JUPYTER ● Notebooks Colaborativos y ejecutables ● Permite múltiples lenguajes ● Ideal para aprender ● Interfaz Web con acceso a consola para la instalación de paquetes extras ● Permite Markdown NLTK ● Kit de herramientas de lenguaje natural, para Python. ● Stopwords ● Corpus ● Modelos ○ Extracción de nombres de entidades. ○ Standford, ConLL... ● Separadores: ○ Oraciones ○ Palabras ○ Optimizados para múltiples idiomas. ● Lemmanización ● Parseo sintáctico. ● Etc. A JUGAR https://gym.openai.com ¿PREGUNTAS? sergio.fernandez@intelygenz.com