La práctica muestra que muchas empresas empresariales enfrentan dificultades para implementar proyectos analíticos.
La cuestión es que, a diferencia de los proyectos clásicos para el suministro de hierro o la introducción de soluciones de proveedores que se ajustan a un modelo de ejecución lineal, las tareas relacionadas con la analítica avanzada (ciencia de datos) son muy difíciles de formalizar en forma de una especificación técnica clara y sin ambigüedades en la forma suficiente para transmitir intérprete La situación se ve agravada por el hecho de que la implementación de la tarea requiere la integración de una gran cantidad de diversos sistemas internos de TI y fuentes de datos, algunas preguntas y respuestas pueden aparecer solo después de que comienza el trabajo con datos y se revela un estado real de las cosas, que es muy diferente de la imagen documental del mundo. Todo esto significa que para escribir TK competentes, es necesario llevar a cabo una parte preliminar del trabajo comparable a la mitad del proyecto, dedicada al estudio y formalización de necesidades reales, análisis de fuentes de datos, sus relaciones, estructura y brechas. En el marco de las organizaciones, los empleados que son capaces de poner en marcha un trabajo tan masivo prácticamente no existen. Por lo tanto, resulta que se establecen requisitos completamente crudos para las competiciones. En el mejor de los casos, los concursos se cancelan (se envían para su revisión) después de una serie de preguntas aclaratorias. En el peor de los casos, por un presupuesto enorme y por largos períodos de tiempo, obtienes algo completamente diferente de los planes de los demandantes. Y se quedan sin nada.
Una alternativa razonable es crear un equipo de ciencia de datos (DS) dentro de la empresa. Si no apunta a la construcción de las pirámides egipcias, entonces un equipo y 2-3 especialistas competentes pueden hacer mucho, mucho. Pero aquí surge otra pregunta, cómo preparar a estos especialistas. A continuación quiero compartir un conjunto de consideraciones probadas con éxito para preparar rápidamente tales "fuerzas especiales" con R como arma.
Es una continuación de publicaciones anteriores .
Problema
Por el momento, buscar en el mercado profesionales adecuados y competentes es un gran problema. Por lo tanto, es muy útil considerar una estrategia de aprendizaje que sea simplemente alfabetizada y adecuada. Al mismo tiempo, se observan los detalles de la capacitación requerida:
- no hay oportunidad de aprender durante meses, el resultado debe obtenerse lo más rápido posible;
- Es necesario poner énfasis en las tareas reales de la empresa.
- en DS industrial hay muchas más tareas asociadas con el procesamiento de datos que con AI \ ML;
- Industrial DS no es una casa de arte, sino una actividad estructurada que se traduce en un código de aplicación estable.
A pesar de lo notable de Coursera, Datacamp, varios libros, así como los programas de ML, ninguno de los conjuntos de cursos no permitió obtener el conjunto de características requerido. Sirven como excelentes fuentes para mejorar la habilidad, pero son difíciles de comenzar rápidamente. La tarea principal en un inicio rápido es indicar caminos, pantanos, trampas; familiarizarse con la gama de herramientas existentes; mostrar cómo se pueden resolver las tareas de la empresa utilizando la herramienta; tirar al lago desde un bote y hacer nadar.
Es importante mostrar que R no es solo un instrumento, sino también una comunidad apropiada. Por lo tanto, el uso de una gran cantidad de desarrollos relevantes, incluyendo Presentación, es uno de los formatos de trabajo con la comunidad. Hadley incluso puede escribir preguntas en tweeter o github. Para preguntas valiosas, puede obtener respuestas completas.
Como resultado de varios experimentos, se obtuvo un enfoque estructural de "inmersión profunda en R" para el suministro de material básico.
Sumérgete en R
- La duración óptima del curso es de 50 horas (~ 7-9 días durante 7-6 horas).
- El objetivo clave del curso es la formación de habilidades prácticas para la escritura rápida de código efectivo y de alta calidad utilizando algoritmos óptimos.
- Las demostraciones completas se crean mejor en tareas específicas, de esta manera puede familiarizarse con herramientas y enfoques mucho más rápido.
- Una gran cantidad de temas considerados sirve para formar una representación y "marcadores" sobre las capacidades del ecosistema.
- El desglose del día no es un dogma, sino un control de enfoque planificado.
- Para cada día, para demostrar y consolidar el material, se analizan tareas prácticas de diversos grados de complejidad y volumen.
Cada estudiante, antes de comenzar, recibe de su liderazgo una tarea práctica ("documento final") en forma de una tarea real que tendrá que completar durante la inmersión y defender al final del curso.
Día 1
Brevemente sobre R. Sintaxis y estructura del lenguaje. Los fundamentos del uso de RStudio IDE para análisis y desarrollo. Tipos básicos y datos. Computación interactiva y ejecución de código de programa. Una breve introducción a R Markdown y R notebook. Principios de trabajo con bibliotecas. Preparación para el trabajo analítico, instalación de las bibliotecas necesarias, creación de un proyecto. Los principios de los cálculos de perfiles, la búsqueda de cuellos de botella (lugares extremadamente largos) y su eliminación.
- Historia y ecología de R
- RStudio Cheatsheets
- Comenzando con R-Markdown
- Criterios para la calidad del entrenamiento / trabajo: escribimos rápidamente código rápido y compacto usando algoritmos óptimos
- Vectorización
- Evaluación de la velocidad de ejecución del código:
system.time
, tictoc
, benchmark
, bench
, profvis
- Evaluación del rendimiento del sistema:
benchmarkme
- Ecosistema R, los fundamentos del lenguaje
- Valores
NA
, NULL
, NaN
. - Operadores
=
, ==
, <-
- Funciones
is.na()
, is.null()
, is.nan()
, ( is.finite()
, is.infinite()
) - Subconjunto y corte
Día 2
El concepto y el ecosistema de los paquetes 'tidyverse' ( https://www.tidyverse.org/ ). Una breve descripción de los paquetes incluidos en él (importación / procesamiento / visualización / exportación). El concepto de tidy data
como base de los métodos de trabajo en tidyverse
. 'tibble' como formato de representación de datos. (Paquetes del ecosistema tidyverse). Transformaciones y manipulaciones de datos. Sintaxis y principios del procesamiento de flujo (tubería). - -
. ( tibble
, dplyr
, tidyr
).
Día 3
Formación de representaciones gráficas usando ggplot ( https://ggplot2.tidyverse.org/reference/index.html ). Uso de herramientas gráficas para analizar datos comerciales.
Día 4
Trabajar con cadenas y tipos enumerados. Los fundamentos de las expresiones regulares. Trabajar con fechas. (Paquetes stringi
, stringr
, forcats
, re2r
, lubridate
, en anytime
)
Día 5
Importación avanzada de datos. txt, csv, json, odbc, desguace web (API REST), xlsx.
( readr
paquetes, opexlsx
, jsonlite
, curl
, rvest
, httr
, readtext
, DBI
, data.table
)
- Directorio de trabajo.
getwd()
, setwd()
. Paquete de solicitud here
- Complemento
rspivot
. rspivot es un gadget Shiny para RStudio para ver marcos de datos. - Paquete y complemento de
datapasta
. - Introducción al lector . Repase las características de especificación de columna.
- trabajar con Excel:
- Desguace web en una demostración:
Día 6
Exportar datos. rds, csv, json, xlsx, docx, pptx, odbc. Los fundamentos de R Markdown y R Notebook.
(Paquetes opexlsx
, officer
, DBI
, jsonlite
, readr
, data.table
, knitr
)
Incluyendo
- Creación de presentaciones con R
officer
. - Exportar a PDF a través de punto -> LaTeX
- Exportación directa a Word
Día 7
Fundamentos de programación en R. Creación de funciones. El alcance de las variables. Ver objetos. Ver objetos, su estructura. Los principios de funcionamiento "por enlaces".
- Concepto de función. Crea tus propias funciones.
- Concepto de medio ambiente. Entornos avanzados de R. 7
- para bucle, mientras que bucle
- tutorial de ronroneo
- El concepto de cálculos "seguros", su uso en el análisis por lotes (de
safely
) - Profvis: herramientas de creación de perfiles para un código R más rápido
- Enfoque de evaluación
lobstr
, evaluación no estándar, paquete lobstr
Día 8
Enfoques para la validación de resultados intermedios y finales. Los principios de colaboración y la formación de la informática reproducible. Demostración de aplicaciones brillantes como interfaz de destino para usuarios finales. (Paquetes checkmate
, reprex
, futile.logger
, shiny
)
- Programación defensiva. Validación de parámetros. Paquete de
checkmate
, la velocidad es nuestro todo . - Validación de entrada:
futile.logger
con futile.logger
.- 2018-09_reprex-rstudio-webinar
Día 9
Métodos y enfoques para trabajar con datos del tamaño "promedio". Paquete de data.table
. Las funciones principales. Análisis experimental comparativo.
Resumen de preguntas adicionales que aparecieron en 1-8 días.
Día 10
Curso de protección
Requisitos de trabajos para miembros de Windows 10
Libros
Conclusión
- La secuencia de alimentación propuesta no es un dogma. Puede haber varias excepciones e incl. materiales, incluidas inserciones matemáticas. Todo está determinado por problemas de actualidad reales y tareas que se determinarán para el curso y una lista de problemas de producción populares. Los más populares son los algoritmos de regresión, agrupamiento, minería de texto y series de tiempo.
- Los problemas de la computación paralela, la creación de aplicaciones brillantes, el uso de algoritmos ML y plataformas externas no se ajustan al concepto de "inmersión rápida", pero pueden ser una continuación después del inicio del trabajo práctico.
PS HR generalmente tiene dificultades para formular requisitos de trabajo.
Aquí hay un posible ejemplo para la semilla. Cada uno complementa y rige según sus expectativas.
Data Science (DS): Big Data y Analytics. Requisitos de trabajo
- Educación:
- Técnico o científico natural superior.
- Los certificados para cursos de asignaturas (Coursera, DataCamp) son bienvenidos.
- El inglés es una ventaja (lectura libre de literatura técnica, una comprensión segura del habla oral no adaptada, lenguaje hablado a nivel de comunicación técnica).
- Experiencia:
- En el campo de DS - al menos 1 año.
- Al menos 2 años de experiencia en desarrollo de equipos en metodologías ágiles.
- Experiencia en el desarrollo de interfaces de usuario (WEB + JS).
- Experiencia en el desarrollo de documentación.
- Fuerte conocimiento de las siguientes tecnologías (al menos el 30% de la lista):
- SQL + No-SQL back-end (al menos uno de cada tipo de base de datos).
- Lenguajes de programación de código abierto para tareas de DS (Python, R o ambos).
- Plataformas para almacenar y procesar grandes datos (Hadoop y sus derivados, Spark \ Ignite, ClickHouse, Vertica, ELK stack ...)
- Conceptos básicos de HTML + JS + CSS para el desarrollo de GUI web para usuarios finales.
- Competencia en los conceptos básicos de estadística matemática y álgebra lineal.
- Series de tiempo (incluyendo predicción y búsqueda de anomalías).
- Aprendizaje automático, redes neuronales.
- Minería de texto y expresiones regulares.
- Fundamentos de la administración de sistemas windows + nix.
- Las herramientas y algoritmos para el procesamiento y la visualización de la geoinformación (ESRI, OpenStreet, Yandex Maps, Google Maps, folleto, ...) funcionan con archivos shap y GPX.
- Importación de datos en herramientas de ciencia de datos y su normalización (archivos, ODBC, API REST, rastreo web).
- Visualización (Tableau, QlikView, Excel, Shiny \ Dash).
- Paquetes matemáticos comerciales (Wolfram Mathematica, Maple, Matlab).
- Responsabilidades del trabajo:
- Inspección y preparación de datos fuente.
- El desarrollo de hipótesis y su verificación en los datos fuente.
- Desarrollo de modelos matemáticos y sus pruebas.
- Desarrollo de soluciones de diseño de software.
- Desarrollo de aplicaciones WEB y paneles interactivos.
- Desarrollo de informes impresos.
- Puesta a punto, prueba, desarrollo y mantenimiento del circuito analítico.
- Actualización de la documentación del proyecto.
Publicación anterior: "¿Qué tan rápido es R para la productividad?" .