Непонятного вида вызов np.array() в вызове функции кусочно-линейной регрессии
Start by preparing your data as list-likes of timestamps (independent variables) and values (dependent variables).
import numpy as np
t = np.arange(10)
v = np.array(
[2*i for i in range(5)] +
[10-i for i in range(5, 10)]
) + np.random.normal(0, 1, 10)
Данный код готовит данные для функции кусочно-линейной регрессии. Взят отсюда, вот описание функции.
Я новичек в numpy
, не могу понять, что получится если сложить два списка внутри вызова функции array
. Функция np.random.normal
, я так понял берёт 10 семплов стандартного распределения и поэлементно складывает их с той хренью, что внутри вызова array
. Внутри него, как я понял, создаются два списка [0, 2, 4, 6, 8]
и [5, 4, 3, 2, 1]
. Но я не могу найти в гугле, что будет, если использовать эти два списка внутри вызова array
с использованием оператора +
. Подскажите, что тут к чему.
Далее идёт следующее
Now, you're ready to import the piecewise() function and fit a piecewise linear regression.
from piecewise import piecewise
model = piecewise(t, v)
model is a FittedModel object. If you are at a shell, you can print the object to see the fitted segments domains and regression coefficients.
>>> model
FittedModel with segments:
* FittedSegment(start_t=0, end_t=5, coeffs=(-0.8576123780622642, 2.224791099812951))
* FittedSegment(start_t=5, end_t=9, coeffs=(10.975487672814133, -1.0722348284390741))
Здесь для сегментов графика из двух линейных уравнений вида y=kx+b вроде передаются две пары из смещения графика по оси y (b) и коэфициент наклона (k). Я ничего не перепутал? Далее
To see a plot, instead of getting a FittedModel, use piecewise_plot(). You may also use an existing FittedModel.
from piecewise import piecewise_plot
# using an existing FittedModel
piecewise_plot(t, v, model=model)
# fitting a model on the fly
piecewise_plot(t, v)
Вот выводимый график В этой части ничего не понятного нет, но он пригодится для понимания предыдущей части про смещение и коэффициент.