Приклад машинного навчання з Python: множинна лінійна регресія
Множинна лінійна регресія відрізняється від простої лінійної регресії тим, що вона застосовується до кількох ознак, а не лише до однієї. У цьому прикладі машинного навчання ми побачимо множинну лінійну регресію, отже, з більшою кількістю функцій у вхідних даних.
Перш ніж продовжити, я рекомендую вам прочитати три короткі статті, де ви знайдете різні визначення:
- Що таке машинне навчання, що воно таке та його цілі
- Типи машинного навчання
- Приклад машинного навчання з Python: проста лінійна регресія
Оскільки ми будемо використовувати Python, якщо у вас його ще немає на ПК, прочитайте також Як встановити Python на Microsoft Windows
Для множинної лінійної регресії ми також будемо використовувати scikit-вчитися, оскільки він є надзвичайно гнучким, роблячи все дійсним, що ми бачили вприклад простої лінійної регресії.
Тоді ми матимемо доступний метод відповідати за навч.-метод передбачати для передбачення. Ми також будемо використовувати клас знову Лінійна регресія.
Також з функцією make_regression ми створимо тестовий набір даних на основі наданих параметрів. Таким чином базова структура готова до виконання лінійної регресії. Ми нагадаємо про make_regression sfruttando l’assegnazione multipla caratteristica di Python, а саме:
x, y = make_regression (n_samples = 500, n_features = 5, noise = 10)
Отже, набір даних матиме такі характеристики: 500 значень, організованих у 5 функціях, і ми додаємо шум, різницю помилок 10, щоб набір даних не здавався надто регулярним.
Давайте тепер розділимо набір даних на частину, корисну для навчання, і частину, корисну для тестування. Ми могли б придумати 80 зразків для тестування, а решта – для навчання. Для цього ми використовуємо функцію train_test_split який розділяє два списки x e y in x_train, y_train e x_test, y_test
з sklearn.model_selection імпортувати train_test_split
x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 80)
в результаті матимемо
((420, 5), (80, 5), (420,), (80,))
Тепер ми переходимо до регресії, яка відбувається повністю аналогічно простій лінійній регресії, але без переробити оскільки в цьому випадку make_regression.
з sklearn.linear_model імпорт LinearRegression
модель = лінійна регресія ()
model.fit (x_train, y_train)
Нижче наведено обчислені параметри для регресії, а також коефіцієнти та відрізок
model.coef_ приймає таке значення
масив ([90.65, 23.45, 66.43, 42.54, 24.35])
model.intercept_ приймає таке значення
-0.4564
За допомогою навченої моделі ми можемо зробити прогноз на основі тестових даних і оцінити його за допомогою деяких показників:
прогноз = model.predict (x_test)
середня_абсолютна_помилка (y_test, прогноз)
6.964857
re_score (y_test, прогноз)
0.9876
Хоча ми використовували дані в освітніх цілях, результати показують, що наша модель працює. Він отримав освіту, здатний робити прогнози, а також зафіксував значення метрики R-квадрат практично на максимальному рівні.