Skip to content

EnriqueU/M-L

 
 

Repository files navigation

M-L

  1. Introdución a Python

    • Curso rápido de Python.
    • Uso de las paquetes: Matplotlib, NumPy, Pandas, scikit-learn.
    • Nano y Vim. Uso de Jupyter .
  2. Algebra Lineal

    • Vectores y Matrices.
    • Valores y vectores propios.
  3. Estadística

    • Describiendo un conjunto de datos. Tendencias centrales, dispersión.
    • Correlación. Paradoja de Simpson.
    • Algunas advertencia, acerca de la correlación.
    • Correlación y Causalidad.
  4. Probabilidad

    • Dependencia y Independencia. Probabilidad Condicional. Teorema de Bayes.
    • Variables Aleatorias.Distribuciones continuas. La distribución Normal.
    • Teorema del Límite Central.
  5. Hipótesis e Inferencia Estadística

    • Prueba de hipótesis estadística.
    • Intervalos de Confianza.
    • P-hacking. El test A/B.
    • Inferencia Bayesiana.
  6. Descenso del Gradiente

    • Ideas detrás del método del Gradiente. Estimando el gradiente.
    • Usando el gradiente.
    • Descenso del gradiente estocástico.
  7. Obtención de Datos

    • Leyendo archivos. Web Scraping. Ejemplos.
    • Usando APIS:JSON y XML y APIS no autenticadas. Encontrando APIS.
    • Usando la API de Twitter.
  8. Trabajando con Datos

    • Explorando datos de 1,2 y más dimensiones.
    • Manipulando datos, reescalando y reducción de la dimensionalidad
  9. Machine Learning

    • ¿ Qué es Machine Learning?. Sobreajuste y Subajuste. Exactitud.
    • The Bias-Variance Trade-off.
  10. K-vecinos más cercanos

  • El modelo. Ejemplos
  • La maldición de la dimensión.

Libros de Texto

1 .Machine Learning: Hands-On for Developers and Technical Professionals, Jason Bell, Wiley 2015.

2 .Coding The Matrix Linear Algebra Through Computer Science Applications, Newtonian Press, Phillip Klein, 2012.

3 .Numerical Python: A Practical Techniques Approach for Industry, Robert Johansson, Apress 2015.

4 .Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies, Aoife D'Arcy, Brian Mac Namee, John D. Kelleher, MIT 2015.

5 .Mastering Machine Learning With scikit-learn, Gavin Hackeling, Packt Publishing, 2014.

6 .Probability: The Analysis of Data, Volumen 1, Guy Lebanon. El libro se puede leer de manera online en theanalysisofdata.com.

7 . Statistical inference for data science, Brian Caffo (Con código en R). El libro pueder se leído en Leanpub Little Inference Book.

Herramientas a usar

Editor Vim

vim, un editor de texto que dispone de diferentes modos entre los que se alternan ciertas operaciones, comunes entre los programadores. No obstante, debido a su eficiencia, a su variedad de añadidos ("plugins")", y a sus posibilidades de personalización vim es uno de los editores de texto más populares para programadores y usuarios de sistemas tipo Unix (junto con Emacs*).

Existe un tutorial, que se puede utilizar dentro de Linux (Ubuntu 14.04), escribiendo en el terminal.

c-lara@Lara:~$ vimtutor

Otras fuentes de referencia son:

1 . Vim en archlinux.

2 . Tutorial de Vim.

3 . Learn Vim Progressively.

Git y Github

Git es un sistema de control de versiones de gran potencia y versatilidad en el manejo de un gran número de archivos de código fuente a a través del desarrollo no lineal, es decir vía la gestión rápida de ramas y mezclado de diferentes versiones.

Para poder revisar y aprender los comandos necesarios de Git, puedes darle una ojeada al excelente tutorial de CodeSchool o a la guía de Roger Dudle para aprender Git.

Github es una plataforma de desarrollo colaborativo de software utilizado para alojar proyectos (muchos proyectos importantes como paquetes de R, Django, el Kernel de Linux, se encuentran alojados ahí) utilizando Git y el framework Ruby on Rails.

Podemos instalar Git en Ubuntu utilizando el administrador de paquetes Apt:

c-lara@Lara:~$sudo apt-get update
c-lara@Lara:~$sudo apt-get install git

Latex

LaTeX es como un lenguaje de alto nivel para TeX, que es un sistema de preparación de documentos creados por Donald E. Knuth. Latex es en si un conjunto de macros y convenciones pensadas de modo que con pocas intrucciones seamos capaces de producir un documento de calidad profesional, como lo son los artículos publicados por la comunidad científica. Mayor información se puede encontrar en :

En ubuntu, la manera facil de instalar Latex, es usando TexLive

c-lara@Lara:~$sudo apt-get install texlive-latex-base texlive-latex-recommended texlive-latex extra

