Пакеты Python для линейной регрессии Пакет NumPy


Расширенная линейная регрессия с моделями статистики



бет10/13
Дата07.12.2022
өлшемі86,03 Kb.
#55707
1   ...   5   6   7   8   9   10   11   12   13
Байланысты:
3 Реализация линейной регрессии в Python

Расширенная линейная регрессия с моделями статистики
Вы можете относительно легко реализовать линейную регрессию в Python, используя также пакет statsmodels. Обычно это желательно, когда есть потребность в более подробных результатах.
Процедура аналогична scikit-learn.
Шаг 1. Импортируйте пакеты
Сначала вам нужно сделать импорт. В дополнение к numpy вам необходимо импортировать statsmodels.api:
import numpy as np
import statsmodels.api as sm
Теперь у вас есть нужные пакеты.
Шаг 2. Предоставьте данные и преобразуйте входные данные
Вы можете предоставить входные и выходные данные так же, как и при использовании scikit-learn:
x = [ [0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35] ]
y = [4, 5, 20, 14, 32, 22, 38, 43]
x, y = np.array(x), np.array(y)
Массивы ввода и вывода созданы, но работа еще не сделана.
Вам нужно добавить столбец единиц к входным данным, если вы хотите, чтобы statsmodels вычисляла точку пересечения b0​. По умолчанию b_0b0​ не учитывается. Это всего лишь вызов одной функции:
x = sm.add_constant(x)
Вот как вы добавляете столбец единиц к x с помощью add_constant(). Он принимает входной массив x в качестве аргумента и возвращает новый массив со столбцом единиц, вставленных в начало. Вот как теперь выглядят x и y:
>>> print(x)
[ [ 1. 0. 1.]
[ 1. 5. 1.]
[ 1. 15. 2.]
[ 1. 25. 5.]
[ 1. 35. 11.]
[ 1. 45. 15.]
[ 1. 55. 34.]
[ 1. 60. 35.] ]
>>> print(y)
[ 4 5 20 14 32 22 38 43]
Вы можете видеть, что измененный x имеет три столбца: первый столбец из единиц (соответствующий b_0b0​ и заменяющий точку пересечения), а также два столбца исходных объектов.
Шаг 3. Создайте модель и подгоните ее
Модель регрессии, основанная на обычных методах наименьших квадратов, является экземпляром класса statsmodels.regression.linear_model.OLS. Вот как вы можете её получить:
model = sm.OLS(y, x)
Здесь нужно быть осторожным! Обратите внимание, что первый аргумент — это вывод, за которым следует ввод. Есть еще несколько необязательных параметров.
Чтобы найти дополнительную информацию об этом классе, посетите официальную страницу документации.
Как только ваша модель создана, вы можете применить к ней .fit():
results = model.fit()
Вызывая .fit(), вы получаете переменную results, которая является экземпляром класса statsmodels.regression.linear_model.RegressionResultsWrapper. Этот объект содержит много информации о регрессионной модели.


Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   13




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет