Préface de Patrick Albert – Cofondateur d'ILOG et du HUB France IA Ce livre sur le Machine Learning avec le langage Python permet de disposer des connaissances théoriques nécessaires pour une compréhension approfondie du Machine Learning et d’appréhender les outils techniques utiles pour mettre en pratique les concepts étudiés.
En apprenant la programmation avec le langage Python, vous vous rendrez surement compte du nombre croissant de techniques d’analyse et d’utilisation de données. Le Machine Learning (ou Apprentissage Automatique) est sans doute l’un des domaines que vous souhaitez maîtriser (puisque vous êtes sur cette page).
Tous les algorithmes de machine learning présents dans scikit-learn sont implémentés dans des classes spécifiques, qui sont appelées classes Estimator. Neighbors. L’objet knn encapsule l’algorithme utilisé pour construire le modèle à partir des données d’apprentissage, ainsi que l’algorithme utilisé pour faire des prévisions sur de nouveaux points.
Le Machine Learning vous permet de faire des prédictions en introduisant des données dans des algorithmes complexes. Les utilisations du Machine Learning sont infinies, ce qui en fait une compétence majeure à ajouter à votre CV.
Avant de nous lancer dans le Machine Learning, nous allons explorer un dataset (ou jeu de données) et déterminer ce qui pourrait être intéressant à prédire. Le dataset est de BoardGameGeek, et contient des données sur 80000 jeux de société. Voici un exemple de jeu de société sur le site ici. Toutes ces données ont été scrapées au format csv par Sea
La première étape de notre exploration consiste à lire les données et à afficher rapidement quelques statistiques sommaires. Pour ce faire, nous allons utiliser la bibliothèque Pandas. Pandas fournit des structures de données et des outils d’analyse de données permettant de manipuler les données beaucoup plus rapidement et efficacement qu’avec Pyth
Nous allons maintenant lire nos données d’un fichier csv dans un DataFrame Pandas, en utilisant la méthode read_csv. Le code ci-dessus lit les données et affiche tous les noms de colonnes. Les colonnes qui figurent dans les données mais que je n’ai pas répertoriées ci-dessus sont assez explicites. Nous pouvons également voir la dimension du DataFra
Il pourrait être intéressant de prédire le score moyen qu’un humain attribuerait à un nouveau jeu de société inédit. Ceci est stocké dans la colonne average_rating, qui correspond à la moyenne de toutes les notes des utilisateurs pour un jeu de société. Prédire cette caractéristique pourrait être utile, par exemple, aux fabricants de jeux de sociét
Y at-il vraiment autant de jeux très mauvais qui ont reçu la note de 0? Ou est-ce qu’il se passe autre chose? Nous devrons nous pencher davantage sur les données pour vérifier cela. Avec Pandas, nous pouvons sélectionner des sous-ensembles de données à l’aide de d’objets Series de type booléen (les vecteurs ou une colonne / ligne d’un DataFrame, so
Nous venons de filtrer toutes les lignes sans aucun avis d’utilisateurs. Pendant que nous y étions, nous avons également supprimé toutes les lignes avec des valeurs manquantes. De nombreux algorithmes de Machine Learning ne peuvent pas traiter les valeurs manquantes. Nous avons donc besoin d’un moyen de les gérer. Les filtrer est une technique cour
Nous avons vu qu’il peut y avoir des jeux de sociétés bien distincts. Un ensemble (que nous venons de supprimer) était l’ensemble de jeux sans aucune critique. Un autre ensemble pourrait être un ensemble de jeux avec de très bonnes notes… Une technique pour en savoir plus sur ces jeux est une technique appelée clustering. La mise en cluster vous pe
Maintenant que nous avons les labels des clusters, nous pouvons tracer ces clusters. Un point de bloquant c’est que nos données comportent de nombreuses colonnes – il est impensable de pouvoir visualiser les choses dans plus de 3 dimensions. Nous devrons donc réduire la dimensionnalité de nos données sans perdre trop d’informations. Une façon de fa
Nous devons déterminer deux choses avant de nous lancer dans le Machine Learning: comment mesurer l’erreur et ce que nous allons prédire. Nous avons pensé plus tôt que average_ratingpourrait être un bon élément de prédiction et notre exploration renforce cette hypothèse. Il existe une variété de moyens pour mesurer l’erreur (beaucoup sont énumérés
Maintenant que nous voulons prédire average_rating, voyons quelles colonnes pourraient être intéressantes pour notre prédiction. Une solution consiste à rechercher la corrélation entre average_rating et chacune des autres colonnes. Cela nous indiquera quelles autres colonnes pourraient prédire average_rating le mieux. Nous pouvons utiliser la métho