Межа Прийняття Рішення
Побудуємо результати логістичної регресії. Розглянемо наступний приклад із двома ознаками:
Після побудови логістичної регресії можна зобразити межу рішення. Вона показує область кожного класу, де нові зразки прогнозуються як цей клас. Наприклад, ось межа рішення логістичної регресії, застосованої до наведених вище даних:
Можна побачити, що ця лінія ідеально розділяє два класи. Коли таке відбувається, набір даних називають лінійно роздільним. Однак це трапляється не завжди. Що, якщо набір даних буде таким:
Вище наведено межу прийняття рішення для дещо іншого набору даних. Тут дані не є лінійно відокремлюваними; отже, передбачення, зроблені логістичною регресією, є недосконалими. На жаль, за замовчуванням логістична регресія не може передбачати складніші межі прийняття рішення, тому це найкраще передбачення, яке ми можемо отримати.
Але пам'ятайте, що логістична регресія походить від лінійної регресії, яка має рішення для проблеми надто простої моделі. Це рішення — поліноміальна регресія, і ми можемо використати її рівняння для обчислення z, щоб отримати складнішу форму межі прийняття рішення:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Так само, як і в поліноміальній регресії, ми можемо використати трансформер PolynomialFeatures, щоб додати поліноміальні члени до наших ознак — це допомагає моделі вивчати складніші закономірності.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Цей рядок трансформує початкові вхідні ознаки в X, додаючи:
- Квадратичні члени (наприклад, x2);
- Члени взаємодії (наприклад, x1⋅x2, якщо є декілька ознак).
Наприклад, якщо X спочатку має дві ознаки: [x1,x2], то після застосування PolynomialFeatures(2, include_bias=False) ви отримаєте: [x1,x2,x12,x1x2,x22]
Це дозволяє моделям, таким як логістична регресія, враховувати нелінійні залежності та створювати більш гнучкі, криволінійні межі прийняття рішення. Однак, якщо ступінь полінома занадто велика, модель може надто добре підлаштуватися під тренувальні дані — це явище називається overfitting (перенавчанням). Тому зазвичай спочатку пробують менші ступені та ретельно оцінюють модель.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.17
Межа Прийняття Рішення
Свайпніть щоб показати меню
Побудуємо результати логістичної регресії. Розглянемо наступний приклад із двома ознаками:
Після побудови логістичної регресії можна зобразити межу рішення. Вона показує область кожного класу, де нові зразки прогнозуються як цей клас. Наприклад, ось межа рішення логістичної регресії, застосованої до наведених вище даних:
Можна побачити, що ця лінія ідеально розділяє два класи. Коли таке відбувається, набір даних називають лінійно роздільним. Однак це трапляється не завжди. Що, якщо набір даних буде таким:
Вище наведено межу прийняття рішення для дещо іншого набору даних. Тут дані не є лінійно відокремлюваними; отже, передбачення, зроблені логістичною регресією, є недосконалими. На жаль, за замовчуванням логістична регресія не може передбачати складніші межі прийняття рішення, тому це найкраще передбачення, яке ми можемо отримати.
Але пам'ятайте, що логістична регресія походить від лінійної регресії, яка має рішення для проблеми надто простої моделі. Це рішення — поліноміальна регресія, і ми можемо використати її рівняння для обчислення z, щоб отримати складнішу форму межі прийняття рішення:
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Так само, як і в поліноміальній регресії, ми можемо використати трансформер PolynomialFeatures, щоб додати поліноміальні члени до наших ознак — це допомагає моделі вивчати складніші закономірності.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Цей рядок трансформує початкові вхідні ознаки в X, додаючи:
- Квадратичні члени (наприклад, x2);
- Члени взаємодії (наприклад, x1⋅x2, якщо є декілька ознак).
Наприклад, якщо X спочатку має дві ознаки: [x1,x2], то після застосування PolynomialFeatures(2, include_bias=False) ви отримаєте: [x1,x2,x12,x1x2,x22]
Це дозволяє моделям, таким як логістична регресія, враховувати нелінійні залежності та створювати більш гнучкі, криволінійні межі прийняття рішення. Однак, якщо ступінь полінома занадто велика, модель може надто добре підлаштуватися під тренувальні дані — це явище називається overfitting (перенавчанням). Тому зазвичай спочатку пробують менші ступені та ретельно оцінюють модель.
Дякуємо за ваш відгук!