Esikäsittelyn Automatisointi Putkistoilla
Automatisoi esikäsittely ja ominaisuuksien rakentaminen scikit-learn-putkistojen avulla varmistaaksesi johdonmukaiset ja toistettavat koneoppimistulokset. Putkistot mahdollistavat vaiheiden, kuten skaalaamisen, koodauksen ja ominaisuuksien valinnan, ketjuttamisen niin, että jokainen muunnos tapahtuu aina samassa järjestyksessä.
Putkiston rakentamiseksi scikit-learnissa määrittele lista vaiheista, joissa jokainen vaihe on tuple, joka sisältää yksilöllisen vaiheen nimen (merkkijonona) ja muunnosobjektin (kuten StandardScaler tai SelectKBest). Esimerkiksi:
steps = [
("scaler", StandardScaler()),
("feature_selection", SelectKBest(score_func=f_classif, k=2))
]
Tämän jälkeen välitä tämä lista Pipeline-objektille:
pipeline = Pipeline(steps)
Putkisto soveltaa jokaista muunninta järjestyksessä, välittäen yhden vaiheen tuloksen seuraavan syötteeksi. Tämä lähestymistapa säästää aikaa ja vähentää tietovuodon riskiä, tehden kokeiluista luotettavampia ja helpommin toistettavia.
ColumnTransformerin käyttäminen ominaisuusalijoukkoihin
ColumnTransformer-luokan avulla voit soveltaa erilaisia esikäsittelyputkistoja eri ominaisuusalijoukkoihin datassasi. Esimerkiksi:
# Define column types
numeric_features = ['age', 'fare']
categorical_features = ['embarked', 'sex']
# Preprocessing for numeric features: impute missing values and scale
numeric_transformer = Pipeline([
('imputer', SimpleImputer(strategy='mean')),
('scaler', StandardScaler())
])
# Preprocessing for categorical features: impute missing values and encode
categorical_transformer = Pipeline([
('imputer', SimpleImputer(strategy='most_frequent')),
('encoder', OneHotEncoder(handle_unknown='ignore'))
])
Tämä mahdollistaa yhtenäisen putkiston rakentamisen, joka käsittelee sekä numeeriset että kategoriset tietotyypit oikein, pitäen esikäsittelykoodin järjestyksessä ja varmistaen, että jokainen muunnos kohdistuu oikeisiin sarakkeisiin.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import numpy as np import pandas as pd import seaborn as sns from sklearn.pipeline import Pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.compose import ColumnTransformer from sklearn.feature_selection import SelectKBest, f_classif # Load the Titanic dataset from seaborn (no warnings!) df = sns.load_dataset('titanic') # Select features and target features = ['age', 'fare', 'embarked', 'sex'] X = df[features] y = df['survived'] # Target variable # Define column types numeric_features = ['age', 'fare'] categorical_features = ['embarked', 'sex'] # Preprocessing for numeric features: impute missing values and scale numeric_transformer = Pipeline([ ('imputer', SimpleImputer(strategy='mean')), ('scaler', StandardScaler()) ]) # Preprocessing for categorical features: impute missing values and encode categorical_transformer = Pipeline([ ('imputer', SimpleImputer(strategy='most_frequent')), ('encoder', OneHotEncoder(handle_unknown='ignore')) ]) # Combine preprocessing steps preprocessor = ColumnTransformer([ ('num', numeric_transformer, numeric_features), ('cat', categorical_transformer, categorical_features) ]) # Build the full pipeline with preprocessing and feature selection pipeline = Pipeline([ ('preprocessing', preprocessor), ('feature_selection', SelectKBest(score_func=f_classif, k=3)) ]) # Fit and transform the data X_transformed = pipeline.fit_transform(X, y) print(f"Original shape: {X.shape}") print(f"Reduced from {X.shape[1]} features to {X_transformed.shape[1]} selected features")
Esikäsittelyn integroiminen koulutusputkistoon varmistaa johdonmukaiset muunnokset ja auttaa estämään tietovuotoa sekä koulutuksen että ennustamisen aikana.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how SelectKBest chooses the top features in this pipeline?
What would happen if I changed the value of k in SelectKBest?
How can I add a classifier to this pipeline after feature selection?
Awesome!
Completion rate improved to 8.33
Esikäsittelyn Automatisointi Putkistoilla
Pyyhkäise näyttääksesi valikon
Automatisoi esikäsittely ja ominaisuuksien rakentaminen scikit-learn-putkistojen avulla varmistaaksesi johdonmukaiset ja toistettavat koneoppimistulokset. Putkistot mahdollistavat vaiheiden, kuten skaalaamisen, koodauksen ja ominaisuuksien valinnan, ketjuttamisen niin, että jokainen muunnos tapahtuu aina samassa järjestyksessä.
Putkiston rakentamiseksi scikit-learnissa määrittele lista vaiheista, joissa jokainen vaihe on tuple, joka sisältää yksilöllisen vaiheen nimen (merkkijonona) ja muunnosobjektin (kuten StandardScaler tai SelectKBest). Esimerkiksi:
steps = [
("scaler", StandardScaler()),
("feature_selection", SelectKBest(score_func=f_classif, k=2))
]
Tämän jälkeen välitä tämä lista Pipeline-objektille:
pipeline = Pipeline(steps)
Putkisto soveltaa jokaista muunninta järjestyksessä, välittäen yhden vaiheen tuloksen seuraavan syötteeksi. Tämä lähestymistapa säästää aikaa ja vähentää tietovuodon riskiä, tehden kokeiluista luotettavampia ja helpommin toistettavia.
ColumnTransformerin käyttäminen ominaisuusalijoukkoihin
ColumnTransformer-luokan avulla voit soveltaa erilaisia esikäsittelyputkistoja eri ominaisuusalijoukkoihin datassasi. Esimerkiksi:
# Define column types
numeric_features = ['age', 'fare']
categorical_features = ['embarked', 'sex']
# Preprocessing for numeric features: impute missing values and scale
numeric_transformer = Pipeline([
('imputer', SimpleImputer(strategy='mean')),
('scaler', StandardScaler())
])
# Preprocessing for categorical features: impute missing values and encode
categorical_transformer = Pipeline([
('imputer', SimpleImputer(strategy='most_frequent')),
('encoder', OneHotEncoder(handle_unknown='ignore'))
])
Tämä mahdollistaa yhtenäisen putkiston rakentamisen, joka käsittelee sekä numeeriset että kategoriset tietotyypit oikein, pitäen esikäsittelykoodin järjestyksessä ja varmistaen, että jokainen muunnos kohdistuu oikeisiin sarakkeisiin.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import numpy as np import pandas as pd import seaborn as sns from sklearn.pipeline import Pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.compose import ColumnTransformer from sklearn.feature_selection import SelectKBest, f_classif # Load the Titanic dataset from seaborn (no warnings!) df = sns.load_dataset('titanic') # Select features and target features = ['age', 'fare', 'embarked', 'sex'] X = df[features] y = df['survived'] # Target variable # Define column types numeric_features = ['age', 'fare'] categorical_features = ['embarked', 'sex'] # Preprocessing for numeric features: impute missing values and scale numeric_transformer = Pipeline([ ('imputer', SimpleImputer(strategy='mean')), ('scaler', StandardScaler()) ]) # Preprocessing for categorical features: impute missing values and encode categorical_transformer = Pipeline([ ('imputer', SimpleImputer(strategy='most_frequent')), ('encoder', OneHotEncoder(handle_unknown='ignore')) ]) # Combine preprocessing steps preprocessor = ColumnTransformer([ ('num', numeric_transformer, numeric_features), ('cat', categorical_transformer, categorical_features) ]) # Build the full pipeline with preprocessing and feature selection pipeline = Pipeline([ ('preprocessing', preprocessor), ('feature_selection', SelectKBest(score_func=f_classif, k=3)) ]) # Fit and transform the data X_transformed = pipeline.fit_transform(X, y) print(f"Original shape: {X.shape}") print(f"Reduced from {X.shape[1]} features to {X_transformed.shape[1]} selected features")
Esikäsittelyn integroiminen koulutusputkistoon varmistaa johdonmukaiset muunnokset ja auttaa estämään tietovuotoa sekä koulutuksen että ennustamisen aikana.
Kiitos palautteestasi!