Qu'est-ce que la Data Science ?
La data science n'est pas seulement du machine learning. Elle n'est pas seulement des statistiques. Elle n'est pas seulement de la programmation.
La data science est la discipline qui consiste à extraire des connaissances utiles à partir de données. La majeure partie de ce travail n'est pas glamour : il s'agit de nettoyer des feuilles de calculs messagères, de poser les questions appropriées et de communiquer les résultats aux personnes qui ne s'intéressent pas à votre code.
Le pipeline typique de la data science ressemble à ceci :
1. Collect: rassembler des données brutes à partir de bases de données, d'APIs, de fichiers CSV ou du web scraping
2. Clean: gérer les valeurs manquantes, corriger les types, supprimer les doublons
3. Explore: visualiser les distributions, trouver des patterns, poser des questions
4. Engineer: créer de nouvelles caractéristiques qui aidern les modèles à apprendre
5. Model: entraîner des algorithmes, évaluer la performance, itérer
6. Communicate: présenter les résultats aux parties prenantes qui font les décisions
Si vous avez déjà utilisé des tableaux croisés dynamiques, du formatage conditionnel ou des VLOOKUP dans Excel, vous avez déjà effectué les étapes 1-3. Cette leçon fait le pont entre cette expérience et le workflow basé sur Python utilisé dans l'industrie.
Warm-Up
Votre expérience avec les données
Tout le monde a déjà travaillé avec des données sous une forme ou une autre : un tableur budgétaire, un suivi de notes, une application de fitness, ou même une playlist avec des compteurs de lectures.
Garbage In, Garbage Out
Pourquoi le nettoyage est important
Les data scientists consacrent 60 à 80 % de leur temps au nettoyage des données. Ce n'est pas une exagération : c'est un résultat constant dans les enquêtes sectorielles.
La raison est simple : garbage in, garbage out. Si vos données contiennent des erreurs, des valeurs missing ou des formats inconsistants, chaque analyse construite sur ces données sera erronée. Un modèle parfait entraîné sur des données sales produit des réponses fausses mais confiantes.
Problèmes courants de données
- Valeurs manquantes : les cellules sont vides. Les données n'ont-elles pas été collectées, ou la valeur est-elle en réalité zéro ? Ces deux situations sont différentes et nécessitent des traitements différents.
- Types de données erronés : une colonne de nombres stockée en texte, des dates en formats inconsistants (01/02/2024 : s'agit-il du 2 janvier ou du 1er février ?)
- Valeurs aberrantes : une colonne de salaires contient une entrée de 1 000 000 000 $. Est-ce un vrai cas, ou une faute de frappe ? Quoi qu'il en soit, cela va skewer vos moyennes.
- Doublons : le même enregistrement apparaît deux fois parce que deux systèmes ont fusionné de manière imparfaite
- Encodage catégoriel : une colonne contient 'Yes', 'yes', 'Y', 'TRUE' et '1'. Tout cela signifie la même chose, mais votre ordinateur ne le sait pas.
Dans pandas (la bibliothèque standard Python pour les données), vous gérez ces problèmes avec des méthodes comme dropna(), fillna(), astype() et drop_duplicates(). Mais la partie difficile n'est pas le code : c'est de décider ce qu'il faut faire avec chaque problème.
Décisions de nettoyage
Décider quoi faire
Voici un scénario réel. Vous avez un jeu de données de 10 000 enregistrements clients. La colonne 'age' contient 500 valeurs manquantes.
Vos options :
- Supprimer les lignes : supprimer les 500 enregistrements. Simple, mais vous perdez 5 % de vos données. Si ces 500 clients partagent un trait commun (peut-être qu'ils ont omis le champ âge parce qu'ils sont soucieux de leur vie privée), la suppression introduit un biais.
- Remplir avec la moyenne : remplacer les blancs par l'âge moyen. Rapide, mais cela réduit artificiellement la variance de la colonne âge.
- Remplir avec la médiane : mieux que la moyenne si la distribution de l'âge est asymétrique (quelques clients très vieux ou très jeunes qui beeinflussen la moyenne).
- Utiliser un indicateur : créer une nouvelle colonne appelée 'age_missing' (1 ou 0) et remplir l'original par la médiane. Maintenant, votre modèle peut la
There is no universal right answer. The choice depends on why the data is missing & what you plan to do with it.
Poser les bonnes questions
Analyse exploratoire des données (EDA)
Avant de construire un modèle, vous devez comprendre vos données. L'EDA est le processus de résumé, de visualisation et d'interrogation d'un jeu de données pour trouver des modèles, des anomalies et des relations.
Outils clés
- Histogrammes : montrent la distribution d'une seule variable. Est-ce une forme en cloche ? Asymétrique ? Bimodale (deux pics) ? Un histogramme des revenus est toujours asymétrique à droite, car quelques personnes gagnent beaucoup plus que la majorité.
- Nuages de points : montrent la relation entre deux variables. Les personnes plus grandes ont-elles tendance à peser davantage ? Plus de temps d'étude est-il lié à des meilleures notes ? La tendance (ou son absence) indique si une relation existe.
- Corrélation : un nombre entre -1 et +1 qui mesure l'association linéaire. +1 signifie une relation parfaite etإيجابية, -1 signifie une relation parfaite et négative, 0 signifie aucune relation linéaire. Mais la corrélation ne signifie pas la causalité : les ventes de glaces et les morts par noyade sont corrélées parce que toutes deux augmentent en été.
- Statistiques descriptives : moyenne, médiane, écart-type, min, max. En pandas : df.describe() donne toutes les statistiques en une seule ligne.
La compétence réelle
Les outils sont faciles à apprendre. La partie difficile est de poser les bonnes questions. Mauvaise question : 'Que dit la donnée ?' Bonne question : 'Les clients qui contactent le support dans la première semaine ont-ils des taux de rétention plus élevés ?'
Piège de corrélation
Corrélation vs. Causalité
C'est le concept le plus important en littératie des données. Deux variables peuvent être fortement corrélées sans que l'une ne cause l'autre.
Exemples classiques :
- Les villes avec plus de pompiers ont plus d'incendies. (Les grandes villes ont les deux.)
- Les élèves qui prennent le petit-déjeuner ont de meilleures notes. (Peut-être que les familles plus aisées sont plus susceptibles de fournir le petit-déjeuner ET un soutien académique.)
- Les pays qui consomment plus de chocolat remportent plus de prix Nobel. (Les deux sont corrélés à la richesse nationale.)
Le facteur caché s'appelle une variable confondante : une troisième variable qui influence à la fois celles que vous observez.
Création de variables utiles
Qu'est-ce que l'ingénierie des caractéristiques ?
Une caractéristique est une variable d'entrée qu'un modèle utilise pour faire des prédictions. L'ingénierie des caractéristiques est l'art de créer de nouvelles caractéristiques à partir de données brutes afin d'aider les modèles à apprendre des modèles qu'ils ne pourraient pas voir autrement.
Les données brutes prennent rarement la forme dont les modèles ont besoin. Considérons un jeu de données avec une colonne « date de naissance ». Un modèle ne peut pas faire grand-chose avec des dates brutes。但如果你从它创建一个「âge」特征,模型就可以学习基于年龄的模式。
Techniques courantes
- Normalisation : mise à l'échelle des nombres sur une plage commune (0 à 1, ou moyenne=0 et écart-type=1). Sans cela, une caractéristique mesurée en milliers (salaire) dominera une caractéristique mesurée en unités simples (années d'expérience).
- Encodage one-hot : conversion des variables catégorielles en colonnes binaires. Une colonne 'couleur' avec les valeurs [rouge, bleu, vert] devient trois colonnes : 'couleur_rouge', 'couleur_bleu', 'couleur_vert', chacune avec 0 ou 1.
- Binning : transformation d'une variable continue en catégories. L'âge 0-17 devient 'mineur', 18-64 devient 'adulte', 65+ devient 'senior'. Cela aide lorsque la relation n'est pas linéaire.
- Caractéristiques d'interaction : multiplication de deux caractéristiques ensemble. 'Superficie en pieds carrés multipliée par le nombre de salles de bain' pourrait prédire le prix de la maison mieux que chacune seule.
- Connaissances du domaine : la technique la plus puissante. Un médecin qui crée des caractéristiques pour un modèle médical sait quelles valeurs de laboratoire sont importantes. Un spécialiste du marketing sait que 'jours depuis le dernier achat'比 'date d'achat' est plus utile. Aucun algorithme ne peut remplacer cela.
Pratique des caractéristiques
Application de l'ingénierie des caractéristiques
Imaginez que vous construisez un modèle pour prédire quels clients vont annuler leur abonnement de streaming le mois prochain. Vos données brutes incluent :
- Date de création du compte
- Date de dernière connexion
- Nombre d'émissions regardées le mois dernier
- Montant du paiement mensuel
- Tickets de support client ouverts
- Pays
Fraction d'entraînement/test
Pourquoi diviser vos données
La règle la plus importante en modélisation : ne jamais évaluer un modèle sur les mêmes données sur lesquelles vous l'avez entraîné.
Si vous le faites, le modèle peut simplement mémoriser les réponses. Il obtiendra un score parfait sur les données d'entraînement mais échouera sur de nouvelles données, non vues. Cela s'appelle le surapprentissage (overfitting) : le modèle a appris le bruit présent dans votre jeu de données spécifique au lieu des vrais schémas.
La pratique standard est de diviser vos données :
- Jeu d'entraînement (généralement 70-80 %) : le modèle apprend à partir de ce jeu
- Jeu de test (généralement 20-30 %) : mis de côté, utilisé uniquement pour évaluer le modèle final
Dans scikit-learn : X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Algorithmes courants
- Régression linéaire : trace la droite de régression optimale à travers les données. Simple, interprétable, fonctionne lorsque la relation est approximativement linéaire. Prédit un nombre (prix, température, score).
- Arbres de décision : un organigramme de questions oui/non. Facile à comprendre et à expliquer. Sujet au surapprentissage sauf si élagué ou limité en profondeur.
- Forêts aléatoires : un ensemble d'arbres de décision qui votent ensemble. Plus précis qu'un seul arbre, moins sujet au surapprentissage, mais plus difficile à expliquer.
Surapprentissage vs. Sous-apprentissage
- Surapprentissage : le modèle est trop complexe. Il mémorise les données d'entraînement,包括 le bruit. Précision élevée sur les données d'entraînement,低 précision sur les données de test.
- Sous-apprentissage : le modèle est trop simple. Il ne capture pas les schémas réels. Précision faible sur les données d'entraînement et de test.
L'objectif est le juste milieu entre les deux.
Métriques d'évaluation
Comment savoir si votre modèle est bon ?
La précision seule peut être trompeuse. Si 95 % des e-mails ne sont pas du spam, un modèle qui dit toujours « pas de spam » est précis à 95 %, mais complètement inutile.
Métriques clés :
- Accuracy : pourcentage de prédictions correctes. Utile lorsque les classes sont équilibrées.
- Precision : parmi toutes les choses que le modèle a identifiées comme positives, combien l'étaient réellement ? Une précision élevée signifie peu de fausses alarmes.
- Recall : parmi tous les cas positifs réels, combien le modèle a-t-il détectés ? Un rappel élevé signifie peu de cas manqués.
- F1 score : la moyenne harmonique de la précision et du rappel. Utile lorsque vous devez équilibrer les deux.
- RMSE (Root Mean Squared Error) : pour la régression (prédiction de nombres). À quel point les prédictions sont-elles éloignées en moyenne ?
La métrique la plus importante dépend du problème. Pour la détection du cancer, le rappel est plus important : vous ne voulez pas manquer un cas. Pour le filtrage des spams, la précision est plus importante : vous ne voulez pas supprimer un vrai e-mail.
Analyste de données vs. Data Scientist vs. Ingénieur ML
Trois rôles distincts
Le domaine des données comporte trois parcours professionnels principaux, et ils exigent des compétences différentes.
Analyste de données
- Focus : répondre à des questions métier avec des données existantes
- Outils : SQL, Excel, Tableau, Python ou R de base
- Au quotidien : tableaux de bord, rapports, analyse de tests A/B, présentations aux parties prenantes
- Parcours d'entrée : souvent le plus accessible. De nombreux analystes commencent sans diplôme en informatique.
Data Scientist
- Focus : construire des modèles prédictifs et découvrir des modèles dans des données complexes
- Outils : Python (pandas, scikit-learn, matplotlib), statistiques, SQL, carnets Jupyter
- Au quotidien : EDA, ingénierie des caractéristiques, construction de modèles, expérimentation
- Parcours d'entrée : généralement nécessite une formation en statistiques ou en domaine quantitatif. Les bootcamps et l'auto-apprentissage sont des options viables.
Ingénieur en apprentissage automatique
- Focus : déploiement et mise à l'échelle des modèles dans les systèmes de production
- Outils : Python, TensorFlow/PyTorch, Docker, plateformes cloud (AWS/GCP), APIs
- Au quotidien : optimisation des modèles, infrastructure de pipelines, surveillance des modèles en production
- Parcours d'entrée : généralement nécessite de solides compétences en génie logiciel combinées à des connaissances en apprentissage automatique.
Créer un Portfolio
Les responsables du recrutement se soucient de ce que vous pouvez faire, et non seulement de ce que vous avez étudié. Un portfolio de 3-5 projets solides sur GitHub compte plus que des certifications. Les bons projets utilisent de vrais (et non des jeux de données factices) jeux de données, incluent une documentation claire, et montrent le pipeline complet : de données brutes à des insights exploitables.
Vos Prochaines Étapes
Où Aller à Partir d’Ici
Les outils du métier sont gratuits et accessibles :
- pandas : la bibliothèque Python standard pour la manipulation de données
- matplotlib / seaborn: bibliothèques de visualisation
- scikit-learn: l'outil principal pour le machine learning classique
- Jupyter notebooks: environnements de codage interactifs où vous pouvez mélanger code, résultats et notes
- Kaggle: jeux de données gratuits, compétitions et une communauté de praticiens
Commencez par un jeu de données réel qui vous intéresse. Téléchargez-le, nettoyez-le, explorez-le et essayez de y répondre à une question. Ce seul projet vous enseignera plus que n'importe quel cours.