Pour introduire plus précisément la science des données, décrivons schématiquement les deux principales phases de la démarche conduisant de l'acquisition des données à l'intégration d'une IA dans un objet connecté.
Préparation des données & feature engineering
La première phase constitue le prétraitement des données ou data munging, de l'extraction à l'exploration des données.
Acquérir, archiver, extraire, mettre en forme des données sont des tâches de data management en lien avec un gestionnaire de base de données incluant un langage de requête comme SQL ou not only SQL, associé au gestionnaire de données distribuées Hadoop.
Il est important ensuite de s'assurer de l'intégrité des données, de leur cohérence. Cette étape exploratoire avec des outils élémentaires est un préalable important pour détecter des valeurs atypiques, éventuellement des erreurs, gérer les données manquantes par suppression des observations ou imputation de ces valeurs.
Cette étape permet également d'analyser la structure des données, leurs sources de variabilité et si possible de la représenter (ACP). Ces premiers résultats permettent d'apporter des réponses aux questions : faut-il transformer les données, calculer de nouvelles variables ou caractéristiques feature engineering ?Garbage in, garbage out. Mêmes rudimentaires d'un point de vue méthodologique, ces étapes occupent la majeure partie du temps de l'analyse : environ 80 %. Enfin, insistons lourdement : la qualité des données recueillies, leur représentativité par rapport à la question posée, sont fondamentales afin d'obtenir des prévisions robustes, généralisables à d'autres données, c'est-à-dire, d'un point de vue statistique, non biaisées et de faible variance. La qualité des données est essentielle ; aussi performants que soient les algorithmes d'apprentissage, ils ne peuvent rien avec des données pourries !
Cette étape nécessite, pour être efficace et pertinente, des compétences et savoir-faire en statistique exploratoire multidimensionnelle.
Apprentissage supervisé
Une fois qu'une base de données d'entraînement fiable et représentative a été constituée, la phase d'apprentissage proprement dite est généralement bien définie et suit schématiquement la structure suivante.
Tirage aléatoire des échantillons d'apprentissage et de test.
Commencer par construire, de façon aléatoire, deux sous-échantillons : le premier d'apprentissage, le second de test. Le premier sert à estimer les modèles ou faire apprendre les algorithmes, le deuxième n'est utilisé que pour en prédire la variable cible Y afin, comme les vraies valeurs ou les vraies classes de Y sont connues, de pouvoir estimer sans biais l'erreur de prévision.
Pour chaque modèle ou algorithme considéré,
itérer ensuite les étapes suivantes pour chaque famille d'algorithme. Citons quelques possibilités : régression, SVM, réseaux de neurones, boosting, random forest, des plus utilisés parmi une grande farandole d'algorithmes disponibles.
Première étape : estimation du modèle en fonction des valeurs de certains hyperparamètres qui contrôlent la complexité du modèle, à savoir sa flexibilité, ou capacité à s'ajuster finement aux données.
Deuxième étape : optimisation, généralement en minimisant une estimation de l'erreur de prévision par validation croisée, de ce ou ces hyperparamètres : le nombre de variables dans un modèle, le nombre de feuilles dans un arbre, le nombre de neurones d'un réseau, la pénalisation des SVM...
Troisième étape : calcul la prévision de l'échantillon test pour le modèle "optimal" courant, afin,
Quatrième étape : d'estimer de l'erreur de prévision.
On obtient ainsi une erreur par méthode d'apprentissage considérée ; il suffit alors de choisir la meilleure méthode ou le meilleur algorithme : celui qui minimise l'erreur de prévision, mais éventuellement en tenant compte de la facilité d'interpréter le modèle. Une fois l'algorithme sélectionné, il est entraîné une dernière fois sur l'ensemble des données afin de constituer l'IA embarquée dans l'objet connecté.