Вступ до алгоритмів машинного навчання

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

Категорії алгоритмів машинного навчання

Поле алгоритмів машинного навчання можна класифікувати -

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

Відділ алгоритмів машинного навчання

Проблеми алгоритмів машинного навчання можна розділити на -

  • Регресія - Існує безперервний зв'язок між залежною та незалежною змінними. Цільова змінна має чисельний характер, тоді як незалежні змінні можуть бути числовими або категоричними.
  • Класифікація - Найпоширенішим викладом проблеми, яке ви знайдете в реальному світі, є класифікація точки даних на деякий бінарний, багаточленний або порядковий клас. У задачі бінарної класифікації цільова змінна має лише два результати (Так / Ні, 0/1, True / False). У проблемі мультиноміальної класифікації в цільовій змінній є кілька класів (Apple / Orange / Mango тощо). У задачі про класифікацію Ординальної цільової змінної впорядковано (наприклад - оцінка учнів).

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

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

Алгоритми

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

Нижче наведено деякі алгоритми машинного навчання разом з фрагментами зразків коду в python.

1. Лінійна регресія

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

y = a * x + b + e, де y - цільова змінна, яку ми намагаємось передбачити, a - перехоплення і b - нахил, x - наша залежна змінна, яка використовується для прогнозування. Це проста лінійна регресія, оскільки існує лише одна незалежна змінна. У випадку множинної лінійної регресії рівняння було б -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Тут e - термін помилки, а a1, a2 .. a (n) - коефіцієнт незалежних змінних.

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

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

Лінійна регресія може бути записана на Python як нижче -

2. Логістична регресія

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

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

Методика, яка використовується для оцінки проблеми класифікації, як правило, є точністю або кривою ROC. Чим більше площа під РПЦ, тим краще модель. Випадковий графік матиме AUC 0, 5. Значення 1 вказує на найбільшу точність, тоді як 0 вказує на найменшу точність.

Логістична регресія в навчанні може бути записана як -


3. K-Найближчі сусіди

Алгоритми машинного навчання можуть використовуватися як для проблем класифікації, так і для регресії. Ідея методу KNN полягає в тому, що він прогнозує значення нової точки даних на основі своїх K Найближчих сусідів. K, як правило, є кращим як непарне число, щоб уникнути будь-якого конфлікту. Класифікуючи будь-яку нову точку даних, враховується клас із найвищим режимом в межах сусідів. У той час як для проблеми регресії середнє значення вважається величиною.

Я дізнався, що КНН пишеться як -


KNN використовується в побудові механізму рекомендацій.

4. Підтримка векторних машин

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

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

Ядро може бути лінійним або многочленом залежно від того, як розділені дані. У цьому випадку ядро ​​має лінійний характер. У разі регуляризації потрібно вибрати оптимальне значення C, оскільки високе значення може призвести до надмірного розміщення, тоді як невелике значення може бути недоцільним для моделі. Вплив єдиного прикладу тренувань визначається Гаммою. Точки, близькі до лінії, вважаються високою гаммою і навпаки - низькою.

У sklearn SVM пишеться як -


5. Наївний Байєс

Він працює за принципом теореми Байєса, який виявляє ймовірність події, враховуючи деякі справжні умови. Теорема Байєса представлена ​​як -

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

Код Naive Bayes в Python -

6. Дерево рішень

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

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

У склеарні Дерева рішень кодуються як -



7. Випадковий ліс

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


8. К-засоби Кластеризація

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

Значення k можна було знайти з ліктьового методу.

Кластеризація K-засобів використовується в галузях електронної комерції, де клієнти групуються разом на основі їх поведінкових моделей. Його також можна використовувати в Risk Analytics. Нижче - код пітона -


Висновок: Алгоритми машинного навчання

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

Рекомендовані статті

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

  1. Методи машинного навчання
  2. Що таке глибоке навчання
  3. Вчений даних проти машинного навчання
  4. Контрольоване навчання проти непідконтрольного навчання
  5. Гіперпараметр машинного навчання
  6. Що таке навчання підсиленням?
  7. Найчастіше використовувані методи ансамблевого навчання
  8. Повне керівництво з прикладів алгоритму С ++
  9. Посібник з етапів життєвого циклу машинного навчання

Категорія: