Algoritmos Multiclasse e Multisaída

Beginner

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

Introdução

Neste laboratório, exploraremos a funcionalidade e o uso de algoritmos multiclasse e multisaída no scikit-learn. A classificação multiclasse é uma tarefa de classificação em que as amostras são atribuídas a mais de duas classes. A classificação multisaída, por outro lado, prevê múltiplas propriedades para cada amostra. Vamos abordar os seguintes tópicos:

  1. Classificação Multiclasse
  2. Classificação Multirótulo
  3. Classificação Multiclasse-Multisaída
  4. Regressão Multisaída

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para praticar.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Classificação Multiclasse

Descrição do Problema

A classificação multiclasse é uma tarefa de classificação com mais de duas classes. Cada amostra é atribuída a apenas uma classe.

Formato do Alvo

Uma representação válida de alvos multiclasse é um vetor unidimensional ou coluna contendo mais de dois valores discretos.

Exemplo

Vamos usar o conjunto de dados Iris para demonstrar a classificação multiclasse:

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

## Carregar o conjunto de dados Iris
X, y = datasets.load_iris(return_X_y=True)

## Ajustar um modelo de regressão logística usando OneVsRestClassifier
model = OneVsRestClassifier(LogisticRegression())
model.fit(X, y)

## Fazer previsões
predictions = model.predict(X)
print(predictions)

Classificação Multirótulo

Descrição do Problema

A classificação multirótulo é uma tarefa de classificação em que cada amostra pode ser atribuída a múltiplos rótulos. O número de rótulos que cada amostra pode ter é superior a dois.

Formato do Alvo

Uma representação válida de alvos multirótulo é uma matriz binária, onde cada linha representa uma amostra e cada coluna representa uma classe. Um valor de 1 indica a presença do rótulo na amostra, enquanto 0 ou -1 indica a ausência.

Exemplo

Vamos criar um problema de classificação multirótulo usando a função make_classification:

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

## Gerar um problema de classificação multirótulo
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, random_state=0)
y = y.reshape(-1, 1)

## Ajustar um classificador multisaída de floresta aleatória
model = MultiOutputClassifier(RandomForestClassifier())
model.fit(X, y)

## Fazer previsões
predictions = model.predict(X)
print(predictions)

Classificação Multiclasse-Multisaída

Descrição do Problema

A classificação multiclasse-multisaída, também conhecida como classificação multitarefa, prevê múltiplas propriedades não binárias para cada amostra. Cada propriedade pode ter mais de duas classes.

Formato do Alvo

Uma representação válida de alvos multiclasse-multisaída é uma matriz densa, onde cada linha representa uma amostra e cada coluna representa uma propriedade ou classe diferente.

Exemplo

Vamos criar um problema de classificação multiclasse-multisaída usando a função make_classification:

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

## Gerar um problema de classificação multiclasse-multisaída
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_classes=3, random_state=0)

## Ajustar um classificador de vetores de suporte multisaída
model = MultiOutputClassifier(SVC())
model.fit(X, y)

## Fazer previsões
predictions = model.predict(X)
print(predictions)

Regressão Multisaída

Descrição do Problema

A regressão multisaída prevê múltiplas propriedades numéricas para cada amostra. Cada propriedade é uma variável numérica, e o número de propriedades pode ser maior ou igual a dois.

Formato do Alvo

Uma representação válida de alvos de regressão multisaída é uma matriz densa, onde cada linha representa uma amostra e cada coluna representa uma propriedade diferente.

Exemplo

Vamos criar um problema de regressão multisaída usando a função make_regression:

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

## Gerar um problema de regressão multisaída
X, y = make_regression(n_samples=100, n_features=10, n_targets=3, random_state=0)

## Ajustar um modelo de regressão linear multisaída
model = MultiOutputRegressor(LinearRegression())
model.fit(X, y)

## Fazer previsões
predictions = model.predict(X)
print(predictions)

Resumo

Neste laboratório, exploramos algoritmos multiclasse e multisaída no scikit-learn. Abordamos classificação multiclasse, classificação multirótulo, classificação multiclasse-multisaída e regressão multisaída. Estes algoritmos permitem-nos resolver tarefas complexas de classificação e regressão com múltiplos alvos ou classes.