You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/fr/2-Regression/1-Tools/README.md

17 KiB

Commencez avec Python et Scikit-learn pour les modèles de régression

Résumé des régressions dans un sketchnote

Sketchnote par Tomomi Imura

Quiz pré-cours

Cette leçon est disponible en R !

Introduction

Dans ces quatre leçons, vous découvrirez comment construire des modèles de régression. Nous discuterons bientôt de leur utilité. Mais avant de commencer, assurez-vous d'avoir les bons outils en place pour entamer le processus !

Dans cette leçon, vous apprendrez à :

  • Configurer votre ordinateur pour des tâches d'apprentissage automatique locales.
  • Travailler avec des notebooks Jupyter.
  • Utiliser Scikit-learn, y compris l'installation.
  • Explorer la régression linéaire avec un exercice pratique.

Installations et configurations

ML pour débutants - Configurez vos outils pour construire des modèles d'apprentissage automatique

🎥 Cliquez sur l'image ci-dessus pour une courte vidéo sur la configuration de votre ordinateur pour l'apprentissage automatique.

  1. Installez Python. Assurez-vous que Python est installé sur votre ordinateur. Vous utiliserez Python pour de nombreuses tâches de science des données et d'apprentissage automatique. La plupart des systèmes informatiques incluent déjà une installation de Python. Il existe également des packs de codage Python utiles pour faciliter la configuration pour certains utilisateurs.

    Certaines utilisations de Python nécessitent cependant une version spécifique du logiciel, tandis que d'autres nécessitent une version différente. Pour cette raison, il est utile de travailler dans un environnement virtuel.

  2. Installez Visual Studio Code. Assurez-vous d'avoir Visual Studio Code installé sur votre ordinateur. Suivez ces instructions pour installer Visual Studio Code pour l'installation de base. Vous allez utiliser Python dans Visual Studio Code dans ce cours, donc vous voudrez peut-être revoir comment configurer Visual Studio Code pour le développement Python.

    Familiarisez-vous avec Python en parcourant cette collection de modules d'apprentissage

    Configurer Python avec Visual Studio Code

    🎥 Cliquez sur l'image ci-dessus pour une vidéo : utiliser Python dans VS Code.

  3. Installez Scikit-learn, en suivant ces instructions. Comme vous devez vous assurer d'utiliser Python 3, il est recommandé d'utiliser un environnement virtuel. Notez que si vous installez cette bibliothèque sur un Mac M1, il y a des instructions spéciales sur la page liée ci-dessus.

  4. Installez Jupyter Notebook. Vous devrez installer le package Jupyter.

Votre environnement d'écriture ML

Vous allez utiliser des notebooks pour développer votre code Python et créer des modèles d'apprentissage automatique. Ce type de fichier est un outil courant pour les data scientists, et ils peuvent être identifiés par leur suffixe ou extension .ipynb.

Les notebooks sont un environnement interactif qui permet au développeur de coder, d'ajouter des notes et d'écrire de la documentation autour du code, ce qui est très utile pour les projets expérimentaux ou orientés recherche.

ML pour débutants - Configurez Jupyter Notebooks pour commencer à construire des modèles de régression

🎥 Cliquez sur l'image ci-dessus pour une courte vidéo sur cet exercice.

Exercice - travailler avec un notebook

Dans ce dossier, vous trouverez le fichier notebook.ipynb.

  1. Ouvrez notebook.ipynb dans Visual Studio Code.

    Un serveur Jupyter démarrera avec Python 3+. Vous trouverez des zones du notebook qui peuvent être run, des morceaux de code. Vous pouvez exécuter un bloc de code en sélectionnant l'icône qui ressemble à un bouton de lecture.

  2. Sélectionnez l'icône md et ajoutez un peu de markdown, et le texte suivant # Bienvenue dans votre notebook.

    Ensuite, ajoutez un peu de code Python.

  3. Tapez print('hello notebook') dans le bloc de code.

  4. Sélectionnez la flèche pour exécuter le code.

    Vous devriez voir l'instruction imprimée :

    hello notebook
    

VS Code avec un notebook ouvert

Vous pouvez entrelacer votre code avec des commentaires pour auto-documenter le notebook.

Pensez un instant à la différence entre l'environnement de travail d'un développeur web et celui d'un data scientist.

Prêt à l'emploi avec Scikit-learn

