Коли використовувати різні алгоритми машинного навчання: простий посібник

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

Я працюю на Springboard - ми провели багато досліджень щодо навчання та ресурсів машинного навчання. На Springboard ми пропонуємо перший онлайн-курс з гарантією роботи в машинному навчанні.

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

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

Почнемо з розмови про змінні, які нам потрібно враховувати.

U nsupervised навчання проти підконтрольного навчання

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

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

Тип навчання, який ви можете виконати, матиме велике значення, коли ви почнете працювати з різними алгоритмами машинного навчання.

S темп і міркування часу

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

Вихідні дані

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

Кілька прикладів

Ви прагнете побудувати просту модель прогнозування з добре структурованим набором даних без надто великих ускладнень.

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

Ресурс : Лінійна регресія - Детальний вигляд

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

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

Ресурс : Побудова логістичної регресії

Ви хочете розмістити безмітні безперервні дані в різних групах (наприклад, поставити клієнтів з певними записаними рисами та спробувати виявити категорії / групи, до яких вони можуть належати).

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

Ресурс : П’ять алгоритмів кластеризації, які повинні знати вчені

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

Ваша найкраща ставка - це, мабуть, Naive Bayes - проста, але потужна модель, яку можна використовувати для класифікації тексту. З деякою попередньою обробкою та очищенням тексту (особливо обережно видаляючи слова, що містять заповнювач, такі як «та», які можуть додати шуму вашому набору даних), ви можете отримати чудовий набір результатів за допомогою дуже простої моделі.

Ще одна пристойна ставка - це логістична регресія, яка є простою моделлю для сприйняття та пояснення та менш складною для виділення, ніж Naive Bayes (яка часто призначає ймовірності слово за словом, а не цілісно позначає текстовий фрагмент як частину тієї чи іншої групи ).

Переходячи до чогось більш потужного, алгоритм Linear Support Vector Machine, ймовірно, допоможе поліпшити вашу продуктивність. Якщо ви хочете тут пропустити, ви можете (хоча я пропоную спробувати обидві моделі та порівняти, яка з них найкраще працює - Naive Bayes має абсурдно просту реалізацію на таких фреймворках, як scikit-learn, і це не дуже обчислювально, тому ви можете собі дозволити для перевірки обох).

Нарешті, аналіз міркувань слів також може спрацювати - розгляньте можливість створення ансамблю різних методів та тестування всіх цих методів один проти одного, залежно від набору даних, про який йдеться.

Ресурс : Порівняння та відбір моделей класифікації багатокласних текстів

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

Найкращий алгоритм боротьби з перебігом різних зображень - це згорткова нейронна мережа, яка організована подібно до того, як аналізуються зорові кори тварин.

За оцінкою продуктивності (зниження рівня помилок) у конкурсі ImageNet, архітектура SE-Resnet виходить на перше місце, хоча, оскільки поле все ще розвивається, майже щодня з’являються нові досягнення.

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

Ресурс : Огляд алгоритмів глибокого навчання для класифікації зображень

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

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

Ресурс : Дерева рішень у машинному навчанні

Ви хочете провести аналіз часових рядів з чітко визначеними контрольованими даними (наприклад, прогнозувати ціни акцій на основі історичних моделей на фондовому ринку, розміщених на хронологічній основі від минулого до сьогодення).

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

Ресурс : Повторювані нейронні мережі та LSTM

Підведенню

Візьміть рекомендації та ресурси, наведені вище, і застосуйте їх як свого роду перший інстинкт для свого моделювання - це допоможе вам перейти до будь-якої роботи, яку ви робите трохи швидше. Якщо ви зацікавлені в тому, щоб наставник експерта з машинного навчання в навчанні подальшому тренуванню своїх інстинктів, перегляньте трек ШІ / машинного навчання кар’єру Springboard.