基于sklearn的股票数据线性回归

2024-04-20 03:15:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Sklearn对一组股票价格数据进行线性回归,在对数据进行归一化后,MSE都变为0。
为什么我得到所有MSE 0?请帮帮我,有人说是因为模型的问题。。但我是Python新手,真的需要帮助,提前谢谢!你知道吗

以下是数据集中的一行示例:

tdate ,     stock_id ,   open ,  close ,  high ,  low ,   volume

04/01/2000   ,   1  ,    100  ,   98  ,    101  ,  98  ,   283100

代码:

from sklearn.linear_model import LinearRegression
from sklearn import cross_validation
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import Normalizer
from sklearn.model_selection import train_test_split

stock1= file[['open','close','high','low','volume']].where(file['stock_id'] 
== 1)
X_stock1 = stock1.drop(['close'],axis=1)
y_stock1 = stock1['close']
X_stock1_train, X_stock1_test, y_stock1_train, y_stock1_test = 
train_test_split(X_stock1, y_stock1, train_size=0.8, random_state=42)  

用中值填充缺失值

X_stock1_train= Imputer(missing_values='NaN', strategy='median', 
axis=0).fit_transform (X_stock1_train)
y_stock1_train=y_stock1_train.reshape(-1,1) 
y_stock1_train=Imputer(missing_values='NaN', strategy='median', axis=0 
).fit_transform (y_stock1_train)

股票数据标准化

transformer=Normalizer().fit(X_stock1_train, y_stock1_train)
X_stock1_train=transformer.transform(X_stock1_train)
y_stock1_train=transformer.transform(y_stock1_train)

LinearRegression=LinearRegression()
scores = cross_validation.cross_val_score(LinearRegression, X_stock1_train,
                                          y_stock1_train, scoring= 'neg_mean_ 
                                          squared_error' , cv=10)

结果:

[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]

Average accuracy for Linear Regression: 0.0                                              

Tags: 数据fromtestimportclosemodeltransformtrain