Практичний посібник з регресійного аналізу даних
Регресійний аналіз є одним із найбільш популярних та потужних методів аналізу даних. Він дозволяє оцінити взаємозв'язки між змінними та зробити прогнози на основі цих зв'язків. Регресійний аналіз широко застосовується у різних сферах - від економіки та фінансів до медицини та соціології. У цій статті детально розглянемо основні види регресійного аналізу, етапи його проведення, інтерпретацію результатів та практичні приклади використання цього методу.
Регресійний аналіз загалом може успішно застосовуватися на вирішення дуже багатьох прикладних завдань, причому, у різних областях. Таким чином, з успіхом можна моделювати можливі пожежі з метою виявлення зон найбільшого ризику, а також для визначення факторів, які мають найбільше впливають на їх виникнення та поширення. Можна створити робочу модель, яка покаже фахівцям зменшення ймовірності загоряння ділянки залежно від наявності таких чинників, як необхідна кількість відділів пожежної охорони, оптимальний час їхнього реагування або реальна цінність власності на ділянці.
Регресійний аналіз у R та Python
Регресійний аналіз можна ефективно проводити з використанням мов програмування R та Python. Розглянемо основні бібліотеки та приклади реалізації.
Бібліотеки для регресійного аналізу
У R популярні такі бібліотеки як stats, caret, glmnet.
У Python часто використовують statsmodels, scikit-learn, scipy.
Покрокова реалізація лінійної регресії в R
У R лінійну регресію можна побудувати так:
- Завантажити дані за допомогою read.csv()
- Розділити дані на навчальну та тестову вибірки за допомогою sample()
- Побудувати модель лінійної регресії за допомогою lm()
- Проаналізувати якість моделі за допомогою summary()
- Зробити прогнози на тестовій вибірці за допомогою predict()
Покрокова реалізація логістичної регресії у Python
У Python логістичну регресію можна реалізувати так:
- Завантажити дані за допомогою pandas
- Розділити дані на навчальну та тестову вибірки за допомогою train_test_split
- Навчити модель логістичної регресії зі sklearn
- Оцінити якість моделі на тестовій вибірці
- Зробити прогнози для нових даних
Візуалізація результатів
Для візуалізації результатів регресійного аналізу можна використовувати бібліотеки ggplot2 у R та matplotlib у Python. Це допоможе наочно інтерпретувати отримані моделі.
Приклад лінійної регресії R
Розглянемо конкретний приклад побудови лінійної регресії в R. Припустимо, у нас є дані про продаж та витрати на рекламу деякого продукту за останні місяці. Нам потрібно збудувати модель залежності обсягу продажів від рекламного бюджету.
- Завантажуємо дані R за допомогою команди read.csv()
- Поділяємо дані на навчальну та тестову вибірки за допомогою sample()
- Будуємо модель лінійної регресії за допомогою lm()
- Аналізуємо результати сумару() та іншими інструментами
- Робимо прогноз та оцінюємо його точність на тестовій вибірці
Таким чином, за кілька кроків ми отримуємо робочу модель лінійної регресії R.
Приклад логістичної регресії у Python
Розглянемо застосування логістичної регресії у Python на практичному прикладі. Припустимо, перед банком стоїть завдання побудувати модель оцінки кредитного ризику на основі даних про попередніх клієнтів.
- Завантажуємо дані в Python за допомогою Pandas
- Поділяємо дані на навчальну та тестову вибірки
- Навчаємо модель логістичної регресії зі sklearn
- Аналізуємо якість моделі та значимість ознак
- Використовуємо модель для оцінки ризику за новими даними
Логістична регресія дозволяє ефективно вирішувати завдання класифікації в Python.
Перевірка припущень у регресії
Перед застосуванням регресії важливо переконатися, що її припущення не порушено. Наприклад, необхідно перевірити:
- Лінійність зв'язку між змінними
- Відсутність мультиколінеарності
- Однорідність дисперсії залишків
- Нормальність розподілу залишків
У R та Python існують спеціальні інструменти для перевірки цих умов перед побудовою регресійної моделі.
Множинний регресійний аналіз
Множинна регресія використовується, коли залежну змінну треба описати за допомогою кількох предикторів. Наприклад, обсяг продажів може залежати від ціни, рівня реклами, додаткового асортименту та інших факторів.
Множинна регресія дозволяє оцінити вплив кожного з предикторов при фіксованому значенні інших чинників.
Регулярування у регресії
Якщо в регресійній моделі занадто багато предикторов, виникає проблема перенавчання та нестійкості коефіцієнтів. Для боротьби із цим застосовують регуляризацію.
Популярні методи регуляризації: гребенева регресія, Lasso, еластична мережа. Вони дозволяють отримати більш прості та інтерпретовані моделі.
Побудова моделі регресії в R
R для побудови моделі регресії використовується функція lm(). Їй передаються дані та формула моделі. Наприклад:
Тут y – залежна змінна, x1 та x2 – предиктори. Функція lm() повертає об'єкт моделі, на підставі якого можна робити прогнози та аналізувати якість моделі.
Аналіз якості моделі в R
Для аналізу якості побудованої регресійної моделі R використовується функція summary():
Вона виводить статистичну значущість коефіцієнтів, R-квадрат, скоригований R-квадрат, стандартну помилку регресії, F-статистику та інші показники.
Валідація моделі регресії
Щоб оцінити прогнозну здатність регресійної моделі, використовують валідацію на тестовій вибірці, яка не брала участь у навчанні моделі. У R це можна зробити так:
Тут ми робимо прогнози на тестових даних та порівнюємо їх із реальними значеннями цільової ознаки.
Відбір ознак у регресії
Щоб виключити неінформативні ознаки моделі регресії, використовують відбір ознак. R для цього є функція step():
Вона послідовно виключає найменш значущі предиктори доки залишаться лише статистично значущі.
Регулярування в R
Для регуляризації регресійних моделей R використовуються функції ridge() і lasso() з бібліотеки glmnet. Вони дозволяють боротися з перенавчанням та відбирати найважливіші ознаки.
Візуалізація регресії
Візуалізувати результати регресійного аналізу R можна за допомогою бібліотеки ggplot2. Наприклад, для побудови графіка залишків:
ggplot(data, aes(x=y_pred, y=resid)) + geom_point()
Перетворення даних у регресії
Для покращення якості регресійної моделі часто потрібно попередньо перетворити дані. Наприклад, застосувати логарифмування для сильно косих розподілів або масштабування для приведення ознак одного масштабу.
R для цього зручно використовувати pipe %>% з датасета magrittr. Наприклад:
data %>% mutate(log_y = log(y)) %>% scale() -> scaled_data
Тут ми взяли логарифм цільової ознаки та масштабували всі ознаки перед побудовою моделі.
Перевірка припущень регресії
Перш ніж використовувати регресійну модель, важливо переконатися, що її припущення не порушено.У R для цього є спеціальні інструменти:
- gvlma для перевірки лінійності та гомоскедастичності
- car для аналізу мультиколлінеарності
- nortest для перевірки нормальності залишків
Ці пакети дозволяють діагностувати типові проблеми регресійних моделей R.
Інтерпретація регресії у R
Щоб правильно інтерпретувати результати регресії R, потрібно звернути увагу на:
- Знак та величину коефіцієнтів
- P-value для перевірки значущості
- Довірчі інтервали коефіцієнтів
- F-статистику для перевірки адекватності моделі
Ці характеристики дозволяють зрозуміти внесок предикторів та якість отриманої моделі регресії.
Прогнозування у регресії
Побудовану регресійну модель можна використовувати для прогнозування, підставляючи нові дані. R:
newdata = data.frame(x1=. x2=. ) predictions = predict(model, newdata)
Тут ми створюємо кадр з даними для передбачення та використовуємо функцію predict() для розрахунку прогнозів.
Що таке: Регресія
Регресія - це статистичний метод, який використовується для оцінки взаємозв'язків між змінними. Він дозволяє аналітикам зрозуміти, як змінюється типове значення залежної змінної, коли будь-яка з незалежних змінних змінюється, тоді як інші незалежні змінні залишаються фіксованими. Цей метод широко застосовується у різних галузях, включаючи економіку, біологію, інженерію та соціальні науки, що робить його фундаментальним інструментом в аналіз даних та наука про дані.
Заголовок оголошення
Опис оголошення. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Типи регресії
Існує кілька типів методів регресії, кожен із яких підходить для різних типів даних та дослідницьких питань. Найбільш поширені типи включають лінійну регресію, логістична регресія, поліноміальна регресія та гребенева регресія. Лінійна регресія використовується, коли зв'язок між залежною та незалежною змінними лінійна, тоді як логістична регресія застосовується, коли залежна змінна категоріальна. Поліноміальна регресія може моделювати нелінійні зв'язки, а гребенева регресія - це метод, який використовується для вирішення проблеми мультиколінеарності в моделях лінійної регресії.
Пояснення лінійної регресії
Лінійна регресія – найпростіша форма регресійного аналізу. Вона передбачає лінійний зв'язок між залежною змінною та однією або декількома незалежними змінними. Модель представлена рівнянням Y = a + bX + e, де Y - залежна змінна, X - незалежна змінна, a - відрізаний відрізок, b - нахил, а e - помилка. Цей метод широко використовується завдяки своїй простоті та інтерпретованості, що робить його популярним вибором для передиктивного моделювання.
Огляд логістичної регресії
Логістична регресія - це статистичний метод, який використовується для завдань бінарної класифікації, де результатом є двійкова змінна (0 або 1). На відміну від лінійної регресії, логістична регресія передбачає ймовірність того, що задана вхідна точка належить до певної категорії. Логістична функція, або функція сигмоїди, використовується для моделювання взаємозв'язку, перетворюючи вихід у значення між 0 і 1.Цей метод особливо корисний у таких галузях, як медицина та маркетинг, де розуміння ймовірності настання події має вирішальне значення.
Поліноміальна регресія Insights
Поліноміальна регресія розширює лінійну регресію, що дозволяє моделювати нелінійні відносини. Додаючи поліноміальні члени до рівняння регресії, аналітики можуть вловлювати більш складні закономірності даних. Наприклад, модель квадратичної регресії включає квадратний член незалежної змінної, що дозволяє отримати параболічний зв'язок. Ця гнучкість робить поліноміальну регресію цінним інструментом для фахівців за даними роботи з наборами даних, які демонструють нелінійні тенденції.
Заголовок оголошення
Опис оголошення. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Регресія гребеня та мультиколінеарність
Гребенева регресія — це тип лінійної регресії, який включає член регуляризації для запобігання перенавчанню, особливо у випадках, коли серед незалежних змінних присутня мультиколлінеарність. Додаючи штраф, рівний квадрату величини коефіцієнтів, гребенева регресія допомагає стабілізувати оцінки та покращити передбачувану ефективність моделі. Цей метод має значення у багатовимірних наборах даних, де традиційна лінійна регресія може забезпечити надійних результатів.
Застосування регресійного аналізу
Регресійний аналіз широко використовується у різних галузях. В економіці він допомагає прогнозувати економічні показники, такі як ВВП та рівень інфляції. У охороні здоров'я регресійні моделі використовуються для прогнозування результатів лікування пацієнтів з урахуванням змінних лікування.У маркетингу компанії використовують регресію для аналізу поведінки споживачів та оптимізації стратегій ціноутворення. Універсальність регресії робить її критично важливим компонентом аналізу даних у багатьох галузях.
Припущення регресійного аналізу
Щоб регресійний аналіз дав достовірні результати, мають бути виконані певні припущення. До них відносяться лінійність, незалежність, гомоскедастичність та нормальність залишків. Лінійність передбачає, що зв'язок між залежними та незалежними змінними лінійна. Незалежність вимагає, щоб спостереження були незалежними один від одного. Гомоскедастичність означає, що залишки мають постійну дисперсію, а нормальність передбачає, що залишки розподілені нормально. Порушення цих припущень може призвести до зміщених оцінок та ненадійних прогнозів.
Оцінка моделей регресії
Оцінка продуктивності регресійних моделей має вирішальне значення задля забезпечення їх ефективності. Звичайні метрики, що використовуються для цієї мети, включають R-квадрат, скоригований R-квадрат, середню абсолютну помилку (MAE) та середньоквадратичну помилку (RMSE). R-квадрат вказує на частку дисперсії в залежній змінній, яку можна пояснити незалежними змінними, в той час як MAE і RMSE дають уявлення про середні помилки прогнозування. Ці метрики допомагають аналітикам оцінювати точність та надійність своїх регресійних моделей.
Висновок щодо методів регресії
Підсумовуючи, можна сказати, що регресія — це потужний статистичний інструмент, що дозволяє аналітикам досліджувати взаємозв'язки між змінними та робити прогнози на основі даних.Маючи у своєму розпорядженні різні типи методів регресії, фахівці можуть вибрати найбільш підходящий метод залежно від характеру своїх даних та дослідницьких питань. Розуміння базових припущень та метрик оцінки має важливе значення для ефективного застосування та інтерпретації регресійного аналізу у науці про дані.
Заголовок оголошення
Опис оголошення. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Що таке лінійна регресія: повний гайд від robot_dreams
Сьогодні ми розглянемо роботу моделі машинного навчання у завданнях з лінійною регресією: що для цього потрібно, як вважається ефективність такої моделі та як модель взагалі функціонує.
Де застосовується лінійна регресія
Завдання простої лінійної регресії зустрічаються в машинному навчанні досить часто. Наприклад, коли потрібно передбачити деяке числове значення, скажімо, спрогнозувати кількість продажів товару в наступному році або вказати приблизну вартість житла за заданими параметрами-критеріями (близько розташування до метро, району міста, розміру житлової площі та ін.).
Лінійні моделі дуже наочні, і проблема перенавчання для них легко вирішувана. З цієї причини вони й досі не втрачають своєї актуальності.
Формула лінійної регресії
Загалом лінійна модель виглядає як об'єкт x = (x1, x2, . xd) із набором ознак із загальним числом d. Формула лінійної регресії d . Формула лінійної регресії:
- Y - Це залежна змінна (відгук), яку ми намагаємося передбачити;
- β₀, β₁, β₂, . βₖ - це коефіцієнти регресії (ваги), які множаться на відповідні предиктори X₁, X₂, . Xₖ. Вага предикторів визначають, як кожен предиктор впливає на залежну змінну. Замість терміну «предиктор» можуть використовуватись інші поняття: "незалежна змінна", "фактор", "вхідні дані" та ін.
- ε — це розбіжність між передбаченими значеннями та фактичними, нормально розподілена випадкова величина (про помилки поговоримо трохи нижче).
У загальному вигляді лінійна модель виглядає як функція:
- w0 - Вільний коефіцієнт або зрушення (він же bias);
- wJ - Ваги або коефіцієнти.
Для зручності нотації лінійної моделі можна зробити припущення, що в нашій вибірці завжди є одиничний константний ознака. Це дозволить нам вважати, що коефіцієнт за нього це і буде вільний w0 . Таке припущення свідчить, що модель можна записувати просто як скалярний твір а(x)= , що є зручним для аналізу.
Другий доданок можна розглядати як скалярний добуток вектора-стовпця ваг на вектор-стовпець ознак. При цьому слід мати на увазі, що ознаки мають бути речовими і незалежними, вони повинні впливати на результат лінійно. Для лінійної моделі брати довільну вибірку нераціонально – результат, швидше за все, буде посереднім. Дані потрібно готувати, щоб модель працювала більш ефективно та точно. Наприклад, якщо ми хочемо побудувати лінійну модель для передбачення ціни будинку, то наша вибірка має включати будинки з різних регіонів, з різною площею, кількістю кімнат і т.д. Якщо ж ми візьмемо довільну вибірку, то вона може містити занадто багато будинків з одного регіону або з однаковими характеристиками, що може призвести до того, що модель погано передбачатиме ціну будинків з інших регіонів чи з іншими характеристиками. Якщо дані містять шум або непотрібну інформацію, модель може «плутатися» і давати неправильні прогнози.Тому на етапі попередньої обробки даних потрібно прибирати такі ознаки, залишаючи лише найважливіші та інформативні. Предиктори можуть мати різні масштаби, що вплине на процес навчання та інтерпретацію коефіцієнтів. Якщо ваші предиктори мають різні масштаби, може знадобитися виконання шкалювання, щоб привести їх до одного масштабу. Для цього використовуйте стандартизацію або нормалізацію. Коли необхідне шкалювання Припустимо, у нас є набір даних про продаж автомобілів: Якщо ми не масштабуватимемо ці змінні, то модель лінійної регресії приділятиме більше уваги ціні автомобіля, ніж кількості проданих автомобілів. Це з тим, що вартість автомобіля має ширший діапазон значень. Що означає масштабувати у контексті лінійної регресії? Наприклад, ми можемо розділити ціну автомобіля на 1000, а кількість проданих автомобілів — на 100. Після масштабування обидві змінні матимуть діапазон значень від 0 до 1. Це зробить модель більш стійкою до шумів та аномалій, а також покращить її точність. Приклад шкалювання Ось приклад шкалювання ознак з використанням стандартизації (Z-перетворення) у Python за допомогою бібліотеки scikit-learn: Цей метод перетворює кожну ознаку так, щоб він мав середнє значення 0 та стандартне відхилення 1. Потім ми навчаємо модель лінійної регресії на відмасштабованих даних та оцінюємо продуктивність моделі. Шкалювання ознак допомагає моделі більш ефективно навчатися і забезпечує інтерпретованість коефіцієнтів, оскільки вони будуть важливість кожної ознаки в одних і тих самих одиницях виміру. Один із популярних методів підготовки інформації — бінаризація даних, тобто процес перетворення кількісних ознак на бінарні (двійкові) ознаки на основі певного порогового значення.У результаті бінаризації ознак кожне значення або стає 0, якщо воно менше порогового значення, або 1, якщо воно більше або дорівнює порогу. Приклад бінаризації в Python за допомогою бібліотеки NumPy Бібліотека встановлюється командою pip install numpy . Припустимо, ми маємо справу з кількісною ознакою AGE («Вік»), і ви хочете перетворити його на бінарну ознаку «Старше 35 років». Зробити це можна так: У цьому прикладі 1 означає, що вік старший або дорівнює 35 років, а 0 - молодше 35 років. Label Encoding (Кодування міток) застосовується у завданнях, коли потрібно представити категорії (наприклад, текстові чи дискретні значення) у вигляді чисел, щоб їх можна було використовувати у алгоритмах машинного навчання. Кожній унікальній категорії надається унікальне ціле число. Приклад використання Label Encoding у задачі лінійної регресії Припустимо, ми аналізуємо дані про продажі нерухомості, і ми маємо категоріальну ознаку «Клас житла» з категоріями, впорядкованими за рівнем розкоші: «Економ», «Стандарт», «Преміум». У цьому випадку можна використовувати Label Encoding для перетворення цієї ознаки на числовий формат, щоб лінійна регресія могла працювати з ним. Приклад коду Python з використанням бібліотеки scikit-learn: Для перетворення категоріальних змінних на числові можна застосовувати метод One-Hot encoding. Його алгоритм наступний: Приклад One-Hot encoding із використанням бібліотеки Python pandas Приклад реалізації програмно: Цей код демонструє застосування One-Hot encoding із використанням бібліотеки pandas. Ми створили DataFrame з категоріальною змінною "Колір", після чого використовували функцію pd.get_dummies() для виконання One-Hot encoding. Результат: Колір_Зелений Колір_Червоний Колір_Синій Для створення та навчання лінійної регресійної моделі важлива не лише підготовка даних, а й визначення моделі за допомогою методу LinearRegression() - Саме його ми викликали в прикладах вище. Давайте його розглянемо докладніше. Припустимо, у нас є дані про площу будинків та їхню ціну, і ми хочемо вибудувати модель для прогнозування цін на будинки на основі площі та числа кімнат. У цьому прикладі ми будемо використовувати згенеровані дані для наочності. Метод LinearRegression() — це виклик конструктора класу LinearRegression, який визначено в бібліотеці scikit-learn (sklearn) . Цей конструктор створює примірник моделі лінійної регресії. Строго кажучи, LinearRegression() — це абстрактна сутність, математична модель, що описує лінійну залежність. Метод лінійної регресії є кілька параметрів, які можна налаштувати для визначення поведінки моделі. Ось деякі з найчастіше використовуваних: Результат прогнозування Насправді дані мають бути завантажені. Зазвичай їх експортують із зовнішніх джерел (баз даних, CSV-файлів, API, веб-сервісів та ін.). Вибір методу завантаження залежить від джерела даних та формату файлу з даними, виходячи з вашого конкретного завдання. Давайте розглянемо кілька прикладів завантаження даних у Python: Завантаження даних із CSV-файлу з використанням бібліотеки pandas: Завантаження даних із зовнішніх джерел, таких як API: Завантаження даних із Excel-файлу з використанням бібліотеки pandas: Для оцінки продуктивності моделі та визначення того, наскільки точно модель передбачає числові значення (наприклад, цільову змінну) на нових даних, застосовується ряд метрик. Середньоквадратична помилка Найбільш популярною метрикою у завданнях регресії є середньоквадратична помилка (Mean Squared Error, MSE). MSE вимірює середньоквадратичне відхилення між фактичними значеннями та передбаченими значеннями моделі. Великі помилки роблять більший внесок у цю метрику. Модифікованим варіантом цієї метрики є корінь із середньої квадратичної помилки (RMSE). Оскільки RMSE має таку ж розмірність, як і вихідні дані, вона краще інтерпретована. RMSE вимірює середнє абсолютне відхилення між фактичними значеннями та передбаченими значеннями моделі. Вона є популярною метрикою у завданнях регресії та дає зрозуміле уявлення про те, наскільки точно модель передбачає значення цільової змінної. Чим менше значення RMSE, краще модель відповідає даним. Ця метрика є особливо актуальною, коли потрібно боротися з викидами. RMSE штрафує великі помилки (квадратично) сильніше, ніж маленькі, і таким чином робить модель більш чутливою до викидів. Викид (outlier) — це значення даних, яке істотно відрізняється від інших значень у наборі даних.Викиди можуть бути як аномаліями (помилками чи аномальними подіями), так і реальними, але незвичайними значеннями. Припустимо, що у нас є дані про зарплати (Y) та досвід роботи (X) для групи працівників: У цьому наборі даних значення зарплат 150 і 200 тисяч доларів є викидами, оскільки вони значно вищі за решту зарплат і не відповідають загальному тренду. Ці викиди можуть спотворити модель лінійної регресії і призвести до неправильних коефіцієнтів регресії та передбачень. Очевидно, що слід застосувати методи обробки даних: Тепер ви маєте уявлення про один із найважливіших підходів до прогнозування в машинному навчанні та статистиці. Ми розповіли про головні принципи роботи лінійної регресії, підготовку даних для роботи моделі та деякі метрики для оцінки ефективності роботи. Лінійні моделі швидко навчаються та стійкі до шуму в даних, але в завданнях з нелінійною залежністю вони слабкі та мало ефективні. Вони чутливі до викидів і за їх наявності можуть помилятися в прогнозах.Підготовка даних для моделі
Шкалювання
from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split # Генеруємо приклад даних (тут X - ознаки, y - цільова змінна) X, y = . # Розділяємо дані на навчальний і тестовий набори X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # Створюємо об'єкт стандартизації scaler = StandardScaler() # Застосовуємо стандартизацію до навчальних даних = scaler.fit_transform(X_train) # Застосовуємо ту ж стандартизацію до тестових даних (без повторного навчання) X_test_scaled = scaler.transform(X_test) # Створюємо та навчаємо модель лінійної регресії на відмасштабованих даних model = LinearRegression() ) # Оцінюємо продуктивність моделі score = model.score(X_test_scaled, y_test) # Отримуємо коефіцієнти регресії coefficients = model.coef_ intercept = model.intercept_ print("Продуктивність моделі (R-squared):", score) print("Коефіцієнти регресії:", coefficients) print("Вільний член:", intercept)
Бінарізація даних
import numpy as np # Створюємо масив з віком ages = np.array([20, 25, 32, 35, 41, 46, 52, 53, 62]) # Задаємо поріг для бінаризації threshold = 35 # Застосовуємо бінаризацію = binary >= threshold).astype(int) print(binary_ages)
Label Encoding
from sklearn.preprocessing import LabelEncoder from sklearn.linear_model import LinearRegression # Створюємо набір даних з ознаками, включаючи категоріальний "Клас житла" data = < 'Площа': [100, 150, 120, 80, 200], ' 'Економ', 'Стандарт', 'Преміум', 'Економ', 'Преміум'], 'Ціна': [200000, 300000, 350000, 150000, 450000] ># Ініціалізуємо LabelEncoder Клас житла" в числовий формат data['Клас житла'] = label_encoder.fit_transform(data['Клас житла']) # Розділяємо дані на ознаки та цільову змінну X = data[['Площа', 'Клас житла']] y = data['Ціна'] # Створюємо та навчаємо лінійну регресію model = LinearRegression() model.fit( X, y) # Робимо прогноз predicted_prices = model.predict(X) print(predicted_prices)
One-Hot encoding
import pandas as pd # Створюємо датафрейм з категоріальними змінними data = df = pd.
Програмна реалізація моделі лінійної регресії
import numpy as np from sklearn.linear_model import LinearRegression # Створюємо згенеровані дані (насправді дані повинні бути завантажені) # Площа будинків у квадратних метрах X_area = np.array([130, 150, 158, 175, 42, 8 , 133, 158]) # Кількість кімнат у будинку X_rooms = np.array([3, 2, 3, 4, 2, 3, 4, 5, 3, 3]) # Ціни на нерухомість y = np.array([ 245000, 312000, 279000, 308000, 199000, 219000, 405000, 324000, 319000, 255000]) # Створюємо об'єкт моделі лінійної регресії model = LinearRegression() # Навчаємо модель на даних # Об'єднуємо два предиктори в одну матрицю X = np.column_stack((X_area, X_rooms)) model.fit(X, y) # Тепер модель навчена і може робити прогнози # Давайте спрогнозуємо ціну для будинку площею 250 кв. метрів та 8 кімнатами house_area = 250 house_rooms = 8 predicted_price = model.predict(np.array([[house_area, house_rooms]])) print(f'Зазначена ціна для будинку площею кв. метрів та кімнатами: $')
Способи завантаження даних
import pandas as pd # Завантаження даних з файлу CSV data = pd.read_csv('ім'я_файлу.csv')
import requests import pandas as pd # Запит даних з веб-API response = requests.get('https://api.example.com/data') data = pd.read_json(response.text)
import pandas as pd # Завантаження даних з Excel-файлу data = pd.read_excel('ім'я_файлу.xlsx')
Вимірювання помилки у завданнях регресії
Викиди в даних
Висновок
