blob: 8629503f2a4d1cfa077d7efaae324a8ca3b65a61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# Approche d'un projet ML
1. Cadrer le problème et le besoin
2. Obtenir des données
3. Explorer et visualiser les données pour se les approprier
4. Préparer les données pour les algos ML
5. Choisir et entrainer le modele
6. Ajuster le modèle (hyperparams)
7. Présenter la solution
8. Déployer
## Cadrage du problème
1. Objectifs en termes business
2. Comment sera utilisée la solution
3. Solutions existantes
4. Choisir supervisé/non-supervisé, en/hors ligne...
5. Choisir les métriques de performance (RMSE, MAE : normes)
6. Aligner les métriques sur l'objectif business
7. Perf min pour objectif business ?
8. Réut expérience + outils
9. Expertise ?
10. Résolution manuelle ?
## Récupération de données
1. Automatiser autant que possible pour avoir facilement des données récentes
2. Documenter les sources
3. Pb d'espace
4. Pb de droit sur les données
5. Pb autorisations d'accès aux données
6. Créer un workspace avec suffisamment de place
7. Récupérer les données
8. Convertir les données sous un format exploitable
9. Anonymiser le jeu de données
10. Vérifier la taille et le type des données
11. Créer un jeu de test et ne pas y toucher
## Appropriation du jeu de données
- Attention valeurs capées
- Normalisation potentiellement
- Correlations (Pearson)
## Jeu de test
- Eviter l'overfitting
- Instances choisies aléatoirement
- Sampling stratifié pour être représentatif
# Modèle
- Paramètre = coefs de droite si regression linéaire
- Hyperparamètres = Params qui vont permettre d'apprendre le modèle (ex : strategy simpleimputer)
## Pour les données textuelles ou catégoriques
- Encodeurs ordinaux
## Scaling et transformation
- Pb de données qui n'ont pas le même intervalle d'existence
- Scaling MinMax ou Centrée réduite
- Revenir aux données d'origine `inverse_transform()`
## Choix et entrainement du modèle
- Entrainer plusieurs petits modèles et comparer leurs perfs
- Identifier les erreurs récurrentes des modèles et chercher les données manquantes pour pallier
- Sélectionner les modèles les plus performants
## Fine tuning
- Grid Search : bidouiller les hyperparams à la main => Voir `GridSearchCV`
- Randomized Search : `RandomizedSearchCv` = n itérations avec des HP différents, mieux que GridSearch pour bcp de hyperparams
## Ensemble de modèles
- Possiblement bonnes perfs avec plusieurs modèles (même mauvais)
- Analyser les meilleurs modèles, peut permettre de retirer les attributs moins utiles
- Attention aux valeurs capées
- `Sklearn.feature_selection.SelectFromModel`
## Evaluation du modèle
- Jeu de données de test
- Enregistrement du modèle:w
-
|