Se pueden instalar paquetes extras, que no se encuentran en los paquetes anteriores. Por ejemplo los paquetes relacionados con algoritmos como algorithm.sty se puede instalar con

c-lara@Lara:sudo apt-get install texlive-science

Si se desea instalar todo los paquetes de TexLive, se puede hacer de la siguiente manera:

c-lara@Lara:sudo apt-get install texlive-full

Una página interesante para aprender los símbolos de latex, se pueden encontrar en detexify.

Un editor muy completo para trabajar con latex es: TeXstudio, que se puede instalar en Ubuntu de la siguiente manera:

c-lara@Lara:wget http://download.opensuse.org/repositories/home:/jsundermeyer/xUbuntu_14.04/amd64/texstudio_2.10.8-5.1_amd64.deb
c-lara@Lara :sudo dpkg -i texstudio_2.10.8-5.1_amd64.deb

MongoDB

MongoDB es una sistema de base de datos NoSQL de código abierto utilizado en aplicaciones web modernas, escrito en C++ le confiere cierta cercanía a los recursos del hardware, de modo que es bastante rápido a la hora de ejecutar sus tareas. MongoDB es una base de datos orientada a documentos, es decir guarda los datos en documentos que son almacenados en un representación binaria de JSON, llamado BSON.

Genbeta:dev tiene una lista de artículos para empezar en el mundo de las bases de datos NoSQL y MongoDB. Es interesantes ver los videos colgados en Youtube sobre MongoDB.

Para poder instalar en Ubuntu, es preferible revisar la documentación desde la página de MongoDB.

Anaconda

Anaconda es una distribución completa libre de Python incluye paquetes de Python .

Anaconda incluye los instaladores de Python 2.7 y 3.5. La instalación en Linux, se encuentra en la página de Anaconda y es más o menos así

1 . Descargar el instalador de Anaconda para Linux.

2 . Después de descargar el instalar, en el terminal, ejecuta para 3.5

c-lara@Lara:~$ bash Anaconda3-2.4.1-Linux-x86_64.sh

Es recomendable leer, alguna de las característica de Anaconda en el siguiente material conda 30-minutes test drive.

3 . La instalación de paquetes como seaborn o bokeh se pueden realizar a través de Anaconda, de la siguiente manera:

c-lara@Lara:~$ conda install bokeh

Alternativamente podemos desde PyPI usando pip:

c-lara@Lara:~$ pip install bokeh

El proyecto Anaconda ha creado R Essentials, que incluye el IRKernel y alrededor de 80 paquetes para análisis de datos, incluyendo dplyr, shiny, ggplot2,caret, etc. Para instalar R Essentials en un entorno de trabajo, hacemos

c-lara@Lara:~$ conda install -c r r-essentials

R y Rstudio

R y RStudio . RStudio es un IDE para R. Es software libre con licencia GPLv3 y se puede ejecutar sobre distintas plataformas o incluso desde la web usando RStudio Server.

c-lara@Lara:~$ wget https://download1.rstudio.org/rstudio-0.99.893-amd64.deb
c-lara@Lara:~$sudo dpkg -i *.deb
c-lara@Lara:~$rm *.deb

Spyder

Spyder es un entorno de desarrollo para Python, con múltiples características como edición avanzada, testeo, depuración y características de instrospección, además de la capacidad de utilizar vía Ipython las librerías científicas de Numpy, Simpy o MatplotLib. Si se tiene instalado Anaconda, entonces solo basta escribir en el terminal lo siguiente

c-lara@Lara:~$ spyder

Weka

Weka (Waikato Environment for Knowledge Acquisition) es una herramienta de Machine Learning y Data Minning escrito en Java. Con Weka podemos hacer Preprocessing data, clustering, classification, regression y ahora Big Data y datos con un driver JDBC.

Para instalar Weka en Ubuntu, desempaquetar el archivo conteniendo a Weka en algún de tu preferencia y luego ir al directorio creado (weka-3-6-13) y ejecutar

c-lara@Lara:~$java -Xmx1000M -jar weka.jar

Podemos aprender un poco de Weka usando el video de Brandon Weinberg o el canal de Youtube de Weka.

Mahout

Mahout es un proyecto que es es parte del proyecto Apache. Una característica principal de Mahout es su integración con el paradigma Hadoop Map/Reduce para el procesamiento de datos a gran escala. Mahout soporta un gran número de algoritmos incluyendo:

  • Naive Bayes Classifier.
  • K Means Clustering.
  • Recommendation Engine.
  • Logistic Regression Classifier.
  • Random Forest.

Artículos

Lecturas

About

Notas del Curso: Tópicos de Investigación: Machine Learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 86.2%
  • HTML 13.5%
  • Other 0.3%