Je vais préciser tout de suite qu'il existe de nombreux types d'analystes, puisque vous pouvez analyser tout ce que vous voulez. Ce sont des analystes Web, des data scientists classiques, des analystes commerciaux, des analystes financiers, ainsi que des analystes produits, systèmes et UX. La raison de cette diversité, apparemment, est que dans un certain nombre de grandes entreprises, des dizaines, voire des centaines de programmeurs et d'analystes peuvent travailler simultanément à la création d'une plate-forme ou d'un produit. Dans ces conditions, un fort rétrécissement de la spécialisation se produit.
Tous ces types d'analystes utilisent leurs propres ensembles d'outils spécifiques. Par conséquent, je me concentrerai uniquement directement sur le domaine de l'analyse des données, en dehors du contexte de l'origine de ces mêmes données. Ainsi, nous excluons de l'examen les systèmes d'analyse Web, CRM, ERP, systèmes de comptabilité d'entrepôt, logistique et gestion de documents.
1. Langages de programmation
Nous ne nous attarderons pas sur des occasions exceptionnelles, uniques ou rares. Ne considérons que les plus populaires. Et bien sûr, tout d'abord, c'est le langage python.
Python
Python est l'outil principal entre les mains des scientifiques des données, n'est pas fortement typé et est conçu pour le prototypage rapide ou la création de scripts ou de scripts courts. Les gens qui comprennent la programmation et l'informatique le critiquent souvent pour le fait que les algorithmes écrits en python pur ne sont pas optimaux en termes de performances et de besoins en mémoire.
Néanmoins, ce langage de programmation présente de nombreux avantages. Parmi eux, je note que le python est enseigné presque partout, et qu'il est donc relativement facile de trouver un analyste qui connaît le python. Le deuxième avantage réside dans les bibliothèques pour travailler avec des données et l'apprentissage automatique, qui ont une interface conviviale. Par exemple, sklearn facilite la création de pipelines de prétraitement et de création de modèles. Tous les algorithmes et paramètres d'apprentissage automatique sont encapsulés dans des classes et des objets, ce qui rend le code très simple.
R
Jusqu'à récemment, le principal concurrent de python était le langage R. Les demandes de connaissance de R et maintenant apparaissent rarement dans les descriptions de poste, du moins dans la section «avantages». Jusqu'à mi-2018, je programmais moi-même en R. Et tout en essayant d'automatiser une partie de mon travail d'apprentissage automatique, j'ai presque réinventé la roue, en essayant de créer des pipelines pour la préparation de données et la formation de modèles dans R. Un peu plus tard, j'ai découvert que de tels pipelines existent depuis longtemps dans la bibliothèque sklearn et sont appelés pipeline.
C ++, C #
Si les bibliothèques python existantes sont insuffisantes et que vous devez implémenter un nouvel algorithme à hautes performances, vous pouvez utiliser le langage C ++ compilé et typé statiquement ou un langage similaire C #.
Matlab
Le langage MatLab est intégré au progiciel du même nom et à un environnement interactif pour les calculs d'ingénierie. Certes, ce langage est destiné dans une plus large mesure à résoudre des problèmes techniques et non à effectuer des analyses financières ou commerciales. Par exemple, j'ai eu la chance d'utiliser MatLab deux fois: dans le processus d'étude des signaux d'émission acoustique dans les structures, ainsi que dans le traitement de la parole humaine.
Il existe un certain nombre de bibliothèques d'apprentissage automatique avec des API pour d'autres langages de programmation tels que Java, JavaScript, Scala, etc. Mais je ne m'attarderai pas sur eux puisque le but de l'article est légèrement différent.
Veuillez être un peu patient. Vous apprendrez tout dans les sections suivantes.
2. AutoML et concepteurs visuels
AutoML, selon son idée de base, simplifie considérablement la tâche du chercheur et réduit plusieurs étapes d'étude et de préparation des données, de construction de fonctionnalités, de choix et de comparaison d'un algorithme d'apprentissage automatique et de réglage des hyperparamètres en une seule étape. Et cette étape consiste à sélectionner et configurer une grande boîte appelée AutoML. Le résultat de l'exécution de l'algorithme AutoML est un pipeline construit et correctement configuré et formé. Il ne reste plus qu'à prendre les données «brutes», à les glisser dans le pipeline et à attendre le résultat sous forme de prévisions en sortie.
La boîte appelée "AutoML" ressemble à une bibliothèque d'apprentissage automatique ou à un service Web où les données sont téléchargées.
S'il s'agit d'une bibliothèque, cela diffère de sklearn en ce que notre code habituel de 20 à 30 lignes est compressé en 5 lignes. Un exemple célèbre d'une telle bibliothèque est H2O.
Un autre exemple est la bibliothèque MLBox. Vous pouvez trouver des histoires à son sujet sur Internet, sur la façon dont l'utilisation de MLBox lui a permis d'entrer dans le top 5% des compétitions kaggle.
Maintenant, quelques mots sur les services cloud AutoML. Tout d'abord, tous les grands géants du numérique sont pressés de présenter leurs solutions techniques. Certains d'entre eux sont: Google AutoML Tables, Azure Machine Learning (Microsoft), SageMaker Autopilot (Amazon). Les services listés devraient intéresser principalement les entreprises qui développent des systèmes analytiques sur des plates-formes cloud. C'est très pratique lorsque l'infrastructure de données, les ressources informatiques et les algorithmes d'apprentissage automatique prêts à l'emploi sont fournis par le même fournisseur. L'intégration est vraiment transparente.
En plus des géants du numérique, de plus petits acteurs entrent sur le marché AutoML. Par exemple, Bell Integrator travaille actuellement activement sur la plate-forme neuton.ai.
Dans la même section, il convient de rappeler les systèmes d'apprentissage automatique qui occupent une position intermédiaire entre la programmation directe en R et Python et AutoML entièrement packagé. Ce sont les soi-disant constructeurs de flux de travail. Deux exemples typiques sont Azure Machine Learning Designer de Microsoft et la plateforme SberDS de Sberbank.
Le constructeur est un ensemble de briques à partir desquelles vous pouvez assembler l'ensemble du pipeline d'apprentissage automatique, y compris la vérification finale de l'intégrité du modèle. C'est sans aucun doute une belle solution pour les personnes ayant un état d'esprit visuel qui sont à l'aise avec la représentation du processus d'apprentissage automatique et de test de modèles sous forme de diagrammes.
3. Outils BI
Ici, je voudrais passer en revue plusieurs solutions BI dans le domaine de l'analyse: Power BI, Tableau, Qlick Sense, Qlick View et Excel.
Power BI
Power BI est un ensemble d'outils d'analyse de Microsoft disponibles sous forme d'applications de bureau et de services cloud. Il existe des solutions d'entreprise qui fonctionnent sur l'infrastructure informatique fermée de l'entreprise. Travailler dans Power BI Desktop ou les services Power BI ne nécessite aucune compétence en codage. Il existe une possibilité d'intégration en ligne avec des sources de données externes, ainsi que le téléchargement de données au format csv.
Power BI est capable de résoudre les problèmes d'apprentissage automatique à l'aide d'AutoML, c'est-à-dire que vous n'avez pas besoin d'écrire du code comme en Python pour créer un modèle de classification ou de régression. En plus des tâches standard d'analyse des données tabulaires, la fonctionnalité comprend des technologies d'analyse des sentiments, l'extraction de phrases clés, la reconnaissance de la langue et l'ajout de balises à une image.
Tableau
Tableau est également toute une famille d'applications en ligne et de bureau, tout comme Power BI. Ces applications ont une interface visuelle simple et vous permettent de travailler avec la méthode glisser-déposer. De superbes graphiques sont créés en quelques clics. Vous pouvez également analyser les données sous forme de tableau et y appliquer divers filtres.
Tableau vous permet de résoudre des problèmes d'apprentissage automatique tels que la régression, la prévision de séries chronologiques, l'analyse de cluster. Plus important encore, Tableau est capable de s'intégrer à des scripts externes en R et Python. Il s'avère un outil facilement extensible.
Qlick Sence et Qlick View
Qlick Sence et Qlick View diffèrent par leur positionnement et leur interface, mais par essence et par leurs algorithmes de résolution de problèmes, ils reposent sur le même moteur. Qlick View est une plate-forme d'entreprise gérée par des spécialistes de l'informatique, Qlick Sence est un outil à usage personnel sans avoir besoin de demander l'aide de la technologie. Support.
A la première connaissance, la "beauté" et la facilité de visualisation sont frappantes. C'est l'outil même pour créer un tableau de bord de gestion accrocheur. De mon point de vue, la possibilité de changer l'échelle lors de l'analyse de cartes géographiques et de clusters sur des graphiques bidimensionnels semble particulièrement spectaculaire. Je me souviens de plans de films, où sur la photo des satellites, ils essayent de distinguer la plaque d'immatriculation de la voiture ou de distinguer une personne de la foule sur la place.
Une autre option intéressante est la présence d'une application mobile pour effectuer des analyses depuis un smartphone. C'est ainsi qu'apparaît le top manager du réseau de vente au détail, se précipitant vers le prochain vol à l'aéroport et recevant un message inattendu dans le messager avec un lien vers le tableau de bord.
Qlick Sence s'intègre à Python et donc au machine learning.
Excel
Vous me pardonnerez, mais je ne pouvais pas passer par Excel. Peu importe combien vous riez, tout instrument est bon à sa manière. Par exemple, les tableaux croisés dynamiques et les graphiques Excel sont magnifiquement créés en quelques clics. Combiné avec une feuille de calcul pratique et un formatage csv, c'est un très bon outil.
4. Un point culminant sur le gâteau. Génération automatique de code basée sur l'IA
Une fois, lors de ma rencontre sur le net, on m'a posé la question "programmez-vous en python?" Et quand j'ai répondu «Oui», la suite était complètement inattendue.
"Savez-vous à ce sujet ..." et puis il y avait un lien vers la vidéo sur Youtube
https://www.youtube.com/watch?v=fZSFNUT6iY8&t=4s&ab_channel=FazilBabu .
Il s'agit d'un modèle de texte génératif d'OpenAI, formé sur le référentiel GitHub. Des exemples spécifiques démontrent la capacité du modèle à générer du code Python en fonction du titre de la fonction et de sa brève description.
Mais que se passe-t-il si un tel modèle peut être bien formé sur des scripts par des scientifiques de données? C'est une question de réflexion ...