«Forces spéciales» de Data Science en interne

La pratique montre que de nombreuses entreprises ont des difficultés à mettre en œuvre des projets analytiques.


Le fait est que, contrairement aux projets classiques de fourniture de fer ou à l'introduction de solutions de fournisseurs qui s'inscrivent dans un modèle d'exécution linéaire, les tâches liées à l'analytique avancée (science des données) sont très difficiles à formaliser sous la forme d'une spécification technique claire et sans ambiguïté sous la forme suffisante pour transmettre interprète. La situation est aggravée par le fait que la mise en œuvre de la tâche nécessite l'intégration d'une masse de divers systèmes informatiques internes et sources de données, certaines questions et réponses peuvent n'apparaître qu'après le début du travail avec les données et une situation réelle révélée, ce qui est très différent de l'image documentaire du monde. Tout cela signifie que pour rédiger des savoirs traditionnels compétents, il est nécessaire d'effectuer une partie préliminaire du travail comparable à la moitié du projet, consacrée à l'étude et à la formalisation des besoins réels, à l'analyse des sources de données, de leurs relations, de leur structure et de leurs lacunes. Dans le cadre des organisations, les employés capables de monter un travail aussi massif n'existent pratiquement pas. Il s'avère donc que des exigences complètement brutes sont établies pour les compétitions. Dans le meilleur des cas, les concours sont annulés (envoyés pour révision) après une série de questions de clarification. Dans le pire des cas - pour un budget énorme et pour de longues périodes de temps, cela s'avère complètement différent des plans des auteurs des exigences. Et ils restent sans rien.


Une alternative raisonnable consiste à créer une équipe de science des données (DS) au sein de l'entreprise. Si vous ne visez pas la construction des pyramides égyptiennes, alors une équipe et 2-3 spécialistes compétents peuvent faire beaucoup, beaucoup. Mais ici une autre question se pose, comment préparer ces spécialistes. Ci-dessous, je veux partager un ensemble de considérations testées avec succès pour préparer rapidement de telles "forces spéciales" avec R comme arme.


Il s'agit d'une continuation des publications précédentes .


Problème


À l'heure actuelle, la recherche sur le marché de professionnels compétents et compétents est un gros problème. Par conséquent, il est très utile d'envisager une stratégie d'apprentissage simplement alphabétisée et adéquate. Dans le même temps, les spécificités de la formation requise sont observées:


  • il n'y a aucune possibilité d'apprendre pendant des mois, le résultat doit être obtenu le plus rapidement possible;
  • il est nécessaire de mettre l'accent sur les tâches réelles de l'entreprise;
  • dans les DS industriels, il y a beaucoup plus de tâches associées au traitement des données qu'à AI \ ML;
  • Industrial DS n'est pas une maison d'art, mais une activité structurée qui se traduit par un code d'application stable.

Malgré le caractère remarquable de Coursera, Datacamp, divers livres, ainsi que des programmes de ML, aucun des ensembles de cours n'a permis d'obtenir l'ensemble de caractéristiques requis. Ils constituent d'excellentes sources d'amélioration des compétences, mais sont difficiles à démarrer rapidement. La tâche principale à un démarrage rapide est d'indiquer les chemins, les marécages, les pièges; se familiariser avec la gamme d'outils existants; montrer comment les tâches de l'entreprise peuvent être résolues en utilisant l'outil; jeter dans le lac depuis un bateau et nager.


Il est important de montrer que R n'est pas seulement un instrument, mais aussi une communauté appropriée. Par conséquent, l'utilisation d'un grand nombre de développements pertinents, y compris La présentation est l'un des formats de travail avec la communauté. Hadley peut même écrire des questions dans un tweeter ou un github. Pour les questions dignes, vous pouvez obtenir des réponses complètes.


À la suite de diverses expériences, une approche structurelle «Deep Dive Into R» pour l'approvisionnement en matériau de base a été obtenue.


