Multiclass- und Multioutput-Algorithmen

Beginner

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

Einführung

In diesem Lab werden wir die Funktionalität und den Gebrauch von Multiclass- und Multioutput-Algorithmen in scikit-learn erkunden. Multiclass-Klassifikation ist eine Klassifizierungstask, bei der Proben mehreren als zwei Klassen zugewiesen werden. Multioutput-Klassifikation hingegen prognostiziert mehrere Eigenschaften für jede Probe. Wir werden die folgenden Themen behandeln:

  1. Multiclass-Klassifikation
  2. Multilabel-Klassifikation
  3. Multiclass-Multioutput-Klassifikation
  4. Multioutput-Regression

VM-Tipps

Nachdem die VM gestartet ist, klicken Sie in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Multiclass-Klassifikation

Problem-Beschreibung

Multiclass-Klassifikation ist eine Klassifizierungstask mit mehr als zwei Klassen. Jede Probe wird nur einer Klasse zugewiesen.

Zielformat

Eine gültige Darstellung von Multiclass-Zielen ist ein eindimensionaler oder Spaltenvektor, der mehr als zwei diskrete Werte enthält.

Beispiel

Lassen Sie uns das Iris-Datensatz verwenden, um die Multiclass-Klassifikation zu demonstrieren:

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

## Lade den Iris-Datensatz
X, y = datasets.load_iris(return_X_y=True)

## Trainiere ein logistisches Regressionsmodell mit OneVsRestClassifier
model = OneVsRestClassifier(LogisticRegression())
model.fit(X, y)

## Mache Vorhersagen
predictions = model.predict(X)
print(predictions)

Multilabel-Klassifikation

Problem-Beschreibung

Multilabel-Klassifikation ist eine Klassifizierungstask, bei der jeder Probe mehrere Labels zugewiesen werden können. Die Anzahl der Labels, die jede Probe haben kann, ist größer als zwei.

Zielformat

Eine gültige Darstellung von Multilabel-Zielen ist eine binäre Matrix, wobei jede Zeile eine Probe und jede Spalte eine Klasse repräsentiert. Ein Wert von 1 zeigt die Anwesenheit des Labels in der Probe an, während 0 oder -1 die Abwesenheit anzeigt.

Beispiel

Lassen Sie uns ein Multilabel-Klassifizierungsproblem mit der make_classification-Funktion erstellen:

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

## Generiere ein Multilabel-Klassifizierungsproblem
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, random_state=0)
y = y.reshape(-1, 1)

## Trainiere einen Multioutput-Zufälligen-Baum-Klassifizierer
model = MultiOutputClassifier(RandomForestClassifier())
model.fit(X, y)

## Mache Vorhersagen
predictions = model.predict(X)
print(predictions)

Multiclass-Multioutput-Klassifikation

Problem-Beschreibung

Multiclass-Multioutput-Klassifikation, auch als Multitask-Klassifikation bekannt, prognostiziert mehrere nicht-binäre Eigenschaften für jede Probe. Jede Eigenschaft kann mehr als zwei Klassen haben.

Zielformat

Eine gültige Darstellung von Multiclass-Multioutput-Zielen ist eine dichte Matrix, wobei jede Zeile eine Probe und jede Spalte eine unterschiedliche Eigenschaft oder Klasse repräsentiert.

Beispiel

Lassen Sie uns ein Multiclass-Multioutput-Klassifizierungsproblem mit der make_classification-Funktion erstellen:

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

## Generiere ein Multiclass-Multioutput-Klassifizierungsproblem
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_classes=3, random_state=0)

## Trainiere einen Multioutput-Support-Vector-Klassifizierer
model = MultiOutputClassifier(SVC())
model.fit(X, y)

## Mache Vorhersagen
predictions = model.predict(X)
print(predictions)

Multioutput-Regression

Problem-Beschreibung

Multioutput-Regression prognostiziert mehrere numerische Eigenschaften für jede Probe. Jede Eigenschaft ist eine numerische Variable, und die Anzahl der Eigenschaften kann größer oder gleich zwei sein.

Zielformat

Eine gültige Darstellung von Multioutput-Regressionszielen ist eine dichte Matrix, wobei jede Zeile eine Probe und jede Spalte eine unterschiedliche Eigenschaft repräsentiert.

Beispiel

Lassen Sie uns ein Multioutput-Regressionsproblem mit der make_regression-Funktion erstellen:

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

## Generiere ein Multioutput-Regressionsproblem
X, y = make_regression(n_samples=100, n_features=10, n_targets=3, random_state=0)

## Trainiere ein Multioutput-lineares Regressionsmodell
model = MultiOutputRegressor(LinearRegression())
model.fit(X, y)

## Mache Vorhersagen
predictions = model.predict(X)
print(predictions)

Zusammenfassung

In diesem Lab haben wir die Multiclass- und Multioutput-Algorithmen in scikit-learn untersucht. Wir haben uns mit Multiclass-Klassifikation, Multilabel-Klassifikation, Multiclass-Multioutput-Klassifikation und Multioutput-Regression beschäftigt. Diese Algorithmen ermöglichen uns, komplexe Klassifizierungs- und Regressionsaufgaben mit mehreren Zielen oder Klassen zu lösen.