загрузить узлы интерполяции rfb - PullRequest
0 голосов
/ 06 марта 2020

У меня возникают трудности с пониманием того, как работает система, использующая Rbf-интерполяцию.

Система в основном набирает 50 баллов (A,B), которые сопоставляются с другими 50 баллами (X,Y) Затем обучается двунаправленная итерполяция, поэтому новые (X,Y) точки могут быть преобразованы в (A,B) и наоборот.

from scipy.interpolate import Rbf

# training of the model
Ai = Rbf(X, Y, A)
Bi = Rbf(X, Y, B)
Xi = Rbf(A, B, X)
Yi = Rbf(A, B, Y)

В результате Ai, Bi, Xi, Yi будет scipy.interpolate.rbf.Rbf объектами, которые можно вызывать для предсказания

# now given new (X,Y) points I can calculate the corresponding interpolated (A,B) coords
newX, newY = (5, 2)
pred_A = Ai(newX, newY)
pred_B = Bi(newX, newY)

# same for given new `(A,B)` points, I can calculate the corresponding interpolated `(X,Y)` coords
newA, newB = (5, 2)
pred_X = Xi(newA, newB)
pred_Y = Yi(newA, newB)

Каждая из этих функций интерполяции имеет внутри список узлов, который представляет собой коэффициенты, применяемые к каждому ядру rbf, и представляет собой список из 50 элементов

Теперь я хочу сохранить эту модель в файл, поэтому позже может быть использован для прогнозов. Поэтому я сохраняю узлы каждого из предикторов в кадре данных.

model = pd.DataFrame(np.array((Ai.nodes, Bi.nodes, Xi.nodes, Yi.nodes)).T,
                     columns=['Ai', 'Bi', 'Xi', 'Yi'])
model.to_csv('model.csv', index=False)

Теперь в другой программе я хочу загрузить эти узлы из файла csv, создать интерполяцию rbf и передать ее этим узлам. Но я не могу найти метод или способ, как это сделать.

Похоже, я не могу создать пустую интерполяцию и передать ее позже с данными, и я не вижу способ установки узлов в существующая rbf-интерполяция.

Есть ли способ, если у меня есть узлы обученного объекта rbf-интерполяции, чтобы создать его снова без исходных обучающих данных?

1 Ответ

0 голосов
/ 07 марта 2020

Нет поддерживаемого способа сделать это.

Вы можете просмотреть Rbf.__init__ и сохранить достаточно из существующего интерполятора, а затем восстановить его, но это не гарантирует, что не сломается позже. YMMV

...