Technologie

Toujours laisser une trace de papier d'analyse

Toujours laisser une trace de papier d'analyse


Cela vous sauvera les fesses. Beaucoup.

Bunny… des choses de Hokkaido.

Pour la plupart des scientifiques de données, les demandes d'analyse ad hoc sont une réalité. Même si votre rôle principal est la modélisation de haut niveau / le développement de produits, il y a toujours beaucoup d’analyses plus petites que vous allez faire, que ce soit pour vous-même en tant que travail préparatoire pour un projet plus important ou pour quelqu'un d’autre.

Dans un tel environnement, il est très Il est facile de se retrouver avec une pile géante de résultats d’analyses qui flottent dans un répertoire «temporaire» permanent avec peu de contexte. «Petite chose rapide qui ne mérite pas d’être archivée», vous dites: «L’origine des données est évidente». Je comprends, ça arrive, je l’ai dit moi-même un million de fois auparavant. Ça ne finit jamais vraiment bien.

Qu'est-ce qu'un scientifique de données occupé doit faire? En dépit de la charge de travail que cela donne, vous devez laisser une trace papier qui puisse clairement être tracée jusqu'aux données brutes. Inévitablement, quelqu'un voudra que vous réexécutiez une analyse effectuée il y a 6 mois afin de pouvoir mettre à jour un rapport. Ou encore quelqu'un vous contactera et vous demandera si votre définition spécifique d '«utilisateur actif» inclut les personnes qui portaient des chapeaux verts. À moins que vous n'ayez une mémoire parfaite, vous ne vous souviendrez pas des détails et devrez chercher la réponse.

TL; DR: tout produit livrable d'analyse doit toujours voyager avec une documentation indiquant le chemin complet emprunté à l'analyse, du transfert des données brutes au produit livrable, y compris les requêtes et le code, ainsi que des liens vers les analyses précédentes et les vidages de données brutes, le cas échéant. .

L'analyse doit être autonome

En milieu universitaire, lorsque nous publions un article, nous sommes formés pour citer nos sources, exposer notre raisonnement et (idéalement) documenter suffisamment nos méthodes pour que des tiers puissent reproduire notre travail et nos résultats. En écrivant du code, nous sommes (encore, idéalement) supposés écrire du code avec suffisamment de clarté, complété par des commentaires et de la documentation pour permettre à d’autres personnes (y compris votre futur individu) de comprendre ce qui se passe lorsqu’elles révisent votre code. La principale caractéristique est que le livrable final, qu'il s'agisse d'un code archivé ou d'un document publié, est fourni avec la documentation. Ils vivent ensemble et sont consommés ensemble.

Cela ne se produit normalement pas pour un produit d'analyse livrable!

Les produits d'analyse sont souvent séparés des éléments utilisés pour le générer. Les résultats sont envoyés dans des diapositives, un tableau de bord sur un écran de télévision ou un graphique collé dans un courrier électronique, une seule diapositive dans une présentation conjointe pour les cadres ou simplement des clichés CSV aléatoires flottant quelque part dans une structure de fichiers. Le couplage entre le produit livrable et la source est inexistant à moins que nous ne fassions délibérément quelque chose à ce sujet.

Forfait toutes les choses!

Mais je vérifie déjà mon SQL / Code dans git!

Bien sûr, parfait pour vous. Mais lorsque quelqu'un pointe un graphique que vous avez partagé il y a 6 mois et demande "Avez-vous exclu les utilisateurs internes de ce graphique?", Vous obtiendrez une réponse. Si non, pourrez-vous prendre ce graphique et revenir à la requête de données / ETL qui a généré les données pour qu'il réponde à la question? Il est souvent préférable de NE PAS archiver de grands ensembles de données dans votre référentiel git. Par conséquent, il y a toujours une déconnexion entre le code archivé et les artefacts de données résultants.

Il n’ya pas de question là-dessus: existe-t-il un enregistrement «quelque part», mais le document est-il facilement accessible en cas de besoin, à tout moment et en tout lieu lorsque la question est posée, en quelques secondes?

Coup de œil à la chasse, quelles sont quelques exemples de solutions?

Voici une liste non exhaustive de moyens de garder les choses ensemble. Utilisez ce qui semble le plus naturel pour toutes les parties prenantes.

  • Fichiers Excel: Créez un onglet pour votre vidage de données brutes, un onglet pour la requête, un onglet pour l'analyse. Mettez des liens / références si quelque chose est trop gros pour tenir.
  • Fichiers CSV: Vous souhaiterez quand même compresser vos données pour les envoyer / les archiver, tar / zip / bz2 / xz avec votre fichier query.sql, n’importe quel code de traitement, etc.
  • Jeux de diapositives: En fonction du public et du forum, diapositives annexées avec liens vers des calculs d’analyse / documentation, ou documents placés dans les notes du présentateur
  • Tableaux de bord: Compliqué, liens sur l'interface utilisateur si possible, ou commentaires / liens masqués dans le code qui génère les éléments de tableau de bord spécifiques.
  • Rapports par courrier électronique: Fournissez un lien vers une source plus détaillée ou une référence aux données pertinentes.
  • Cahiers Jupyter / Colab: La documentation doit être intégrée au code et au cahier lui-même, ces motifs text / html sont justifiés.
  • Modèles de production: Codez les commentaires et / ou les liens renvoyant à l'analyse d'origine sur laquelle repose le modèle, ou du moins à l'analyse ayant généré les paramètres.

Quelque chose d'autre que je devrais faire?

Datez vos fichiers— La plupart des analyses, en particulier les analyses ad hoc, ont un contexte ancré dans le temps - réunions trimestrielles du conseil d'administration, publication d'une nouvelle fonctionnalité, etc. Les éléments de 2017 sont généralement moins pertinents en 2019. Lorsque tout le contexte est perdu mais que quelqu'un peut envoyer un courrier électronique Si une annonce a été envoyée au moment de la livraison, vous avez une date à partir de laquelle chercher.

Mon habitude personnelle de dater l'analyse et les fichiers livrables

Faites des requêtes qui donnent le même résultat, peu importe le moment où elles sont exécutées. Très souvent, il est tentant de faire des requêtes qui “tirent tout” ou “les 7 derniers jours”, mais l’un de leurs défauts est que les données changent en fonction du moment où vous exécutez la requête, même 10 minutes plus tard. Cela rend impossible la reproduction des résultats d'une requête sans la modifier, ce qui n'est probablement pas souhaitable.

Dans certaines situations, il est tout à fait judicieux de poser des requêtes avec des fenêtres temporelles dynamiques, alors que ce n’est pas le cas. Soyez conscient de votre futur cas d'utilisation potentiel (les gens vous demanderont-ils de le réexécuter avec des données mises à jour, etc.) tout en prenant votre décision.

C’est un monde chaotique là-bas. Essayez de rester organisé dans votre propre petit domaine.

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close