|
7 months ago | |
---|---|---|
.. | ||
solution/Julia | 7 months ago | |
README.md | 7 months ago | |
assignment.md | 7 months ago |
README.md
Commencez avec Python et Scikit-learn pour les modèles de régression
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
🎥 Cliquez sur l'image ci-dessus pour une courte vidéo sur la configuration de votre ordinateur pour l'apprentissage automatique.
-
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.
-
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
🎥 Cliquez sur l'image ci-dessus pour une vidéo : utiliser Python dans VS Code.
-
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.
-
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.
🎥 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.
-
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. -
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.
-
Tapez print('hello notebook') dans le bloc de code.
-
Sélectionnez la flèche pour exécuter le code.
Vous devriez voir l'instruction imprimée :
hello notebook
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.
🎥 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.
-
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 importingdatasets
,linear_model
andmodel_selection
fromsklearn
.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.
-
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
andy
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 ?
-
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 usingreshape(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.
-
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)
-
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 -
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)
-
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()
✅ 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
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.