Maintenant que Python est configuré dans votre environnement local, et que vous êtes à l'aise avec les notebooks Jupyter, mettons-nous également à l'aise avec Scikit-learn (prononcez-le sci as in science). Scikit-learn fournit une API étendue pour vous aider à réaliser des tâches d'apprentissage automatique.

Selon leur site web, "Scikit-learn est une bibliothèque d'apprentissage automatique open source qui prend en charge l'apprentissage supervisé et non supervisé. Elle fournit également divers outils pour l'ajustement de modèles, le prétraitement des données, la sélection et l'évaluation de modèles, ainsi que de nombreuses autres utilités."

Dans ce cours, vous utiliserez Scikit-learn et d'autres outils pour construire des modèles d'apprentissage automatique afin de réaliser ce que nous appelons des tâches d'« apprentissage automatique traditionnel ». Nous avons délibérément évité les réseaux neuronaux et l'apprentissage profond, car ils sont mieux couverts dans notre futur programme "IA pour débutants".

Scikit-learn facilite la construction de modèles et leur évaluation pour une utilisation. Elle se concentre principalement sur l'utilisation de données numériques et contient plusieurs ensembles de données prêts à l'emploi pour être utilisés comme outils d'apprentissage. Elle inclut également des modèles pré-construits pour que les étudiants puissent les essayer. Explorons le processus de chargement de données préemballées et d'utilisation d'un estimateur intégré pour le premier modèle ML avec Scikit-learn avec quelques données de base.

Exercice - votre premier notebook Scikit-learn

Ce tutoriel a été inspiré par l'exemple de régression linéaire sur le site de Scikit-learn.

ML pour débutants - Votre premier projet de régression linéaire en Python

🎥 Cliquez sur l'image ci-dessus pour une courte vidéo sur cet exercice.

Dans le fichier notebook.ipynb associé à cette leçon, effacez toutes les cellules en appuyant sur l'icône 'poubelle'.

Dans cette section, vous travaillerez avec un petit ensemble de données sur le diabète qui est intégré à Scikit-learn à des fins d'apprentissage. Imaginez que vous vouliez tester un traitement pour des patients diabétiques. Les modèles d'apprentissage automatique pourraient vous aider à déterminer quels patients répondraient mieux au traitement, en fonction de combinaisons de variables. Même un modèle de régression très basique, lorsqu'il est visualisé, pourrait montrer des informations sur des variables qui vous aideraient à organiser vos essais cliniques théoriques.

Il existe de nombreux types de méthodes de régression, et le choix dépend de la réponse que vous recherchez. Si vous souhaitez prédire la taille probable d'une personne d'un certain âge, vous utiliseriez la régression linéaire, car vous recherchez une valeur numérique. Si vous êtes intéressé à découvrir si un type de cuisine doit être considéré comme végétalien ou non, vous recherchez une assignation de catégorie, donc vous utiliseriez la régression logistique. Vous en apprendrez plus sur la régression logistique plus tard. Réfléchissez un peu à certaines questions que vous pouvez poser aux données, et lesquelles de ces méthodes seraient les plus appropriées.

Commençons cette tâche.

Importer des bibliothèques

Pour cette tâche, nous allons importer quelques bibliothèques :

  • matplotlib. C'est un outil de graphisme utile et nous l'utiliserons pour créer un graphique en ligne.
  • numpy. numpy est une bibliothèque utile pour gérer des données numériques en Python.
  • sklearn. C'est la bibliothèque Scikit-learn.

Importez quelques bibliothèques pour vous aider dans vos tâches.

  1. Ajoutez les imports en tapant le code suivant :

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    Ci-dessus, vous importez matplotlib, numpy and you are importing datasets, linear_model and model_selection from sklearn. model_selection is used for splitting data into training and test sets.

The diabetes dataset

The built-in diabetes dataset includes 442 samples of data around diabetes, with 10 feature variables, some of which include:

  • age: age in years
  • bmi: body mass index
  • bp: average blood pressure
  • s1 tc: T-Cells (a type of white blood cells)

This dataset includes the concept of 'sex' as a feature variable important to research around diabetes. Many medical datasets include this type of binary classification. Think a bit about how categorizations such as this might exclude certain parts of a population from treatments.

Now, load up the X and y data.

🎓 Remember, this is supervised learning, and we need a named 'y' target.

