Scikit-learn: use codificação de rótulo de várias colunas


No aprendizado de máquina, a codificação de rótulos é o processo de conversão dos valores de uma variável categórica em valores inteiros.

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 de várias colunas em Python:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding on col1, col2 columns
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )

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 que contém informações sobre vários jogadores de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
                   ' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12

Podemos usar o código a seguir para realizar a codificação de rótulo para converter cada valor categórico nas colunas team , position e all_star em valores inteiros:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding across team, position, and all_star columns
df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform )

#view udpated DataFrame
print (df)

   team position all_star points
0 0 1 1 11
1 0 0 0 8
2 1 1 1 10
3 1 0 1 6
4 1 0 1 6
5 2 1 0 5
6 2 1 1 9
7 3 0 0 12

A partir do resultado, podemos ver que cada valor das colunas team , position e all_star foi convertido em valores inteiros.

Por exemplo, na coluna equipe podemos ver:

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

Observe que neste exemplo realizamos a codificação de rótulo em três colunas do DataFrame, mas podemos usar sintaxe semelhante para realizar a codificação de rótulo em quantas colunas categóricas desejarmos.

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 *