Я пытаюсь выяснить, как масштабировать мои данные (предположительно, используя inverse_transform) для прогнозов, когда я использую конвейер. Приведенные ниже данные являются лишь примером. Мои фактические данные намного больше и сложнее, но я хочу использовать RobustScaler (так как мои данные имеют выбросы) и Lasso (поскольку мои данные имеют множество бесполезных функций). Я новичок в трубопроводах в целом.
По сути, если я пытаюсь использовать эту модель для предсказания чего-либо, я хочу, чтобы этот прогноз был в немасштабированном виде. Возможно ли это с трубопроводом? Как я могу сделать это с помощью inverse_transform?
import pandas as pd
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import RobustScaler
data = [[100, 1, 50],[500 , 3, 25],[1000 , 10, 100]]
df = pd.DataFrame(data,columns=['Cost','People', 'Supplies'])
X = df[['People', 'Supplies']]
y = df[['Cost']]
#Split
X_train,X_test,y_train,y_test = train_test_split(X,y)
#Pipeline
pipeline = Pipeline([('scale', RobustScaler()),
('alg', Lasso())])
clf = pipeline.fit(X_train,y_train)
train_score = clf.score(X_train,y_train)
test_score = clf.score(X_test,y_test)
print ("training score:", train_score)
print ("test score:", test_score)
#Predict example
example = [[10,100]]
clf.predict(example)
.transform()
на входах, чтобы использовать robustscaler, ни для вашего поезда, ни для теста - person G. Anderson   schedule 14.05.2019pipeline.fit(train)
,pipeline.transform(train)
,pipeline.transform(test)
, тогда вы сможете использовать встроенный inverse_transform, чтобы отменить преобразование после прогнозирования. - person G. Anderson   schedule 14.05.2019