Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tehokas Datan Esikäsittely Pipelinejen Avulla | Putkistot
Koneoppimisen Perusteet Scikit-learnilla

bookTehokas Datan Esikäsittely Pipelinejen Avulla

Kun sarakkeita voidaan muuntaa erikseen käyttämällä make_column_transformer-funktiota, seuraava vaihe on rakentaa putkia. Putki on säiliö, joka järjestää esikäsittelyvaiheet ja soveltaa niitä peräkkäin.

Putki Scikit-learnissa voidaan luoda joko Pipeline-luokan konstruktorilla tai make_pipeline-funktiolla, joka löytyy sklearn.pipeline-moduulista. Tässä kurssissa keskitytään make_pipeline-funktioon, koska sen käyttö on yksinkertaisempaa.

Sinun tarvitsee vain välittää kaikki muuntimet funktion argumentteina. Putkien luominen on näin helppoa.

Kuitenkin, kun kutsut .fit_transform(X)-metodia Pipeline-oliolle, se soveltaa .fit_transform(X) jokaiseen putken sisällä olevaan muuntimeen. Jos haluat käsitellä joitakin sarakkeita eri tavalla, sinun kannattaa käyttää ColumnTransformer-muunninta ja välittää se make_pipeline()-funktiolle.

Rakenna putki käyttäen samaa tiedostoa kuin edellisessä luvussa. Putken tulee sisältää kooderit kategorisille ominaisuuksille yhdessä SimpleImputer-luokan kanssa. Koska aineistossa on sekä nominaalisia että ordinaalisia ominaisuuksia, käytä ColumnTransformer-luokkaa niiden erilliseen käsittelyyn.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain what each step in the pipeline is doing?

What is the difference between OneHotEncoder and OrdinalEncoder?

Why do we use SimpleImputer with the 'most_frequent' strategy here?

Awesome!

Completion rate improved to 3.13

bookTehokas Datan Esikäsittely Pipelinejen Avulla

Pyyhkäise näyttääksesi valikon

Kun sarakkeita voidaan muuntaa erikseen käyttämällä make_column_transformer-funktiota, seuraava vaihe on rakentaa putkia. Putki on säiliö, joka järjestää esikäsittelyvaiheet ja soveltaa niitä peräkkäin.

Putki Scikit-learnissa voidaan luoda joko Pipeline-luokan konstruktorilla tai make_pipeline-funktiolla, joka löytyy sklearn.pipeline-moduulista. Tässä kurssissa keskitytään make_pipeline-funktioon, koska sen käyttö on yksinkertaisempaa.

Sinun tarvitsee vain välittää kaikki muuntimet funktion argumentteina. Putkien luominen on näin helppoa.

Kuitenkin, kun kutsut .fit_transform(X)-metodia Pipeline-oliolle, se soveltaa .fit_transform(X) jokaiseen putken sisällä olevaan muuntimeen. Jos haluat käsitellä joitakin sarakkeita eri tavalla, sinun kannattaa käyttää ColumnTransformer-muunninta ja välittää se make_pipeline()-funktiolle.

Rakenna putki käyttäen samaa tiedostoa kuin edellisessä luvussa. Putken tulee sisältää kooderit kategorisille ominaisuuksille yhdessä SimpleImputer-luokan kanssa. Koska aineistossa on sekä nominaalisia että ordinaalisia ominaisuuksia, käytä ColumnTransformer-luokkaa niiden erilliseen käsittelyyn.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt