One-Hot-koodaus
Nominaalisten arvojen käsittely on hieman monimutkaisempaa.
Ordinaalisille tiedoille, kuten käyttäjäarvioille välillä 'Terrible'–'Great', koodaus numeroiksi 0–4 on sopivaa, koska malli pystyy hyödyntämään järjestyksen.
Sen sijaan ominaisuudelle kuten 'city', jossa on viisi erillistä kategoriaa, koodaus numeroiksi 0–4 antaisi virheellisesti ymmärtää järjestyksen olemassaolon. Tässä tapauksessa one-hot encoding on parempi vaihtoehto, koska se esittää kategoriat ilman hierarkiaa.
Nominaalidatan koodaamiseen käytetään OneHotEncoder-muunninta. Se luo sarakkeen jokaiselle yksilölliselle arvolle. Jokaisella rivillä asetetaan arvo 1 sen sarakkeen kohdalle, joka vastaa rivin arvoa, ja 0 muihin sarakkeisiin.
Alkuperäinen arvo 'NewYork' on nyt 1 sarakkeessa 'City_NewYork' ja 0 muissa City_-sarakkeissa.
Käytä OneHotEncoder-enkooderia penguins-aineistoon. Nominaaliset ominaisuudet ovat 'island' ja 'sex'. Sarake 'species' on kohde ja käsitellään erikseen, kun kohde-enkoodauksesta keskustellaan seuraavassa luvussa.
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())
OneHotEncoder-muuntimen käyttämiseksi alustetaan enkooderiobjekti ja valitut sarakkeet välitetään metodille .fit_transform(), samalla tavalla kuin muidenkin muuntimien kanssa.
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())
.toarray()-metodi muuntaa OneHotEncoder-muuntimen tuottaman harvan matriisin tiheäksi NumPy-taulukoksi. Tiheät taulukot näyttävät kaikki arvot eksplisiittisesti, mikä helpottaa koodatun datan visualisointia ja käsittelyä DataFrame-rakenteessa. Harvat matriisit tallentavat vain nollasta poikkeavat alkiot, mikä optimoi muistinkäytön. Voit jättää tämän metodin pois nähdäksesi eron tulosteessa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
One-Hot-koodaus
Pyyhkäise näyttääksesi valikon
Nominaalisten arvojen käsittely on hieman monimutkaisempaa.
Ordinaalisille tiedoille, kuten käyttäjäarvioille välillä 'Terrible'–'Great', koodaus numeroiksi 0–4 on sopivaa, koska malli pystyy hyödyntämään järjestyksen.
Sen sijaan ominaisuudelle kuten 'city', jossa on viisi erillistä kategoriaa, koodaus numeroiksi 0–4 antaisi virheellisesti ymmärtää järjestyksen olemassaolon. Tässä tapauksessa one-hot encoding on parempi vaihtoehto, koska se esittää kategoriat ilman hierarkiaa.
Nominaalidatan koodaamiseen käytetään OneHotEncoder-muunninta. Se luo sarakkeen jokaiselle yksilölliselle arvolle. Jokaisella rivillä asetetaan arvo 1 sen sarakkeen kohdalle, joka vastaa rivin arvoa, ja 0 muihin sarakkeisiin.
Alkuperäinen arvo 'NewYork' on nyt 1 sarakkeessa 'City_NewYork' ja 0 muissa City_-sarakkeissa.
Käytä OneHotEncoder-enkooderia penguins-aineistoon. Nominaaliset ominaisuudet ovat 'island' ja 'sex'. Sarake 'species' on kohde ja käsitellään erikseen, kun kohde-enkoodauksesta keskustellaan seuraavassa luvussa.
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())
OneHotEncoder-muuntimen käyttämiseksi alustetaan enkooderiobjekti ja valitut sarakkeet välitetään metodille .fit_transform(), samalla tavalla kuin muidenkin muuntimien kanssa.
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())
.toarray()-metodi muuntaa OneHotEncoder-muuntimen tuottaman harvan matriisin tiheäksi NumPy-taulukoksi. Tiheät taulukot näyttävät kaikki arvot eksplisiittisesti, mikä helpottaa koodatun datan visualisointia ja käsittelyä DataFrame-rakenteessa. Harvat matriisit tallentavat vain nollasta poikkeavat alkiot, mikä optimoi muistinkäytön. Voit jättää tämän metodin pois nähdäksesi eron tulosteessa.
Kiitos palautteestasi!