UA UCRANIA ESTÁ SIENDO ATACADA POR EL EJERCITO RUSO. CIVILES ESTAN SIENDO ASESINADOS. AREAS RESIDENCIALES ESTAN SIENDO BOMBARDEADAS. Ayuda a Ucrania via National Bank of Ukraine
- Ayuda a Ucrania via SaveLife fund
- Más información en war.ukraine.ua y MFA of Ukraine
También te podría interesar 🤖 Interactive Machine Learning Experiments
Para la versión en Octave/MatLab de este repositiorio, visita machine-learning-octave project.
Este repositorio contiene ejemplos de algoritmos populares en machine learning implementados en Python con los racionales matemáticos explicados. Cada algoritmo tiene un Jupiter Notebook interactive asociado que te permite jugar con la data, la configuración de los algoritmos e inmediatamente ver los resultados, gráficas y predicciones directamente en tu explorador. En la mayoría de los casos las explicaciones están basadas en this great machine learning course por Andrew Ng.
El propósito de este repositorio no es de implementar algoritmos de machine learning utilizando bibliotecas desarrolladas por 3eros que consisten en comandos de una linea. El propósito es practicar la implementación de estos algoritmos desde zero y por consiguiente mejorar el entendimieno de la matematica detrás de cada algoritmo. Es por esto que todas las implementaciones son llamadas "caseras" y no están hachas para ser utilizadas fuera de un contexto didáctico.
En este tipo de algoritmos contamos con un set de data de entrenamiento (training data) como entrada y un set de etiquetas o "respuestas correctas" correspondiente con ladata de entrada que serviran como salida. El propósito es entrenar nuestro modelo (parametros del algoritmo) para emparejar los datos de entrada con los de salida correctamente (hacer predicciones correctas). Esto con el fin de encontrar los parametros del modelo que continuaran este emparejamiento (correcto) de entrada+salida con nuevos datos.
En problemas de regresión hacemos predicciones de datos reales. Básicamente intentamos dibujar una linea/plano através de los ejemplos de entrenamiento.
Ejemplos de uso: pronostico de precios de acciones, análisis de ventas, dependencias numericas, etc...
- 📗 Math | Linear Regression - teoría y más para leer (en inglés)
- ⚙️ Code | Linear Regression - ejemplo de implementación
▶️ Demo | Univariate Linear Regression (Regresión univariable) - predecir la evaluacion decountry happiness (felicidad en el país)
usandoeconomy GDP (producto interno bruto)
▶️ Demo | Multivariate Linear Regression(Regresión multivariable) - predecir la evaluacion decountry happiness (felicidad en el país)
usandoeconomy GDP (producto interno bruto)
yfreedom index (índice de libertad)
▶️ Demo | Non-linear Regression - usar regresión linear con caracteristicas polinimiales y sinusoidales para predecir dependencias no-lineales
En problemas de clasificación no contamos con etiquetas o "respuestas correctas". En este tipo de problemas dividimos la data de entrada en grupos dependiendo sus características.
Ejemplos de uso: filtros de spam, detección de lenguaje, encontrar documentos similares, reconocimiento de letras escritas a mano, etc...
- 📗 Math | Logistic Regression - teoría y más para leer (en inglés)
- ⚙️ Code | Logistic Regression - ejemplo de implementación
▶️ Demo | Logistic Regression (Linear Boundary) - predecir laclass (clase)
de flor basado enpetal_length (longitud del pétalo)
ypetal_width (ancho del pétalo)
▶️ Demo | Logistic Regression (Non-Linear Boundary) - predicir lavalidity (validez)
de un microchip basado enparam_1
yparam_2
▶️ Demo | Multivariate Logistic Regression | MNIST - reconocer números escritos a mano en imagenes de28x28
pixeles▶️ Demo | Multivariate Logistic Regression | Fashion MNIST - reconocer artículos de ropa en imagenes de28x28
pixeles
Aprendizaje no supervisado es una rama del machine learning que aprende de data que no ha sido etiquetada, clasificada o categorizada. En lugar de aprender de retoralimentación, unsupervised learning identifica caracteristicas en común de la data y reacciona de acuerdo a la presencia (o ausencia) de estas caracteristicas en data nueva.
En problemas de clústering dividimos los ejemplos de entrenamiento por caracteristicas desconocidas. El algoritmo en si decide que caracteristicas usa para hacer esta división.
Ejemplos de uso: segmentación de mercados, analysis de redes sociales, organizar clústers de cómputo, análisis de data astronómica, compresión de imagenes, etc...
- 📗 Math | K-means Algorithm - teoría y más para leer (en inglés)
- ⚙️ Code | K-means Algorithm - ejemplo de implementación
▶️ Demo | K-means Algorithm - dividir flores en clústers basandonos enpetal_length (longitud del pétalo)
ypetal_width (ancho del pétalo)
La detección de anomalías es la identificación de articulos, eventos o observaciones raras que levantan sospechas ya que difieren significativamente de la mayoría de la data.
Ejemplos de uso: detección de intrusos, detección de fraude, monitoreo de la salud del sistema, remover data anómala de un set, etc...
🤖 Anomaly Detection using Gaussian Distribution (Detección de anomalías utilizando la Distribución Normal)
- 📗 Math | Anomaly Detection using Gaussian Distribution - teoría y más para leer (en inglés)
- ⚙️ Code | Anomaly Detection using Gaussian Distribution - ejemplo de implementación
▶️ Demo | Anomaly Detection - encontrar anomalías en los parametros de servicio de un servidor comolatency
ythreshold
Las NN en si no son un algoritmo, más bien son un marke de referencia para el uso de varios algoritmos juntos y el procesamiento de data compleja.
Ejemplos de uso: como un substituto sobre todos los demás algoritmos en general, reconocimiento de imagenes, procesamiento de imagened (aplicando cierts estilos), traducciones, etc...
- 📗 Math | Multilayer Perceptron - teoría y más para leer (en inglés)
- ⚙️ Code | Multilayer Perceptron - ejemplo de implementación
▶️ Demo | Multilayer Perceptron | MNIST - reconocer números escritos a mano en imagenes de28x28
pixeles▶️ Demo | Multilayer Perceptron | Fashion MNIST - reconocer artículos de ropa en imagenes de28x28
pixeles
La fuente de este mapa es este maravilloso blog post
Asegura de tener Python instalado en tu computadora.
Recomendamos utilizar la biblioteca estándar de Pyton venv para crear un ambiente virtual y tener Python, pip
y todos los paquetes dependientes instalados y entregados desde el directorio del proyecto directamente para evitar problemas con cambios globales de los paquetes y sus versiones.
Instala todas las dependencias requeridas para el proyecto ejecutando:
pip install -r requirements.txt
Todas las demonstraciones en este proyecto pueden ser ejecutadas directamnte en tu navegador sin necesidad de instalar Jypyter localmente. Sin embargo, si queres lanzar Jupyter Notebook localmente, es probable que lo quieras hacer utilizando el siguiente comando desde la carpeta raíz del proyecto:
jupyter notebook
Después de esto, el Jupyter Notebook se puede accesar a través de http://localhost:8888
.
Cada sección dedicada a un algoritmo contiene enlaces a Jupyter NBViewer. Esta es una herramienta onlina muy veloz para pre-vizualisar el código, los graficos y la data desde tu navegador sin necesidad de instalar nada localmente. En el caso que quieras camnbiar el código y experimentar con el notebook, tienes que lanzarlo desde Binder. Puedes hacerlo simplemente con hacer clock en "Execute on Binder" en la esquina superior derecha de NBViewer.
La lista de los datasets que son utilizados en los demos se encuentra ubicada en data folder.