Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Puuttuvien Arvojen Imputointi | Datan Esikäsittely Scikit-learnilla
Koneoppimisen Perusteet Scikit-learnilla

bookHaaste: Puuttuvien Arvojen Imputointi

SimpleImputer-luokka on suunniteltu käsittelemään puuttuvia arvoja korvaamalla ne automaattisesti.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Luokan alustusta voidaan mukauttaa asettamalla sen parametreja:

  • missing_value: määrittää puuttuvien arvojen paikkamerkin. Oletuksena tämä on np.nan;
  • strategy: strategia, jota käytetään puuttuvien arvojen imputointiin. Oletusarvo on 'mean';
  • fill_value: määrittää arvon, jota käytetään puuttuvien arvojen täyttämiseen, kun strategy on 'constant'. Oletuksena tämä on None.

Koska kyseessä on muunnin (transformer), sillä on seuraavat metodit:

On myös tarpeen päättää, mitä arvoja käytetään imputointiin.

Yleinen lähestymistapa on korvata puuttuvat numeeriset arvot keskiarvolla ja puuttuvat kategoriset arvot moodilla (yleisin arvo), koska tämä vääristää aineiston jakaumaa mahdollisimman vähän.

Valintaa ohjataan strategy-parametrilla:

  • strategy='mean': imputoi sarakkeen keskiarvolla;
  • strategy='median': imputoi sarakkeen mediaanilla;
  • strategy='most_frequent': imputoi sarakkeen moodilla;
  • strategy='constant': imputoi vakiolla, joka määritellään fill_value-parametrissa.

missing_values-parametri määrittää, mitkä arvot tulkitaan puuttuviksi. Oletuksena tämä on NaN, mutta joissakin aineistoissa se voi olla tyhjä merkkijono '' tai muu paikkamerkki.

Note
Huomio

SimpleImputer ja monet muut muuntimet toimivat vain DataFramejen kanssa, eivät pandas Series -olioiden kanssa. Yhden sarakkeen valitseminen DataFramesta df['column'] palauttaa Series-olion. Tämän välttämiseksi voit käyttää kaksoissulkuja df[['column']], jolloin palautetaan DataFrame:

imputer.fit_transform(df[['column']])

Kun .fit_transform()-luokan SimpleImputer-metodia käytetään, se palauttaa 2D-taulukon. Yhden sarakkeen arvojen asettaminen pandas DataFrameen vaatii 1D-taulukon (tai Seriesin).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

.ravel()-metodia voidaan käyttää taulukon litistämiseen 1D-muotoon ennen sijoitusta:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Tämä varmistaa, että imputoidut arvot ovat oikeassa muodossa ja tallennetaan DataFrame-sarakkeeseen.

Tehtävä

Swipe to start coding

Sinulle annetaan DataFrame nimeltä df, joka sisältää tietoja pingviineistä. Sarakkeessa 'sex' on joitakin puuttuvia (NaN) arvoja. Tehtävänäsi on täyttää nämä puuttuvat kohdat käyttämällä tämän sarakkeen yleisintä kategoriaa.

  1. Tuo SimpleImputer-luokka moduulista sklearn.impute.
  2. Luo SimpleImputer-olio, jonka strategy-parametri on asetettu arvoon 'most_frequent'.
  3. Käytä imputteria 'sex'-sarakkeeseen korvataksesi kaikki puuttuvat arvot.
  4. Päivitä 'sex'-DataFramen df-sarake imputoiduilla tiedoilla.

Ratkaisu

Hienoa! Käsittelimme puuttuvien arvojen ongelman aineistossamme. Poistimme rivit, joissa oli useampi kuin yksi puuttuva arvo, ja imputoimme 'sex'-sarakkeen yleisimmällä arvolla – MALE.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain how to use SimpleImputer for categorical columns?

What are some best practices for choosing the right imputation strategy?

How do I handle missing values that are not NaN, like empty strings?

close

Awesome!

Completion rate improved to 3.13

bookHaaste: Puuttuvien Arvojen Imputointi

Pyyhkäise näyttääksesi valikon

SimpleImputer-luokka on suunniteltu käsittelemään puuttuvia arvoja korvaamalla ne automaattisesti.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Luokan alustusta voidaan mukauttaa asettamalla sen parametreja:

  • missing_value: määrittää puuttuvien arvojen paikkamerkin. Oletuksena tämä on np.nan;
  • strategy: strategia, jota käytetään puuttuvien arvojen imputointiin. Oletusarvo on 'mean';
  • fill_value: määrittää arvon, jota käytetään puuttuvien arvojen täyttämiseen, kun strategy on 'constant'. Oletuksena tämä on None.

Koska kyseessä on muunnin (transformer), sillä on seuraavat metodit:

On myös tarpeen päättää, mitä arvoja käytetään imputointiin.

Yleinen lähestymistapa on korvata puuttuvat numeeriset arvot keskiarvolla ja puuttuvat kategoriset arvot moodilla (yleisin arvo), koska tämä vääristää aineiston jakaumaa mahdollisimman vähän.

Valintaa ohjataan strategy-parametrilla:

  • strategy='mean': imputoi sarakkeen keskiarvolla;
  • strategy='median': imputoi sarakkeen mediaanilla;
  • strategy='most_frequent': imputoi sarakkeen moodilla;
  • strategy='constant': imputoi vakiolla, joka määritellään fill_value-parametrissa.

missing_values-parametri määrittää, mitkä arvot tulkitaan puuttuviksi. Oletuksena tämä on NaN, mutta joissakin aineistoissa se voi olla tyhjä merkkijono '' tai muu paikkamerkki.

Note
Huomio

SimpleImputer ja monet muut muuntimet toimivat vain DataFramejen kanssa, eivät pandas Series -olioiden kanssa. Yhden sarakkeen valitseminen DataFramesta df['column'] palauttaa Series-olion. Tämän välttämiseksi voit käyttää kaksoissulkuja df[['column']], jolloin palautetaan DataFrame:

imputer.fit_transform(df[['column']])

Kun .fit_transform()-luokan SimpleImputer-metodia käytetään, se palauttaa 2D-taulukon. Yhden sarakkeen arvojen asettaminen pandas DataFrameen vaatii 1D-taulukon (tai Seriesin).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

.ravel()-metodia voidaan käyttää taulukon litistämiseen 1D-muotoon ennen sijoitusta:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Tämä varmistaa, että imputoidut arvot ovat oikeassa muodossa ja tallennetaan DataFrame-sarakkeeseen.

Tehtävä

Swipe to start coding

Sinulle annetaan DataFrame nimeltä df, joka sisältää tietoja pingviineistä. Sarakkeessa 'sex' on joitakin puuttuvia (NaN) arvoja. Tehtävänäsi on täyttää nämä puuttuvat kohdat käyttämällä tämän sarakkeen yleisintä kategoriaa.

  1. Tuo SimpleImputer-luokka moduulista sklearn.impute.
  2. Luo SimpleImputer-olio, jonka strategy-parametri on asetettu arvoon 'most_frequent'.
  3. Käytä imputteria 'sex'-sarakkeeseen korvataksesi kaikki puuttuvat arvot.
  4. Päivitä 'sex'-DataFramen df-sarake imputoiduilla tiedoilla.

Ratkaisu

Hienoa! Käsittelimme puuttuvien arvojen ongelman aineistossamme. Poistimme rivit, joissa oli useampi kuin yksi puuttuva arvo, ja imputoimme 'sex'-sarakkeen yleisimmällä arvolla – MALE.

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
single

single

some-alt