Plongez dans R


  • La durée optimale du cours est de 50 heures (~ 7-9 jours pour 7-6 heures).
  • L'objectif principal du cours est la formation de compétences pratiques pour l'écriture rapide de code efficace et de haute qualité en utilisant des algorithmes optimaux.
  • Il est préférable de créer des démos complètes sur des tâches spécifiques - de cette façon, vous pouvez vous familiariser avec les outils et les approches beaucoup plus rapidement.
  • Un grand nombre de questions considérées servent à former une représentation et des «signets» sur les capacités de l'écosystème.
  • La répartition de la journée n'est pas un dogme, mais un contrôle planifié de la concentration.
  • Pour chaque jour, afin de démontrer et de consolider le matériel, des tâches pratiques de divers degrés de complexité et de volume sont analysées.

Chaque étudiant, avant de débuter, reçoit de son leadership une tâche pratique («term paper») sous la forme d'une tâche réelle qu'il devra accomplir pendant la plongée et défendre à la fin du cours.


Jour 1


En bref sur R. Syntaxe et structure du langage. Les bases de l'utilisation de RStudio IDE pour l'analyse et le développement. Types et données de base. Informatique interactive et exécution de code de programme. Une brève introduction à R Markdown et au bloc-notes R. Principes de travail avec les bibliothèques. Préparer le travail analytique, installer les bibliothèques nécessaires, créer un projet. Les principes du profilage des calculs, la recherche de goulots d'étranglement (extrêmement longs) et leur élimination.


  • Histoire et écologie de R
  • Fiches techniques RStudio
  • Premiers pas avec R-Markdown
  • Critères de qualité de la formation / du travail: nous écrivons rapidement du code rapide et compact en utilisant des algorithmes optimaux
    • Vectorisation
    • Évaluation de la vitesse d'exécution du code: system.time , tictoc , benchmark , bench , profvis
    • Évaluation des performances du système: benchmarkme
  • Écosystème R, les bases du langage
  • Valeurs NA , NULL , NaN .
  • Opérateurs = , == , <-
  • Fonctions is.na() , is.null() , is.nan() , ( is.finite() , is.infinite() )
  • Sous-ensemble et tranchage

2e jour


Le concept et l'écosystème des packages «tidyverse» ( https://www.tidyverse.org/ ). Un bref aperçu des packages qui y sont inclus (importation / traitement / visualisation / exportation). Le concept de tidy data comme base des méthodes de travail dans tidyverse . 'tibble' comme format de représentation des données. (Forfaits de l'écosystème tidyverse). Transformations et manipulations de données. Syntaxe et principes du traitement des flux (pipe). - - . ( tibble , dplyr , tidyr .)



3e jour


Formation de représentations graphiques à l'aide de ggplot ( https://ggplot2.tidyverse.org/reference/index.html ). Utiliser des outils graphiques pour analyser les données commerciales.



Jour 4


Utilisez des chaînes et des types énumérés. Les bases des expressions régulières. Travaillez avec des dates. (Paquets stringi , stringr , forcats , re2r , lubridate , anytime )



Jour 5


Importation de données avancée. txt, csv, json, odbc, mise à la casse Web (API REST), xlsx.
(Packages readr , opexlsx , jsonlite , curl , rvest , httr , readtext , DBI , data.table )


  • Répertoire de travail. getwd() , setwd() . Dossier de candidature here
  • rspivot . rspivot est un gadget brillant pour RStudio pour visualiser les trames de données.
  • Empaquetage et complément de datapasta .
  • Introduction à readr . Passez en revue les fonctionnalités de spécification de colonne.
  • travailler avec Excel:
  • Web-scraping sur une démo:

6e jour


Exportez les données. rds, csv, json, xlsx, docx, pptx, odbc. Les bases de R Markdown et R Notebook.
(Paquets opexlsx , officer , DBI , jsonlite , readr , data.table , knitr )


Y compris


  • Création de présentations à l'aide de R officer .
  • Exporter au format PDF via tricot -> LaTeX
  • Exportation directe vers Word

7e jour


Bases de la programmation en R. Création de fonctions. La portée des variables. Afficher les objets. Visualisez les objets, leur structure. Les principes de fonctionnement "par liens".


  • Concept de fonction. Créez vos propres fonctions.
  • Concept d'environnement. Environnements R. 7 avancés
  • pour boucle, tandis que boucle
  • tutoriel purrr
  • le concept de calculs "sûrs", leur utilisation dans l'analyse des lots (en safely )
  • Profvis - Outils de profilage pour un code R plus rapide
  • Approche Lazy_evaluation, évaluation non standard, package lobstr

