Datasettene for utførelse av maskinlæring inkluderer både numeriske og kategoriske variabler. Kategoriske variabler er data fra strengtype som mennesker lett forstår. Maskiner kan derimot ikke forstå kategoriske innganger direkte. Følgelig må kategorisk innhold transformeres til numeriske verdier som maskiner kan tolke.
I denne opplæringen vil vi diskutere tre forskjellige måter å konvertere kategoriske verdier til numeriske verdier i Pandas DataFrame
Tilnærming 1: Bruke erstatning ()
I Python brukes erstatning () til å endre eller konvertere de gitte verdiene til nye verdier som vi spesifiserte. For å erstatte flere verdier, må vi passere to lister som parametere. Den første listen vil lagre de faktiske verdiene som skal erstattes, og den andre listen vil lagre verdiene som erstatter verdiene i den første listen.
Syntaks
DataFrame_Object ['Column'] = DataFrame_Object ['Column'].erstatte ([verdi1, verdi2,…], [verdi1, verdi2,…])Her er kolonnen navnet på kolonnen vi erstatter verdiene.
Tenk på DataFrame
La oss opprette Pandas DataFrame som heter settene som holder 4 kolonner med 10 rader.
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderVi ser to kolonner med den kategoriske typen (objekt), i.e., prioritet og kjønn.
Så vi må konvertere disse til numeriske/heltallverdier.
Eksempel 1
La oss erstatte verdier i kjønnskolonnen ved å bruke erstatningsmetode.
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderForklaring
Vi erstatter 'M' med 1 og 'F' med 2 og lagrer kolonneverdiene igjen i kjønnskolonnen. Vi kan se at kjønnskolonnen har verdier innen 1 eller 2.
Eksempel 2
La oss erstatte verdier i prioriteringskolonnen ved å bruke erstatningsmetode.
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderForklaring
Det er tre kategorier i prioriteringskolonnen. De er 'lave', 'høye' og 'medium'. Vi erstatter 'lav' med 0, 'medium' med 1 og 'høy' med 2 og lagrer kolonneverdiene igjen i prioriteringskolonnen.
Tilnærming 2: Bruke Apply (Factorize ())
Den andre metoden Pandas ga oss er 'DataFrame.Bruk () 'Funksjon for å konvertere alle kategoriske verdier til heltall.
For å konvertere flere kategoriske kolonner til heltall, har vi fulgt denne teknikken:
Faktoriseringsmetoden vil ta en verdi med en 'objekt' datatype og konvertere den til 'int'.
Hvis du bare vil konvertere en bestemt kolonnes kategoriske verdier til heltall, brukes ikke ().
Syntaks for enkeltkolonne
DataFrame_Object ['Column'] = Pandas.Factorize (DataFrame_Object ['Column']) [0]Syntaks for alle kolonnene
DataFrame_Object [DataFrame_Object.SELECT_DTYPES (['Object']).Kolonner] = DataFrame_Object [DataFrame_Object.SELECT_DTYPES (['Object']).kolonner].Bruk (Lambda X: Pandas.faktorisere (x) [0])Merk: Erstatning starter fra 0.
Eksempel 1: Erstatt kategoriske verdier for enkeltkolonner
La oss erstatte verdier i kjønnskolonnen ved å bruke Factorize () -metoden.
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderForklaring
Vi erstatter 'M' med 0 og 'F' med 1 og lagrer kolonneverdiene igjen i kjønnskolonnen. Nå kan vi se at kjønnskolonnen har verdier innen 0 eller 1.
Eksempel 2: Erstatt alle kolonne kategoriske verdier
La oss erstatte verdier i alle kolonnene ved å bruke Apply (Factorize ()) metode.
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderForklaring
Vi kan se i å følge:
Så langt har vi sett erstatning av kategoriske verdier til heltallverdier i enkelt- eller alle kolonner med kjente kategoriske verdier. Anta at det er et stort datasett med mer enn en lakh -poster. Hvordan erstatte de kategoriske verdiene?
Løsningen er etikettkoding.
La oss diskutere denne tilnærmingen.
Tilnærming 3: Bruke labelenCoding
LabelEnCoder () er metoden som er til stede inne i Sklearn -modulen, som vil konvertere kategoriske verdier for en bestemt kolonne til et heltall. Vi trenger ikke å spesifisere de kategoriske verdiene.
FIT_TRANSFORM () Metode brukes sammen med LabelEnCoder () som passer til de transformerte verdiene.
I denne teknikken starter de erstattede verdiene fra 0, og erstatningen gjøres i alfabetisk rekkefølge for de kategoriske verdiene.
Syntaks
DataFrame_Object ['Column'] = LabelEnCoder ().Fit_Transform (DataFrame_Object ['Column'])Her er kolonnen navnet på kolonnen vi erstatter verdiene.
Eksempel
La oss erstatte verdier i kjønn, prioriterte kolonner ved å bruke følgende tilnærming:
# Importer DataFrame fra Pandas -modulenProduksjon
Kodeprioritet kjønnsalderForklaring
Konklusjon
Vår guide dreier seg om å konvertere kategoriske verdier til numeriske verdier slik at de kan gjøres forståelige av maskinene, da objektdatatypen ikke kan behandles av dem. Vi har introdusert deg for de tre tilnærmingene som er omtalt av "Pandas" -biblioteket for å få den nødvendige datatypen. Husk at du bør bruke labelenCoding -tilnærmingen, da du ikke vet hvor mange kategorier som er til stede i kolonnen i Pandas DataFrame.