Transformando o Alvo de Predição

Beginner

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

Introdução

No aprendizado de máquina, muitas vezes é necessário transformar o alvo de previsão antes de treinar um modelo. Isso pode incluir tarefas como converter rótulos multiclasse em uma matriz indicadora binária ou codificar rótulos não numéricos em rótulos numéricos.

Neste laboratório, exploraremos as diversas técnicas fornecidas pelo módulo sklearn.preprocessing no scikit-learn para transformar o alvo de previsão.

Dicas da Máquina Virtual

Após o término da inicialização da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema para você prontamente.

Binário de Rótulos

A binarização de rótulos é o processo de conversão de rótulos multiclasse em uma matriz indicadora binária. Isso pode ser alcançado usando a classe LabelBinarizer.

from sklearn import preprocessing

## Crie uma instância de LabelBinarizer
lb = preprocessing.LabelBinarizer()

## Ajuste o LabelBinarizer em uma lista de rótulos multiclasse
lb.fit([1, 2, 6, 4, 2])

## Obtenha as classes aprendidas pelo LabelBinarizer
lb.classes_

## Transforme uma lista de rótulos multiclasse em uma matriz indicadora binária
lb.transform([1, 6])

Binarização de Rótulos Multi-Etiquetas

A binarização de rótulos multi-etiquetas é o processo de converter uma coleção de coleções de rótulos em um formato indicador. Isso pode ser alcançado usando a classe MultiLabelBinarizer.

from sklearn.preprocessing import MultiLabelBinarizer

## Defina uma lista de coleções de rótulos
y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]

## Crie uma instância de MultiLabelBinarizer e aplique fit_transform na lista de coleções
MultiLabelBinarizer().fit_transform(y)

Codificação de Rótulos

A codificação de rótulos é o processo de converter rótulos não numéricos em rótulos numéricos. Isso pode ser feito usando a classe LabelEncoder.

from sklearn import preprocessing

## Crie uma instância de LabelEncoder
le = preprocessing.LabelEncoder()

## Ajuste o LabelEncoder em uma lista de rótulos não numéricos
le.fit(["paris", "paris", "tokyo", "amsterdam"])

## Obtenha as classes aprendidas pelo LabelEncoder
list(le.classes_)

## Transforme uma lista de rótulos não numéricos em rótulos numéricos
le.transform(["tokyo", "tokyo", "paris"])

## Transforme inversamente os rótulos numéricos de volta para rótulos não numéricos
list(le.inverse_transform([2, 2, 1]))

Resumo

Neste laboratório, aprendemos como transformar o alvo de previsão utilizando várias técnicas fornecidas pelo módulo sklearn.preprocessing no scikit-learn. Essas técnicas incluíram binarização de rótulos, binarização de rótulos multi-etiquetas e codificação de rótulos.