Scikit-learn: użyj wielokolumnowego kodowania etykiet


W uczeniu maszynowym kodowanie etykiet to proces przekształcania wartości zmiennej kategorycznej na wartości całkowite.

Na przykład poniższy zrzut ekranu pokazuje, jak przekonwertować każdą unikalną wartość zmiennej kategorialnej o nazwie Zespół na wartość całkowitą w oparciu o kolejność alfabetyczną:

Aby wykonać kodowanie etykiet wielokolumnowych w Pythonie, możesz użyć następującej składni:

 from sklearn. preprocessing import LabelEncoder

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: kodowanie etykiet w Pythonie

Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:

 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

Możemy użyć poniższego kodu, aby wykonać kodowanie etykiet w celu przekonwertowania każdej wartości kategorycznej w kolumnach team , position i all_star na wartości całkowite:

 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

Z wyniku widzimy, że każda wartość kolumn team , position i all_star została przekonwertowana na wartości całkowite.

Na przykład w kolumnie zespół możemy zobaczyć:

  • Każda wartość „A” została przekonwertowana na 0 .
  • Każda wartość „B” została przekonwertowana na 1 .
  • Każdą wartość „C” przeliczono na 2 .
  • Każdą wartość „D” przeliczono na 3 .

Należy zauważyć, że w tym przykładzie wykonaliśmy kodowanie etykiet w trzech kolumnach ramki DataFrame, ale możemy użyć podobnej składni, aby wykonać kodowanie etykiet w dowolnej liczbie kolumn kategorii.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w Pythonie:

Jak przekonwertować zmienną kategorialną na numeryczną w Pandach
Jak przekonwertować wartości logiczne na wartości całkowite w Pandach
Jak używać Factorize() do kodowania ciągów znaków jako liczb w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *