2014-10-27 4 views
1

Я пытаюсь предсказать будущие данные о прибылях и убытках в наборе данных данных медного рудника в формате csv.Как не стандартизировать данные цели в scikit learn regression

Я прочитал данные:

data = pd.read_csv('data.csv') 

Я разделил данные:

data_target = data[target].astype(float) 
data_used = data.drop(['Periodo', 'utilidad_operativa_dolar'], axis=1) 
x_train, x_test, y_train, y_test = train_test_split(data_used, data_target, test_size=0.4,random_state=33) 

Создать УВО предсказатель:

clf_svr= svm.SVR(kernel='rbf') 

Standarize данные:

from sklearn.preprocessing import StandardScaler 
scalerX = StandardScaler().fit(x_train) 
scalery = StandardScaler().fit(y_train) 

x_train = scalerX.transform(x_train) 
y_train = scalery.transform(y_train) 
x_test = scalerX.transform(x_test) 
y_test = scalery.transform(y_test) 

print np.max(x_train), np.min(x_train), np.mean(x_train), np.max(y_train), np.min(y_train), np.mean(y_train) 

Затем предсказывают:

y_pred=clf.predict(x_test) 

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

ответ

4

Вы бы хотели использовать метод inverse_transform вашего y-scaler. Обратите внимание, что вы можете сделать все это более сжато с использованием трубопровода, как следует

from sklearn.pipeline import Pipeline 
from sklearn.preprocessing import StandardScaler 
from sklearn.svm import SVR 

pipeline = Pipeline([('scaler', StandardScaler()), ('estimator', SVR(kernel="rbf"))]) 

y_scaler = StandardScaler() 
y_train = y_scaler.fit_transform(y_train) 
pipeline.fit(x_train, y_train) 
y_pred = y_scaler.inverse_transform(pipeline.predict(x_test)) 

Многие просто масштабировать цели на глобальном уровне и уйти, не слишком много переобучения. Но вы делаете добро, чтобы не падать за это. AFAIK с использованием отдельного масштабирования для данных y, как показано в коде, является единственным способом перехода.

+1

Спасибо !, я не смотрю на inverse_transform(), стыдно за меня. –

 Смежные вопросы

  • Нет связанных вопросов^_^