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

bookОснови Відбору Ознак

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

Note
Визначення

Вибір ознак — це процес вибору підмножини вхідних змінних (features) з ваших даних, які є найбільш релевантними для задачі прогнозного моделювання.

Методи вибору ознак включають ручний перегляд і автоматизовані підходи. У задачах класифікації використовують статистичні тести для оцінки ознак і відбору тих, що найбільш тісно пов’язані з цільовою змінною.

Найпопулярніші методи вибору ознак поділяються на три категорії:

  • Фільтраційні методи: Відбір ознак на основі статистичних показників, таких як коефіцієнти кореляції або уніваріантні тести, незалежно від будь-якої моделі машинного навчання;
  • Обгорткові методи: Використання прогнозної моделі для оцінки різних комбінацій ознак, наприклад, за допомогою рекурсивного виключення ознак (RFE), і вибір підмножини, яка забезпечує найкращу продуктивність моделі;
  • Вбудовані методи: Виконання вибору ознак під час навчання моделі, як-от регуляризація Lasso, яка автоматично видаляє менш важливі ознаки шляхом зменшення їх коефіцієнтів до нуля.

Кожен метод балансує між обчислювальними витратами, інтерпретованістю та прогностичною здатністю.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

У цьому прикладі використовується SelectKBest з scikit-learn із функцією оцінки f_classif для вибору п’яти найбільш релевантних ознак—pclass, sex, parch, fare та embarked—з набору даних Titanic. Цей метод оцінює кожну ознаку окремо за допомогою ANOVA F-значень і обирає ті, що мають найвищі оцінки. Такий підхід ефективний для задач класифікації, оскільки зосереджується на ознаках, які найкраще розділяють цільові класи.

Note
Примітка

Вибір занадто великої кількості ознак, особливо нерелевантних, може призвести до overfitting (перенавчання), коли модель добре працює на тренувальних даних, але погано — на нових, невідомих даних. Уважний відбір ознак допомагає знизити цей ризик і забезпечує більш стійкі моделі.

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

question mark

Яке з наступних тверджень про вибір ознак є правильним?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 8.33

bookОснови Відбору Ознак

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

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

Note
Визначення

Вибір ознак — це процес вибору підмножини вхідних змінних (features) з ваших даних, які є найбільш релевантними для задачі прогнозного моделювання.

Методи вибору ознак включають ручний перегляд і автоматизовані підходи. У задачах класифікації використовують статистичні тести для оцінки ознак і відбору тих, що найбільш тісно пов’язані з цільовою змінною.

Найпопулярніші методи вибору ознак поділяються на три категорії:

  • Фільтраційні методи: Відбір ознак на основі статистичних показників, таких як коефіцієнти кореляції або уніваріантні тести, незалежно від будь-якої моделі машинного навчання;
  • Обгорткові методи: Використання прогнозної моделі для оцінки різних комбінацій ознак, наприклад, за допомогою рекурсивного виключення ознак (RFE), і вибір підмножини, яка забезпечує найкращу продуктивність моделі;
  • Вбудовані методи: Виконання вибору ознак під час навчання моделі, як-от регуляризація Lasso, яка автоматично видаляє менш важливі ознаки шляхом зменшення їх коефіцієнтів до нуля.

Кожен метод балансує між обчислювальними витратами, інтерпретованістю та прогностичною здатністю.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

У цьому прикладі використовується SelectKBest з scikit-learn із функцією оцінки f_classif для вибору п’яти найбільш релевантних ознак—pclass, sex, parch, fare та embarked—з набору даних Titanic. Цей метод оцінює кожну ознаку окремо за допомогою ANOVA F-значень і обирає ті, що мають найвищі оцінки. Такий підхід ефективний для задач класифікації, оскільки зосереджується на ознаках, які найкраще розділяють цільові класи.

Note
Примітка

Вибір занадто великої кількості ознак, особливо нерелевантних, може призвести до overfitting (перенавчання), коли модель добре працює на тренувальних даних, але погано — на нових, невідомих даних. Уважний відбір ознак допомагає знизити цей ризик і забезпечує більш стійкі моделі.

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

question mark

Яке з наступних тверджень про вибір ознак є правильним?

Select the correct answer

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

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

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

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