2017-01-22 18 views
0

私はauto-mpgデータセットで作業していますが、いくつかの値を予測しようとしていますが、この問題に直面しました。sickitのlinear_regression関数を使用する前に、 .scale しかし、私は値を予測しようとすると、しかしそれは常にfalseですが、私はデータを標準化しなければ、正確な結果が得られます。ここ は、ここに私のcode`enterコードです:線形回帰:データが標準化されたときの予測の問題

import pandas as pd 
import numpy as np 
import statsmodels.api as sm 
from sklearn import linear_model 

df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning- databases/auto-mpg/auto-mpg.data-original", 
       delim_whitespace = True, header=None, 
       names = ['mpg', 'cylinders', 'displacement', 'horsepower', 'weight', 'acceleration', 
         'model_year', 'origin', 'car_name']) 
df.dropna(inplace=True) 
params=['cylinders', 'displacement', 'horsepower', 'weight', 'acceleration','model_year'] 
pred=['mpg'] 
X=df[params] 
y=df[pred] 

X_scaled=preprocessing.scale(X) 
y_scaled=preprocessing.scale(y) 
regr = linear_model.LinearRegression(fit_intercept=True) 
regr.fit(X_scaled,y_scaled) 
y_hat=regr.predict(X_scaled) 
Nouveau_X=np.array([6,225,100,3233,15.4,76]).reshape(1,-1) 
print Nouveau_X 
Nouveau_X=(Nouveau_X-np.mean(Nouveau_X))/(np.var(Nouveau_X)**0.5) 
print Nouveau_X 
print "la prediction de la consommation pour ce nouveau vecteur X est ",  regr.predict(Nouveau_X) 
#should be mainly equal to 22 but found -1.8 !!! 

Plzをヘルプ!

答えて

0

問題は正規化しないでください.Xを正規化するだけで正常に動作するはずです。

関連する問題