In a new code cell, load the diabetes dataset by calling load_diabetes(). The input return_X_y=True signals that X will be a data matrix, and y sera la cible de régression.

  1. Ajoutez quelques commandes print pour montrer la forme de la matrice de données et son premier élément :

    X, y = datasets.load_diabetes(return_X_y=True)
    print(X.shape)
    print(X[0])
    

    Ce que vous obtenez en réponse est un tuple. Ce que vous faites, c'est assigner les deux premières valeurs du tuple à X and y respectivement. En savoir plus sur les tuples.

    Vous pouvez voir que ces données contiennent 442 éléments formés en tableaux de 10 éléments :

    (442, 10)
    [ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
    -0.04340085 -0.00259226  0.01990842 -0.01764613]
    

    Réfléchissez un peu à la relation entre les données et la cible de régression. La régression linéaire prédit les relations entre la caractéristique X et la variable cible y. Pouvez-vous trouver la cible pour l'ensemble de données sur le diabète dans la documentation ? Que démontre cet ensemble de données, étant donné cette cible ?

  2. Ensuite, sélectionnez une portion de cet ensemble de données à tracer en sélectionnant la 3ème colonne de l'ensemble de données. Vous pouvez le faire en utilisant : operator to select all rows, and then selecting the 3rd column using the index (2). You can also reshape the data to be a 2D array - as required for plotting - by using reshape(n_rows, n_columns). Si l'un des paramètres est -1, la dimension correspondante est calculée automatiquement.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    À tout moment, imprimez les données pour vérifier leur forme.

  3. Maintenant que vous avez des données prêtes à être tracées, vous pouvez voir si une machine peut aider à déterminer une séparation logique entre les nombres de cet ensemble de données. Pour ce faire, vous devez diviser à la fois les données (X) et la cible (y) en ensembles de test et d'entraînement. Scikit-learn propose un moyen simple de le faire ; vous pouvez diviser vos données de test à un point donné.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. Maintenant, vous êtes prêt à entraîner votre modèle ! Chargez le modèle de régression linéaire et entraînez-le avec vos ensembles d'entraînement X et y en utilisant model.fit() :

    model = linear_model.LinearRegression()
    model.fit(X_train, y_train)
    

    model.fit() is a function you'll see in many ML libraries such as TensorFlow

  5. Then, create a prediction using test data, using the function predict(). Cela sera utilisé pour tracer la ligne entre les groupes de données.

    y_pred = model.predict(X_test)
    
  6. Il est maintenant temps de montrer les données dans un graphique. Matplotlib est un outil très utile pour cette tâche. Créez un nuage de points de toutes les données de test X et y, et utilisez la prédiction pour tracer une ligne à l'endroit le plus approprié, entre les regroupements de données du modèle.

    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, y_pred, color='blue', linewidth=3)
    plt.xlabel('Scaled BMIs')
    plt.ylabel('Disease Progression')
    plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
    plt.show()
    

    un nuage de points montrant des points de données autour du diabète

    Réfléchissez un peu à ce qui se passe ici. Une ligne droite traverse de nombreux petits points de données, mais que fait-elle exactement ? Pouvez-vous voir comment vous devriez pouvoir utiliser cette ligne pour prédire où un nouveau point de données non vu devrait se situer par rapport à l'axe y du graphique ? Essayez de mettre en mots l'utilisation pratique de ce modèle.

Félicitations, vous avez construit votre premier modèle de régression linéaire, créé une prédiction avec celui-ci et l'avez affiché dans un graphique !


🚀Défi

Tracez une variable différente de cet ensemble de données. Indice : modifiez cette ligne : X = X[:,2]. Étant donné la cible de cet ensemble de données, que pouvez-vous découvrir sur la progression du diabète en tant que maladie ?

Quiz post-cours

Revue & Auto-apprentissage

Dans ce tutoriel, vous avez travaillé avec une régression linéaire simple, plutôt qu'avec une régression linéaire univariée ou multiple. Lisez un peu sur les différences entre ces méthodes, ou jetez un œil à cette vidéo

Lisez davantage sur le concept de régression et réfléchissez aux types de questions auxquelles cette technique peut répondre. Suivez ce tutoriel pour approfondir votre compréhension.

Devoir

Un autre ensemble de données

Avertissement :
Ce document a été traduit à l'aide de services de traduction automatique basés sur l'IA. Bien que nous nous efforçons d'assurer l'exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue natale doit être considéré comme la source autorisée. Pour des informations critiques, une traduction humaine professionnelle est recommandée. Nous ne sommes pas responsables des malentendus ou des interprétations erronées résultant de l'utilisation de cette traduction.