Skip to content

Latest commit

 

History

History
634 lines (524 loc) · 84.3 KB

README.md

File metadata and controls

634 lines (524 loc) · 84.3 KB

Repositorio de curso sobre Data Analytics

Business Analytics (BA) consiste en explorar y analizar grandes cantidades de datos para obtener información sobre el desempeño empresarial pasado con el fin de guiar la planificación empresarial futura. Este curso presenta un conjunto de métodos avanzados centrados en datos que cubren las tres direcciones principales de BA: descriptivo (“¿qué pasó?”), predictivo (“¿qué pasará?”) y prescriptivo (“¿qué debería pasar?”). Los métodos se aplicarán a varios casos de negocios con el objetivo de demostrar cómo extraer valor comercial de los datos, brindar soporte para la toma de decisiones basada en datos junto con principios efectivos de gestión de datos. Materiales de soporte para la formación en Data Analytics

Instructor: Ulises Gonzalez (Rizoma, Linkedin

Binder

Tuesday Thursday
8/18: Introduction to Data Science 8/20: Command Line, Version Control
8/25: Data Reading and Cleaning 8/27: Exploratory Data Analysis
9/1: Visualization 9/3: Machine Learning
9/8: Getting Data 9/10: K-Nearest Neighbors
9/15: Basic Model Evaluation 9/17: Linear Regression
9/22: First Project Presentation 9/24: Logistic Regression
9/29: Advanced Model Evaluation 10/1: Naive Bayes and Text Data
10/6: Natural Language Processing 10/8: Kaggle Competition
10/13: Decision Trees 10/15: Ensembling
10/20: Advanced scikit-learn, Clustering 10/22: Regularization, Regex
10/27: Course Review 10/29: Final Project Presentation

<!-

Antes de que comience el curso

  • Instalar [git] (http://git-scm.com/downloads).
  • Cree una cuenta en el sitio web [Github] (https://github.com/).
  • No es necesario descargar "GitHub para Windows" o "Github para Mac"
  • Instale la [Distribución Anaconda] (http://continuum.io/downloads) de Python 2.7x.
  • Si elige no usar Anaconda, aquí hay una lista de los [paquetes Python] (otros/python_packages.md) Deberá instalar durante el curso.
  • Nos gustaría verificar la configuración de su computadora portátil antes de que comience el curso:
  • Puede verificar su computadora portátil antes del taller intermedio de Python el martes 8/11 (5:30 pm-6:30pm), en el [15th & K Starbucks] (http://www.yelp.com/biz/starbucks-Washington-15) el sábado 8/15 (1 pm-3pm), o antes de la clase el martes 8/18 (5:30 pm-6:30pm).
  • Alternativamente, puede caminar por la [lista de verificación de configuración] (otro/setup_checklist.md) usted mismo.
  • Una vez que reciba una invitación por correo electrónico de Slack, únase a nuestro "equipo DAT8" y agregue su foto.
  • Practique Python utilizando los recursos a continuación. ->

Recursos de Python


Class 1: Introducción al Business Analytics

Asignación:

  • Work through GA's friendly command line tutorial using Terminal (Linux/Mac) or Git Bash (Windows).
  • Read through this command line reference, and complete the pre-class exercise at the bottom. (There's nothing you need to submit once you're done.)
  • Watch videos 1 through 8 (21 minutes) of Introduction to Git and GitHub, or read sections 1.1 through 2.2 of Pro Git.
  • If your laptop has any setup issues, please work with us to resolve them by Thursday. If your laptop has not yet been checked, you should come early on Thursday, or just walk through the setup checklist yourself (and let us know you have done so).

Recursos: *Para una mirada útil a los diferentes tipos de científicos de datos, lea [analizar los analizadores] (http://cdn.oreillystatic.com/oreilly/radarreport/0636920029014/analyzing_the_analyzers.pdf) (32 páginas).


Clase 2: Línea de comandos y control de versiones

  • Slack Tour
  • Revise el ejercicio previo a la clase de la línea de comando (code)
  • Git and GitHub (slides)
  • Línea de comando intermedia

Tarea:

Recursos Git y Markdown:

Recursos de línea de comandos:

  • Si quieres profundizar mucho en la línea de comando, Data Science at the Command Line es un gran libro.El companion website Proporciona instrucciones de instalación para una "caja de herramientas de ciencia de datos" (una máquina virtual con muchas más herramientas de línea de comandos), así como una larga guía de referencia para las herramientas de línea de comandos populares.
  • Si desea hacer más en la línea de comando con archivos CSV, pruebe csvkit, que se puede instalar a través de pip.

Clase 3: Lectura y limpieza de datos

  • Git y Github Surtido consejos(slides)
  • Revisar la tarea de la línea de comando (solution)
  • Pitón:
  • Interfaz Spyder
  • Ejercicio de bucle
  • Lección de lectura de archivos con datos de seguridad de la aerolínea (code, data, article) *Ejercicio de limpieza de datos
    • Tutorial de la tarea de Python con datos de chipotle (code, data, article)

Tarea:

  • Completar la Python homework assignment Con los datos de Chipotle, agregue un script de Python comentado a su repositorio de GitHub y envíe un enlace utilizando el formulario de envío de tareas.Tienes hasta el martes (9/1) para completar esta tarea. (**Nota: ** Los pandas, que se cubren en la clase 4, no deben usarse para esta tarea).

Resources:


Clase 4: Análisis de datos exploratorios

Tarea:

Recursos:


Clase 5: Visualización

Tarea:

  • El informe de su pregunta de su proyecto se debe el jueves.
  • Completar la Pandas homework assignment con el IMDb data. Tiene hasta el martes (9/8) para completar esta tarea.
  • IfNo estás usando Anaconda, instale elJupyter Notebook(anteriormente conocido como el cuaderno de ipython) utilizandopip. (El cuaderno Jupyter o Ipython se incluye con Anaconda).

Recursos de pandas:

  • Para obtener más pandas, lea esto three-part tutorial, O revise estos dos cuadernos excelentes (pero extremadamente largos) en Pandas: introduction and data wrangling.
  • Si quieres profundizar en los pandas (y numpy), lee el libro Python for Data Analysis,Escrito por el Creador de Pandas.
  • Este cuaderno demuestra los diferentes tipos dejoins in Pandas, para cuando necesite descubrir cómo fusionar dos marcos de datos.
  • Este es un buen tutorial breve sobre pivot tables en pandas.
  • Para trabajar con datos geoespaciales en Python, GeoPandas parece prometedor.Este tutorial Utiliza Geopandas (y Scikit-Learn) para construir un "mapa callejero lingüístico" de Singapur.

Recursos de visualización:


Clase 6: Aprendizaje automático

  • Parte 2 de la visualización con pandas y matplotlib(notebook) *Breve introducción al cuaderno Jupyter/Ipython *Ejercicio de "aprendizaje humano":
  • Introducción al aprendizaje automático (slides)

Tarea: *** Opcional: ** Complete el ejercicio de bonificación en la lista de human learning notebook. ¡Tomará el lugar de cualquier tarea que pierda, pasado o futuro!Esto se debe el martes (9/8).

  • Si no está usando Anaconda, instale requestsyBeautiful Soup 4usandopip. (Ambos paquetes están incluidos con Anaconda).

Recursos de aprendizaje automático:

Recursos de cuaderno de iPython


Clase 7: Obtener datos

Tarea: *** Opcional: ** Complete el ejercicio de tarea enumerado en el web scraping code. ¡Tomará el lugar de cualquier tarea que pierda, pasado o futuro!Esto se debe el martes (15/09).

  • **Opcional: ** Si no estás usando Anaconda, install Seaborn usando pip. Si está utilizando Anaconda, instale SeaBorn corriendo conda install seabornen la línea de comando.(Tenga en cuenta que algunos estudiantes en cursos pasados ​​han tenido problemas con Anaconda después de instalar Seorn).

Recursos API *Este guión de Python para query the U.S. Census API fue creado por un ex alumno de DA.Es un poco más complicado que el ejemplo que usamos en la clase, está muy bien comentado y puede proporcionar un marco útil para escribir su propio código para consultar las API.

Recursos de raspado web:


Clase 8: vecinos K-nears

Tarea:

RECURSOS KNN

Recursos Seaborn:


Clase 9: Evaluación básica del modelo

Recursos de evaluación del modelo *Para un resumen de algunos de los puntos clave de la lección de hoy, mira Comparing machine learning models in scikit-learn(27 minutos).

  • For Otra explicación del error de entrenamiento versus el error de prueba, la compensación de varianza de sesgo y la división de trenes/pruebas (también conocido como "enfoque de conjunto de validación"), mira el video de Hastie y Tibshirani enestimating prediction error (12 minutos, comenzando a las 2:34).
  • El aprendizaje de Caltech de los datos incluye un video fantástico en visualizing bias and variance (15 minutos).
  • Random Test/Train Split is Not Always EnoughExplica por qué la división aleatoria de trenes/pruebas puede no ser un procedimiento de evaluación de modelo adecuado si sus datos tienen un elemento de tiempo significativo.

Recursos de reproducibilidad


Clase 10: regresión lineal

Tarea:

  • ¡Su primera presentación del proyecto es el martes (9/22)!Envíe un enlace al repositorio de su proyecto (con diapositivas, código, datos y visualizaciones) a las 6pm del martes.
  • Completar la homework assignment con el Yelp data. Esto se debe el jueves (9/24).

Recursos de regresión lineal


Clase 11: Presentación del primer proyecto

  • ¡Presentaciones del proyecto!

Tarea:


Clase 12: Regresión logística

  • Yelp Votes Tarea Due ([Solución] (cuadernos/10_yelp_votes_homework.ipynb))
  • Regresión logística ([cuaderno] (cuadernos/12_logistic_regression.ipynb))
  • [Conjunto de datos de identificación de vidrio] (https://archive.ics.uci.edu/ml/datasets/glass+identification)
  • Ejercicio con Titanic Data ([cuaderno] (cuaderno/12_titanic_confusion.ipynb), [data] (data/titanic.csv), [Data Dictionary] (https://www.kaggle.com/c/titanic/data)))
  • Confusion Matrix ([diapositivas] (diapositivas/12_confusion_matrix.pdf), [cuaderno] (cuaderno/12_titanic_confusion.ipynb)))

Tarea:

  • Si aún no se siente cómodo con toda la terminología de la matriz de confusión, mire los videos de Rahul Patwari en [Sensibilidad y especificidad intuitiva] (https://www.youtube.com/watch?v=U4_3fditnwg) (9 minutos) y [[9 minutos) y [[9 minutos) y [[La compensación entre sensibilidad y especificidad] (https://www.youtube.com/watch?v=vtydyggeqyo) (13 minutos).
  • Asignación de video/lectura en [curvas ROC y AUC] (tarea/13_roc_auc.md)
  • Asignación de video/lectura en [Validación cruzada] (tarea/13_cross_validation.md)

Recursos de regresión logística:

  • Para profundizar en la regresión logística, lea las primeras tres secciones del Capítulo 4 de An Introduction to Statistical Learning,O mira el first three videos (30 minutos) de ese capítulo.
  • Para una explicación matemática de la regresión logística, mire los primeros siete videos (71 minutos) de la semana 3 de Andrew Ng's machine learning course, o leer el related lecture notes compilado por un estudiante.
  • Para obtener más información sobre la interpretación de los coeficientes de regresión logística, lea este excelente guidepor el idre de UCLA y estos lecture notes de la Universidad de Nuevo México.
  • TLa documentación de Scikit-Learn tiene una buena explanation de lo que significa para una probabilidad prevista para ser calibrada.
  • Supervised learning superstitions cheat sheetes una muy buena comparación de cuatro clasificadores que cubrimos en el curso (regresión logística, árboles de decisión, KNN, Naive Bayes) y un clasificador que no cubrimos (Máquinas de vectores de soporte).

Recursos de matriz de confusión:


Clase 13: Evaluación avanzada del modelo

Tareak:

Recursos ROC:

Recursos de validación cruzada:

Otros recursos:


###Clase 14: Naive Bayes and Text Data *Probabilidad condicional y teorema de Bayes * Slides (adaptado de Visualizing Bayes' theorem) * Aplicar el teorema de Bayes a la clasificación de Iris(notebook)

Tarea:

  • Completar otro homework assignment con el Yelp data. Esto se debe el martes (10/6).
  • Confirma que tienes TextBlob instalado ejecutandoimport textblob desde dentro de su entorno Python preferido.Si no está instalado, ejecutepip install textblob en la línea de comando (no desde dentro de Python).

Recursos:

  • Artículo de Sebastian Rakka en Naive Bayes and Text Classification Cubre el material conceptual de la clase de hoy con mucho más detalle.
  • Para obtener más información sobre probabilidad condicional, lea estos slides, o leer la sección 2.2 delOpenIntro Statistics textbook (15 páginas). *Para una explicación intuitiva de la clasificación de Naive Bayes, lea esta publicación en airport security.
  • Para más detalles sobre la clasificación de Naive Bayes, Wikipedia tiene dos artículos excelentes(Naive Bayes classifier y Naive Bayes spam filtering),Y Cross Valided tiene un buenQ&A.
  • Al aplicar la clasificación ingenua de Bayes a un conjunto de datos con características continuas, es mejor usarlo GaussianNB en vez deMultinomialNB. Esta notebook Compara sus actuaciones en dicho conjunto de datos.Wikipedia tiene un cortodescriptionde Bayes ingenuos gaussianos, así como un excelente example de su uso. *Estasslides De la Universidad de Maryland, proporcione más detalles matemáticos sobre la regresión logística y los bayes ingenuos, y también explique cómo Naive Bayes es en realidad un "caso especial" de regresión logística.
  • Andrew Ng tiene un paper Comparando el rendimiento de la regresión logística y los bayes ingenuos en una variedad de conjuntos de datos.
  • Si disfrutas el artículo de Paul Graham, puedes leerhis follow-up article sobre cómo mejoró su filtro de spam y esto related paper sobre el filtrado de spam de última generación en 2004.
  • YELP ha descubierto que Naive Bayes es más efectivo que los turcos mecánicos en categorizing businesses.

Clase 15: Procesamiento del lenguaje natural

  • Tarea de texto de revisión de Yelp debido (solution)
  • Procesamiento natural del lenguaje (notebook)
  • Introducción a nuestro Kaggle competition *Cree una cuenta de Kaggle, únase a la competencia utilizando el enlace de invitación, descargue el envío de la muestra y luego envíe el envío de muestra (que requerirá la verificación de la cuenta de SMS).

Tarea:

  • ¡Su documento de borrador debe vencer el jueves (10/8)!Envíe un enlace al repositorio de su proyecto (con papel, código, datos y visualizaciones) antes de la clase. *MirarKaggle: How it Works (4 minutos) para una breve descripción de la plataforma Kaggle.
  • Descargue los archivos de competencia, muévalos al DAT8/data dIrectory, y asegúrese de que pueda abrir los archivos CSV con PANDAS.Si tiene algún problema para abrir los archivos, probablemente necesite desactivar el escaneo de virus en tiempo real (especialmente Microsoft Security Essentials).
  • Opcional: Elige algunas teorías sobre qué características pueden ser relevantes para predecir la respuesta, y luego explorar los datos para ver si esas teorías parecen ser ciertas.
  • Opcional: Mira My project presentation video (16 minutos) para un recorrido por el proceso de aprendizaje automático de extremo a extremo para una competencia de Kaggle, incluida la ingeniería de características.(O, solo lea el slides.)

Recursos de PNL:


Clase 16: Competencia de Kaggle

Homework:

  • Se le asignará para revisar los borradores del proyecto de dos de sus pares.Tiene hasta el martes 10/20 para proporcionarles comentarios, según elpeer review guidelines.
  • Leer A Visual Introduction to Machine Learning para una breve descripción de los árboles de decisión.
  • Descargar e instalarGraphviz, que le permitirá visualizar los árboles de decisión en Scikit-Learn.
    • Los usuarios de Windows también deben agregar GraphViz a su ruta: vaya al panel de control, el sistema, la configuración avanzada del sistema, las variables de entorno.En Variables del sistema, edite "ruta" para incluir la ruta a la carpeta "bin", como: C:\Program Files (x86)\Graphviz2.38\bin
  • Opcional: ¡Sigue trabajando en nuestra competencia de Kaggle!Puede formar hasta 5 presentaciones por día, y la competencia no se cierre hasta las 6:30 p.m. ET del martes 27/11 (Clase 21).

Recursos:


Clase 17: Árboles de decisión

Tarea:

Recursos:

  • La documentación de Scikit-Learn en decision trees Incluye una buena descripción de los árboles, así como consejos para el uso adecuado.
  • Para una introducción más exhaustiva a los árboles de decisión, lea la Sección 4.3 (23 páginas) de Introduction to Data Mining. (El Capítulo 4 está disponible como descarga gratuita).
  • Si quieres profundizar en los diferentes algoritmos de árbol de decisión, este mazo de diapositivas contiene A Brief History of Classification and Regression Trees.
  • The Science of Singing Along Contiene un árbol de regresión ordenado (página 136) para predecir el porcentaje de una audiencia en un lugar de música que cantará junto con una canción pop.
  • Los árboles de decisión son comunes en el campo de la medicina para el diagnóstico diferencial, como este árbol de clasificación para identifying psychosis.

Clase 18: Ensembling

Recursos:


Clase 19: Scikit-learn y Clustering avanzado

Tarea:

recursos de Scikit-Learn:

  • Este es un ejemplo más largo de feature scaling En Scikit-Learn, con una discusión adicional de los tipos de escala que puede usar.
  • Practical Data Science in Python iS un cuaderno largo y bien escrito que utiliza algunas características avanzadas de Scikit-Learn: tuberías, trazar una curva de aprendizaje y encurtir un modelo.
  • Para aprender a usar GridSearchCV and RandomizedSearchCV Para el ajuste de los parámetros, miraHow to find the best model parameters in scikit-learn (28 minutos) o lea elassociated notebook.
  • Sebastian Raschka tiene una serie de excelentes recursos para los usuarios de Scikit-Learn, incluido un repositorio detutorials and examples, Una biblioteca de aprendizaje automático tools and extensions, a new book, y un semi-activo blog.
  • Scikit-Learn tiene un increíblemente activo mailing list Eso a menudo es mucho más útil que el desbordamiento de la pila para investigar las funciones y hacer preguntas.
  • Si olvida cómo usar una función particular de Scikit-Learn que hemos usado en la clase, ¡no olvide que este repositorio es completamente búsqueda!

Recursos de Clustering:


Clase 20: Regularización y expresiones regulares

Tarea:

  • ¡Su proyecto final se presentará la próxima semana!
  • Opcional: ¡Haga sus presentaciones finales a nuestra competencia de Kaggle!Cierra a las 6:30 pm ET el martes 27/10.
  • Opcional: Lea este artículo clásico, que puede ayudarlo a conectar muchos de los temas que hemos estudiado durante todo el curso: A Few Useful Things to Know about Machine Learning.

Recurso de regularizacións:

Regular Expressions Resources:


Clase 21: Revisión del curso y presentación final del proyecto

Recursos:


Clase 22: Presentación final del proyecto


Recursos adicionales

Datos ordenados

Databases y SQL

Sistemas de recomendación

  • Esta GA slide deck provides a brief introduction to recommendation systems, and the Python script De esa lección demuestra cómo construir un simple recomendador. *Capítulo 9 de Mining of Massive Datasets (36 pages) es una introducción más exhaustiva a los sistemas de recomendación.
  • Capítulos 2 a 4 de A Programmer's Guide to Data Mining (165 páginas) proporciona una introducción más amigable, con mucho código y ejercicios de Python.
  • El Premio Netflix fue la famosa competencia para mejorar el sistema de recomendaciones de Netflix en un 10%.Aquí hay algunos artículos útiles sobre el premio Netflix:
  • Esta paper resume cómo funciona el sistema de recomendación de Amazon.com, y estoStack Overflow Q&Atiene algunos pensamientos adicionales.
  • Facebook y EtsyTenga publicaciones de blog sobre cómo funcionan sus sistemas de recomendación.
  • The Global Network of Discovery Proporciona algunos recomendadores ordenados para música, autores y películas.
  • The People Inside Your Machine (23 minutos) es un episodio de podcast de Money Planet sobre cómo Amazon Mechanical Turks puede ayudar con los motores de recomendación (y el aprendizaje automático en general).
  • Coursera tiene un course En los sistemas de recomendación, si desea profundizar aún más en el material.