Algorithmes multiclasse et multioutput

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous explorerons les fonctionnalités et l'utilisation des algorithmes multiclasse et multioutput dans scikit-learn. La classification multiclasse est une tâche de classification où les échantillons sont assignés à plus de deux classes. La classification multioutput, en revanche, prédit plusieurs propriétés pour chaque échantillon. Nous aborderons les sujets suivants :

  1. Classification multiclasse
  2. Classification multilabel
  3. Classification multiclasse-multioutput
  4. Régression multioutput

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/multiclass("Multiclass Classification") sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/multioutput("Multioutput Regression and Classification") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} sklearn/ensemble -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} sklearn/svm -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} sklearn/multiclass -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} sklearn/multioutput -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} sklearn/datasets -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} ml/sklearn -.-> lab-71109{{"Algorithmes multiclasse et multioutput"}} end

Classification multiclasse

Description du problème

La classification multiclasse est une tâche de classification avec plus de deux classes. Chaque échantillon est assigné à une seule classe.

Format de la cible

Une représentation valide des cibles multiclasse est un vecteur 1D ou colonne contenant plus de deux valeurs discrètes.

Exemple

Utilisons le jeu de données Iris pour démontrer la classification multiclasse :

from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier

## Chargez le jeu de données Iris
X, y = datasets.load_iris(return_X_y=True)

## Ajustez un modèle de régression logistique en utilisant OneVsRestClassifier
model = OneVsRestClassifier(LogisticRegression())
model.fit(X, y)

## Faites des prédictions
predictions = model.predict(X)
print(predictions)

Classification multilabel

Description du problème

La classification multilabel est une tâche de classification où chaque échantillon peut être assigné plusieurs étiquettes. Le nombre d'étiquettes que chaque échantillon peut avoir est supérieur à deux.

Format de la cible

Une représentation valide des cibles multilabel est une matrice binaire, où chaque ligne représente un échantillon et chaque colonne représente une classe. Une valeur de 1 indique la présence de l'étiquette dans l'échantillon, tandis que 0 ou -1 indique son absence.

Exemple

Créons un problème de classification multilabel en utilisant la fonction make_classification :

from sklearn.datasets import make_classification
from sklearn.multioutput import MultiOutputClassifier
from sklearn.ensemble import RandomForestClassifier

## Générez un problème de classification multilabel
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, random_state=0)
y = y.reshape(-1, 1)

## Ajustez un classifieur de forêt aléatoire multioutput
model = MultiOutputClassifier(RandomForestClassifier())
model.fit(X, y)

## Faites des prédictions
predictions = model.predict(X)
print(predictions)

Classification multiclasse-multioutput

Description du problème

La classification multiclasse-multioutput, également connue sous le nom de classification multitâche, prédit plusieurs propriétés non binaires pour chaque échantillon. Chaque propriété peut avoir plus de deux classes.

Format de la cible

Une représentation valide des cibles multiclasse-multioutput est une matrice dense, où chaque ligne représente un échantillon et chaque colonne représente une propriété ou une classe différente.

Exemple

Créons un problème de classification multiclasse-multioutput en utilisant la fonction make_classification :

from sklearn.datasets import make_classification
from sklearn.multioutput import MultiOutputClassifier
from sklearn.svm import SVC

## Générez un problème de classification multiclasse-multioutput
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_classes=3, random_state=0)

## Ajustez un classifieur à vecteurs de support multioutput
model = MultiOutputClassifier(SVC())
model.fit(X, y)

## Faites des prédictions
predictions = model.predict(X)
print(predictions)

Régression multioutput

Description du problème

La régression multioutput prédit plusieurs propriétés numériques pour chaque échantillon. Chaque propriété est une variable numérique, et le nombre de propriétés peut être supérieur ou égal à deux.

Format de la cible

Une représentation valide des cibles de régression multioutput est une matrice dense, où chaque ligne représente un échantillon et chaque colonne représente une propriété différente.

Exemple

Créons un problème de régression multioutput en utilisant la fonction make_regression :

from sklearn.datasets import make_regression
from sklearn.multioutput import MultiOutputRegressor
from sklearn.linear_model import LinearRegression

## Générez un problème de régression multioutput
X, y = make_regression(n_samples=100, n_features=10, n_targets=3, random_state=0)

## Ajustez un modèle de régression linéaire multioutput
model = MultiOutputRegressor(LinearRegression())
model.fit(X, y)

## Faites des prédictions
predictions = model.predict(X)
print(predictions)

Sommaire

Dans ce laboratoire, nous avons exploré les algorithmes multiclasse et multioutput dans scikit-learn. Nous avons abordé la classification multiclasse, la classification multilabel, la classification multiclasse-multioutput et la régression multioutput. Ces algorithmes nous permettent de résoudre des tâches complexes de classification et de régression avec plusieurs cibles ou classes.