Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Автоматизація Попередньої Обробки за Допомогою Конвеєрів | Інженерія Ознак для Машинного Навчання
Попередня Обробка Даних та Створення Ознак

bookАвтоматизація Попередньої Обробки за Допомогою Конвеєрів

Автоматизація попередньої обробки та створення ознак за допомогою конвеєрів scikit-learn забезпечує послідовні та відтворювані результати машинного навчання. Конвеєри дозволяють об'єднувати кроки, такі як масштабування, кодування та відбір ознак, щоб кожне перетворення завжди виконувалося в однаковому порядку.

Щоб створити конвеєр у scikit-learn, визначте список кроків, де кожен крок — це кортеж, що містить унікальну назву кроку (рядок) і об'єкт-трансформер (наприклад, StandardScaler або SelectKBest). Наприклад:

steps = [
    ("scaler", StandardScaler()),
    ("feature_selection", SelectKBest(score_func=f_classif, k=2))
]

Далі цей список передається об'єкту Pipeline:

pipeline = Pipeline(steps)

Конвеєр застосовує кожен трансформер по черзі, передаючи вихідні дані одного кроку як вхідні для наступного. Такий підхід не лише економить час, а й знижує ризик витоку даних, роблячи експерименти більш надійними та легкими для відтворення.

Використання ColumnTransformer для підмножин ознак

За допомогою ColumnTransformer можна застосовувати різні конвеєри попередньої обробки до різних підмножин ознак у ваших даних. Наприклад:

# 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'))
])

Це дозволяє створити єдиний, уніфікований конвеєр, який коректно обробляє як числові, так і категоріальні типи даних, підтримуючи організованість коду попередньої обробки та забезпечуючи застосування кожного перетворення до відповідних стовпців.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
import 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")
copy
Note
Примітка

Інтеграція попередньої обробки у ваш навчальний конвеєр забезпечує послідовність перетворень і допомагає запобігти витоку даних як під час навчання, так і під час прогнозування.

question mark

Яка з наведених є ключовою перевагою використання конвеєрів sklearn для попередньої обробки та створення ознак?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 8.33

bookАвтоматизація Попередньої Обробки за Допомогою Конвеєрів

Свайпніть щоб показати меню

Автоматизація попередньої обробки та створення ознак за допомогою конвеєрів scikit-learn забезпечує послідовні та відтворювані результати машинного навчання. Конвеєри дозволяють об'єднувати кроки, такі як масштабування, кодування та відбір ознак, щоб кожне перетворення завжди виконувалося в однаковому порядку.

Щоб створити конвеєр у scikit-learn, визначте список кроків, де кожен крок — це кортеж, що містить унікальну назву кроку (рядок) і об'єкт-трансформер (наприклад, StandardScaler або SelectKBest). Наприклад:

steps = [
    ("scaler", StandardScaler()),
    ("feature_selection", SelectKBest(score_func=f_classif, k=2))
]

Далі цей список передається об'єкту Pipeline:

pipeline = Pipeline(steps)

Конвеєр застосовує кожен трансформер по черзі, передаючи вихідні дані одного кроку як вхідні для наступного. Такий підхід не лише економить час, а й знижує ризик витоку даних, роблячи експерименти більш надійними та легкими для відтворення.

Використання ColumnTransformer для підмножин ознак

За допомогою ColumnTransformer можна застосовувати різні конвеєри попередньої обробки до різних підмножин ознак у ваших даних. Наприклад:

# 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'))
])

Це дозволяє створити єдиний, уніфікований конвеєр, який коректно обробляє як числові, так і категоріальні типи даних, підтримуючи організованість коду попередньої обробки та забезпечуючи застосування кожного перетворення до відповідних стовпців.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
import 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")
copy
Note
Примітка

Інтеграція попередньої обробки у ваш навчальний конвеєр забезпечує послідовність перетворень і допомагає запобігти витоку даних як під час навчання, так і під час прогнозування.

question mark

Яка з наведених є ключовою перевагою використання конвеєрів sklearn для попередньої обробки та створення ознак?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
some-alt