One-hotencoder
Voor nominale waarden is de verwerking iets complexer.
Voor ordinale data, zoals gebruikersbeoordelingen van 'Terrible' tot 'Great', is codering als getallen van 0 tot 4 geschikt omdat het model de inherente volgorde kan vastleggen.
Voor een kenmerk zoals 'city' met vijf verschillende categorieën zou codering als getallen van 0 tot 4 echter onterecht een volgorde suggereren. In dit geval is one-hot encoding een betere keuze, omdat het categorieën weergeeft zonder een hiërarchie te impliceren.
Voor het coderen van nominale data wordt de OneHotEncoder-transformer gebruikt. Deze maakt een kolom voor elke unieke waarde. Voor elke rij wordt vervolgens 1 toegekend aan de kolom van de waarde van die rij en 0 aan de andere kolommen.
Wat oorspronkelijk 'NewYork' was, heeft nu 1 in de kolom 'City_NewYork' en 0 in de andere City_ kolommen.
Pas OneHotEncoder toe op de penguins dataset. De nominale kenmerken zijn 'island' en 'sex'. De kolom 'species' is het doelwit en zal apart worden behandeld bij het bespreken van target encoding in het volgende hoofdstuk.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed.csv') print('island: ', df['island'].unique()) print('sex: ', df['sex'].unique())
Om OneHotEncoder toe te passen, het encoder-object initialiseren en de geselecteerde kolommen doorgeven aan .fit_transform(), op dezelfde manier als bij andere transformators.
1234567891011import pandas as pd from sklearn.preprocessing import OneHotEncoder df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed.csv') # Assign X, y variables y = df['species'] X = df.drop('species', axis=1) # Initialize an OneHotEncoder object one_hot = OneHotEncoder() # Print transformed 'sex', 'island' columns print(one_hot.fit_transform(X[['sex', 'island']]).toarray())
De methode .toarray() converteert de sparse matrix uitvoer van de OneHotEncoder naar een dense NumPy-array. Dense arrays tonen alle waarden expliciet, waardoor visualisatie en bewerking van de gecodeerde gegevens binnen een DataFrame eenvoudiger wordt. Sparse matrices slaan alleen niet-nul elementen op, wat het geheugengebruik optimaliseert. Deze methode kan worden weggelaten om het verschil in uitvoer te zien.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain what the output of the OneHotEncoder means?
How do I interpret the transformed data for the 'sex' and 'island' columns?
What should I do next after applying OneHotEncoder to these features?
Geweldig!
Completion tarief verbeterd naar 3.13
One-hotencoder
Veeg om het menu te tonen
Voor nominale waarden is de verwerking iets complexer.
Voor ordinale data, zoals gebruikersbeoordelingen van 'Terrible' tot 'Great', is codering als getallen van 0 tot 4 geschikt omdat het model de inherente volgorde kan vastleggen.
Voor een kenmerk zoals 'city' met vijf verschillende categorieën zou codering als getallen van 0 tot 4 echter onterecht een volgorde suggereren. In dit geval is one-hot encoding een betere keuze, omdat het categorieën weergeeft zonder een hiërarchie te impliceren.
Voor het coderen van nominale data wordt de OneHotEncoder-transformer gebruikt. Deze maakt een kolom voor elke unieke waarde. Voor elke rij wordt vervolgens 1 toegekend aan de kolom van de waarde van die rij en 0 aan de andere kolommen.
Wat oorspronkelijk 'NewYork' was, heeft nu 1 in de kolom 'City_NewYork' en 0 in de andere City_ kolommen.
Pas OneHotEncoder toe op de penguins dataset. De nominale kenmerken zijn 'island' en 'sex'. De kolom 'species' is het doelwit en zal apart worden behandeld bij het bespreken van target encoding in het volgende hoofdstuk.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed.csv') print('island: ', df['island'].unique()) print('sex: ', df['sex'].unique())
Om OneHotEncoder toe te passen, het encoder-object initialiseren en de geselecteerde kolommen doorgeven aan .fit_transform(), op dezelfde manier als bij andere transformators.
1234567891011import pandas as pd from sklearn.preprocessing import OneHotEncoder df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed.csv') # Assign X, y variables y = df['species'] X = df.drop('species', axis=1) # Initialize an OneHotEncoder object one_hot = OneHotEncoder() # Print transformed 'sex', 'island' columns print(one_hot.fit_transform(X[['sex', 'island']]).toarray())
De methode .toarray() converteert de sparse matrix uitvoer van de OneHotEncoder naar een dense NumPy-array. Dense arrays tonen alle waarden expliciet, waardoor visualisatie en bewerking van de gecodeerde gegevens binnen een DataFrame eenvoudiger wordt. Sparse matrices slaan alleen niet-nul elementen op, wat het geheugengebruik optimaliseert. Deze methode kan worden weggelaten om het verschil in uitvoer te zien.
Bedankt voor je feedback!