Como realizar a codificação de rótulos em python (com exemplo)


Freqüentemente, no aprendizado de máquina, queremos converter variáveis categóricas em algum tipo de formato numérico que possa ser facilmente usado por algoritmos.

Uma maneira de fazer isso é usar a codificação de rótulo , que atribui a cada valor categórico um valor inteiro baseado em ordem alfabética.

Por exemplo, a captura de tela a seguir mostra como converter cada valor exclusivo de uma variável categórica chamada Equipe em um valor inteiro baseado em ordem alfabética:

Você pode usar a seguinte sintaxe para realizar a codificação de rótulo em Python:

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' my_column '] = lab. fit_transform (df[' my_column '])

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: codificação de rótulos em Python

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print (df)

  team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29

Podemos usar o código a seguir para realizar a codificação do rótulo para converter cada valor categórico na coluna da equipe em um valor inteiro:

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' team '] = lab. fit_transform (df[' team '])

#view updated DataFrame
print (df)

   team points
0 0 25
1 0 12
2 1 15
3 1 14
4 1 19
5 1 23
6 2 25
7 2 29

Pelo resultado podemos ver:

  • Cada valor “A” foi convertido em 0 .
  • Cada valor “B” foi convertido para 1 .
  • Cada valor “C” foi convertido para 2 .

Observe que você também pode usar a função inverse_transform() para obter os valores originais da coluna da equipe :

 #display original team labels
lab. inverse_transform (df[' team '])

array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em Python:

Como converter uma variável categórica em numérica no Pandas
Como converter valores booleanos em valores inteiros no Pandas
Como usar factorize() para codificar strings como números em Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *