Порівняння лінійної та логістичної регресії

Discussion on an entry level data science interview question

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

Запитання: яка різниця між лінійною регресією та логістичною регресією?

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

Зображення автора

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

  • Гіпотеза або модель сім'ї
  • Вхід і вихід
  • Функція втрат
  • Техніка оптимізації
  • додаток

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

Image by Rajashree Rajadhyax

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

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

LogReg в основному використовується для класифікації. Класифікація — це акт класифікації вхідних даних в один із багатьох можливих кошиків. Класифікація є настільки центральною для людського інтелекту, що було б неправильно сказати, що «більша частина інтелекту — це класифікація». Хорошим прикладом класифікації є клінічна діагностика. Розглянемо літнього, надійного сімейного лікаря. Жінка заходить і скаржиться на безперервний кашель. Лікар проводить різні обстеження, щоб визначитися між багатьма можливими захворюваннями. Деякі можливі умови є відносно нешкідливими, наприклад, напад інфекції горла. Але деякі серйозні, наприклад, туберкульоз або навіть рак легенів. На підставі різних факторів лікар вирішує, від чого вона страждає, і починає відповідне лікування. Це класифікація на роботі.

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

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

Ідентифікація математичної функції на основі даних називається «навчанням» або «навчанням». Існує два етапи навчання:

  1. «Тип» функції (наприклад, лінійна, експоненціальна, поліноміальна) вибирає людина
  2. Алгоритм навчання вивчає параметри (як-от нахил і перетин лінії) із наданих даних.

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

І в LinReg, і в LogReg сімейство моделей є лінійною функцією. Як відомо, лінія має два параметри — нахил і перетин. Але це вірно, лише якщо функція приймає лише один вхід. Для більшості проблем реального світу існує більше одного входу. Модельна функція для цих випадків називається лінійною функцією, а не лінією. Лінійна функція має більше параметрів для вивчення. Якщо в моделі є n входів, лінійна функція має n+1 параметр. Як згадувалося, ці параметри вивчаються з наведених даних. Для цілей цієї статті ми продовжуватимемо вважати, що функція є простим рядком із двома параметрами. Функція моделі для LogReg трохи складніша. Лінія є, але вона поєднана з іншою функцією. Ми побачимо це за мить.

Як ми вже говорили вище, і LinReg, і LogReg вивчають параметри лінійної функції з заданих даних, які називаються навчальними даними. Що містять навчальні дані?

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

Зображення автора

Наші навчальні дані містять пари входів і виходів. У цьому прикладі дані міститимуть рядки щоденної максимальної температури та проданих склянок лимонаду. Таким буде вхід і вихід для LinReg.

Завданням, яке виконує LogReg, є класифікація, тому його вихід має бути класом. Давайте уявімо, що є два класи, які називаються 0 і 1. Тоді результат моделі також має бути 0 або 1.

Однак цей метод визначення результату не дуже підходить. Дивіться наступну схему:

Зображення автора

Жовті точки належать до класу 1, а світло-блакитні — до 0. Лінія — це наша модельна функція, яка розділяє два класи. Згідно з цим роздільником, обидві жовті точки (a і b) належать до класу 1. Однак приналежність пункту b набагато більш певна, ніж приналежність пункту a. Якщо модель просто виводить 0 і 1, то цей факт втрачається.

Щоб виправити цю ситуацію, модель LogReg створює ймовірність приналежності кожної точки до певного класу. У наведеному вище прикладі ймовірність приналежності точки «а» до класу 1 низька, тоді як імовірність приналежності точки «b» до класу 0 висока. Оскільки ймовірність є числом від 1 до XNUMX, вихід LogReg є таким же.

Тепер перегляньте наступну схему:

Зображення автора

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

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

Таким чином, модель LogReg виглядає так:

Зображення автора

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

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

Ми побачили, що і LinReg, і LogReg вивчають параметри лінійної функції з навчальних даних. Як вони дізнаються ці параметри?

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

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

Loss = Loss_Function (Parameters_being_evaluated)

Терміни «втрати» та «функція втрат» мають негативне значення, що означає, що менше значення втрат вказує на краще рішення. Іншими словами, навчання — це оптимізація, яка спрямована на пошук параметрів, які призводять до мінімальних втрат.

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

Для оптимізації параметрів LinReg найпоширеніша функція втрат називається сумою квадратів помилки (SSE). Ця функція приймає такі вхідні дані:

1) Усі точки тренувальних даних. Для кожного пункту вказуємо:

a) вхідні дані, такі як максимальна температура даних,

б) вихідні дані, наприклад, кількість проданих склянок для лимонаду

2) Лінійне рівняння з параметрами

Потім функція обчислює втрати за такою формулою:

SSE Loss = Sum_for_all_points(
Square_of(
output_of_linear_equation_for_the_inputs — actual_output_from_the_data point
))

Міра оптимізації для LogReg визначається зовсім по-іншому. У функції SSE ми ставимо таке запитання:

If we use this line for fitting the training data, how much error will it make?

Розробляючи заходи для оптимізації LogReg, ми запитуємо:

If this line is the separator, how likely is it that we will get the distribution of classes that is seen in the training data?

Таким чином, результатом цього заходу є ймовірність. Математична форма вимірювальної функції використовує логарифми, що дало їй назву Log Likelihood (LL). Під час обговорення результатів ми побачили, що функція LogReg включає експоненціальні члени (члени з e, «збільшеними до» z). Логарифми допомагають ефективно працювати з цими експонентами.

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

Отже, ми маємо дві функції втрати: SSE для LinReg і NLL для LogReg. Зверніть увагу, що ці функції втрат мають багато назв, і вам слід ознайомитися з термінами.

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

Подальші деталі можна перевірити. Чому SSE? Як розраховується ймовірність? Ми не розглядали тут метод оптимізації, щоб уникнути додаткової математики. Однак ви повинні пам’ятати, що для оптимізації LogReg зазвичай потрібен метод ітераційного градієнтного спуску, тоді як LinReg зазвичай може використовувати швидке рішення закритої форми. Ми можемо обговорити ці та інші моменти в іншій статті.

Comparing Linear and Logistic Regression Republished from Source https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Часова мітка:

Більше від Консультанти з блокчейнів