Jour 8


Approches de validation des résultats intermédiaires et finaux. Les principes de collaboration et la formation de l'informatique reproductible. Démonstration d'applications brillantes comme interface cible pour les utilisateurs finaux. (Packages reprex , futile.logger , futile.logger , shiny )



Jour 9


Méthodes et approches pour travailler avec des données de taille "moyenne". Package data.table . Les fonctions principales. Analyse expérimentale comparative.
Aperçu des questions supplémentaires apparues en 1 à 8 jours.


10e jour


Protection des parcours


Conditions requises pour les travaux des membres Windows 10



Livres



Conclusion


  1. La séquence d'alimentation proposée n'est pas un dogme. Il peut y avoir diverses dérogations et incl. matériaux, y compris les insertions mathématiques. Tout est déterminé par de vrais problèmes et tâches d'actualité qui seront déterminés pour le cours et une liste de problèmes de production populaires. Les plus populaires sont les algorithmes de régression, de clustering, d'exploration de texte et de séries chronologiques.
  2. Les problèmes de calcul parallèle, de création d'applications brillantes, d'utilisation d'algorithmes ML et de plates-formes externes ne rentrent pas dans le concept de «l'immersion rapide», mais peuvent être une continuation après le début des travaux pratiques.

PS HR a généralement du mal à formuler les exigences du poste.
Voici un exemple possible pour la graine. Chacun complète et règle en fonction de ses attentes.


Data Science (DS): Big Data et Analytics. Exigences du poste


  • Éducation:
    • Technique ou scientifique naturel supérieur.
    • Les certificats pour les cours thématiques (Coursera, DataCamp) sont les bienvenus.
    • L'anglais est un atout (lecture libre de la littérature technique, compréhension sûre de la parole orale non adaptée, langue parlée au niveau de la communication technique).
  • Expérience:
    • Dans le domaine de DS - au moins 1 an.
    • Au moins 2 ans d'expérience en développement d'équipe dans les méthodologies agiles.
    • Expérience dans le développement d'interfaces utilisateur (WEB + JS).
    • Expérience dans le développement de documentation.
  • Connaissance approfondie des technologies suivantes (au moins 30% de la liste):
    • Backend SQL + No-SQL (au moins un de chaque type de base de données).
    • Langages de programmation open source pour les tâches DS (Python, R ou les deux).
    • Plateformes de stockage et de traitement de big data (Hadoop et ses dérivés, Spark \ Ignite, ClickHouse, Vertica, pile ELK ...)
    • Bases HTML + JS + CSS pour le développement d'interfaces graphiques pour les utilisateurs finaux.
    • Maîtrise des bases de la statistique mathématique et de l'algèbre linéaire.
    • Séries chronologiques (y compris prédiction et recherche d'anomalies).
    • Apprentissage automatique, réseaux de neurones.
    • Exploration de texte et expressions régulières.
    • Principes fondamentaux de l'administration des systèmes Windows + Nix.
    • Outils et algorithmes de traitement et de visualisation de la géoinformation (ESRI, OpenStreet, Yandex Maps, Google Maps, brochure, ..), fonctionnent avec des fichiers shap et GPX.
    • Importation de données dans des outils de science des données et leur normalisation (fichiers, ODBC, API REST, analyse Web).
    • Visualisation (Tableau, QlikView, Excel, Shiny \ Dash).
    • Packages mathématiques commerciaux (Wolfram Mathematica, Maple, Matlab).
  • Responsabilités professionnelles:
    • Inspection et préparation des données sources.
    • L'élaboration d'hypothèses et leur vérification sur les données sources.
    • Développement de modèles mathématiques et leurs tests.
    • Développement de solutions de conception logicielle.
    • Développement d'applications WEB et de tableaux de bord interactifs.
    • Élaboration de rapports sur papier.
    • Réglage, test, développement et maintenance du circuit analytique.
    • Mise à jour de la documentation du projet.

Article précédent - «Quelle est la vitesse de R pour la productivité?» .

Source: https://habr.com/ru/post/fr440700/


All Articles