Я использую функцию Boxcox SciPy для выполнения преобразования Box-Cox для непрерывной переменной.
from scipy.stats import boxcox
import numpy as np
y = np.random.random(100)
y_box, lambda_ = ss.boxcox(y + 1) # Add 1 to be able to transform 0 values
Затем я приспосабливаю статистическую модель для прогнозирования значений этой измененной переменной Box-Cox. Модельные предсказания находятся в шкале Box-Cox, и я хочу преобразовать их в исходный масштаб переменной.
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor()
X = np.random.random((100, 100))
rf.fit(X, y_box)
pred_box = rf.predict(X)
Однако я не могу найти функцию SciPy, которая выполняет обратное преобразование Box-Cox при преобразованных данных и лямбда. Есть ли такая функция? Я закодировал обратное преобразование на данный момент.
pred_y = np.power((y_box * lambda_) + 1, 1 / lambda_) - 1