Відбір ознак у машинному навчанні

Привіт, Хабре!

Ми в «Рексофт» переклали на російську мову статтю Feature Selection in Machine Learning. Сподіваємось, буде корисно всім, хто небайдужий до теми.

У реальному світі дані не завжди такі чисті, як часом думають бізнес-замовники. Саме тому затребуваний інтелектуальний аналіз даних (data mining та data wrangling). Він допомагає виявляти відсутні значення та патерни в структурованих за допомогою запитів даних, які не може визначити людина. Для того, щоб знайти та використовувати ці патерни для прогнозування результатів за допомогою виявлених зв'язків у даних знадобиться машинне навчання (Machine Learning).

Для розуміння будь-якого алгоритму необхідно переглянути всі змінні даних і з'ясувати, що ці змінні представляють. Це дуже важливо, тому що обґрунтування результатів ґрунтується на розумінні даних. Якщо дані містять 5 або навіть 50 змінних, можна вивчити їх усі. А якщо їх 200? Тоді просто не вистачить часу вивчити кожну окрему змінну. Більше того, деякі алгоритми не працюють для категоріальних даних, і тоді доведеться привести всі категоріальні колонки до кількісних змінних (вони можуть виглядати кількісними, але метрики покажуть, що вони є категоріальними), щоб додати їх до моделі. Таким чином, кількість змінних збільшується і їх стає близько 500. Що тепер робити? Можна подумати, що відповіддю буде зниження розмірності. Алгоритми зниження розмірності зменшують кількість параметрів, але негативно впливають на інтерпретованість. Що якщо існують інші техніки, які виключають ознаки і при цьому дозволяють легко зрозуміти та інтерпретувати решту?

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

Сильно корельовані змінні

Сильно корельовані один з одним змінні дають моделі ту саму інформацію, отже, для аналізу не потрібно використовувати їх усі. Наприклад, якщо набір даних (dataset) містить ознаки «Час у мережі» та «Використаний трафік», можна припустити, що вони будуть до певної міри корелювані, і ми побачимо сильну кореляцію, навіть якщо виберемо неупереджений зразок даних. У такому разі в моделі потрібна лише одна з цих змінних. Якщо використовувати обидві, то модель виявиться перенавченою (overfit) і упереджена щодо однієї окремої ознаки.

P-значення

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

Прямий відбір

Прямий відбір - це техніка, що полягає у застосуванні покрокової регресії. Побудова моделі починається з повного нуля, тобто порожньої моделі, а потім кожна ітерація додає змінну, яка вносить поліпшення в модель, що будується. Те, яка змінна додається у модель, визначається її значимістю. Це може бути розраховане з використанням різних метриків. Найпоширенішим способом є застосування p-значень, одержаних у початковій статистичній моделі з використанням усіх змінних. Іноді прямий відбір може призводити до перенавчання моделі, тому що в моделі можуть виявитися сильно корельовані змінні, навіть якщо вони надають ту саму інформацію моделі (але модель при цьому показує поліпшення).

Зворотній відбір

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

Рекурсивний виняток ознак

RFE широко використовується технікою/алгоритмом для вибору точного числа значущих ознак. Іноді метод використовується, щоб пояснити кілька «найважливіших» ознак, що впливають на результати; а іноді для зменшення дуже великої кількості змінних (близько 200-400), і залишаються тільки ті, які роблять хоч якийсь внесок у модель, а всі інші виключаються. RFE використовує рангову систему. Ознакам у наборі даних виставляються ранги. Потім ці ранги використовуються для рекурсивного виключення ознак залежно від колінеарності між ними та значимості цих ознак у моделі. Крім ранжирування ознак, RFE може показати, чи ці ознаки важливі чи ні навіть для заданого числа ознак (бо дуже ймовірно, що обране число ознак може бути не оптимальним, і оптимальне число ознак може бути як більше, так і менше обраного).

Діаграма важливості ознак

Говорячи про інтерпретованість алгоритмів машинного навчання, зазвичай обговорюють лінійні регресії (що дозволяють проаналізувати значущість ознак за допомогою p-значень) і дерева рішень (буквально показують важливість ознак у формі дерева, а заразом і їхню ієрархію). З іншого боку, у таких алгоритмах, як Random Forest, LightGBM та XG Boost, часто використовується діаграма значущості ознак, тобто будується діаграма змінних та «кількості їх важливості». Це особливо корисно, коли потрібно надати структуроване обґрунтування важливості ознак з погляду їхнього впливу на бізнес.

Регуляризація

Регуляризация робиться контролю за балансом між упередженістю (bias) і відхиленням (variance). Упередженість показує, наскільки модель перенавчилася (overfit) на тренувальному наборі даних. Відхилення показує, наскільки різними були передбачення між тренувальним та тестовим датасетами. В ідеалі і упередженість, і дисперсія мають бути маленькими. Тут на допомогу приходить регуляризація! Існує дві основні техніки:

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

L2 Регуляризация — методом Ridge: Завданням Ridge є збереження всіх змінних і водночас присвоєння їм важливості з урахуванням вкладу у ефективність моделі. Ridge буде гарним вибором, якщо набір даних містить невелику кількість змінних і всі вони необхідні для інтерпретації висновків та отриманих результатів.

Так як Ridge залишає всі змінні, а Лассо краще встановлює їхню важливість, був розроблений алгоритм, що поєднує найкращі особливості обох регуляризацій і відомий як Elastic-Net.

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

Дякую за читання! Щасливого навчання!

Джерело: habr.com

Додати коментар або відгук