Я бы хотел больше понять гауссовскую регрессию процессов: я использую реализацию scikit-learn здесь и хочу уместить отдельные точки вместо того, чтобы уместить весь набор точек. Но результирующие альфа-коэффициенты должны оставаться такими же, например
gpr2 = GaussianProcessRegressor()
for i in range(x.shape[0]):
gpr2.fit(x[i], y[i])
должны совпадать с
gpr = GaussianProcessRegressor().fit(x, y)
Но при доступе к gpr2.alpha_
и gpr.alpha_
они не совпадают. Почему это так?
Действительно, я работаю над проектом, в котором возникают новые точки данных. Я не хочу добавлять массивы x, y и снова помещать их на весь набор данных, так как это очень интенсивно по времени. Пусть x будет размером n, тогда у меня будет:
n + (n-1) + (n-2) + ... + 1 € O (n ^ 2) фитингов
если учесть, что сама подгонка является квадратичной c (поправьте меня, если я ошибаюсь), сложность времени выполнения должна быть в O (n ^ 3). Было бы более оптимальным, если бы я сделал одну подгонку по n точкам:
1 + 1 + ... + 1 = n € O (n)