Согласно документам, detrend
просто удаляет соответствие линии наименьших квадратов из данных. Когда вы используете type='constant'
, это еще проще, поскольку просто удаляет среднее значение:
Если type == 'constant'
, вычитается только среднее значение data .
Исходный код подтверждает это. После проверки входных данных все вычисления выполняются в одну строку (scipy/signal/signaltools.py
, строка 3261 ):
ret = data - np.expand_dims(np.mean(data, axis), axis)
Самый простой способ получить вычтенные означает, что нужно выполнить вычисление вручную, учитывая, насколько это просто.
mean = np.mean(feature, axis=-1, keepdims=True)
detrended = feature - mean
Вы можете сохранить среднее значение в файл или сделать с ним все, что захотите. Чтобы «повторить», просто добавьте среднее значение назад:
point = prediction + mean
Если у вас были какие-то другие манипуляции, которые вас беспокоили, например, нормализация до максимума, вы могли бы справиться с этим таким же образом.
max = np.amax(detrended, axis=-1, keepdims=True)
detrended /= max
В этом случае вам необходимо умножить перед смещением для повторного выполнения:
point = prediction * max + mean
Простые манипуляции, подобные этой, легко воспроизвести вручную. Более сложную функцию может быть сложно воспроизвести надежно, но она также с большей вероятностью вернет используемые ей параметры, по крайней мере, по желанию.