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:
- Classificação Multiclasse
- Classificação Multirótulo
- Classificação Multiclasse-Multisaída
- 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.