线性回归预测股价交叉验证代码
时间: 2023-10-03 18:04:53 浏览: 104
以下是一个基于 scikit-learn 库实现的交叉验证线性回归预测股价的代码示例:
```python
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import TimeSeriesSplit
# 读取股票数据
stock_data = pd.read_csv('stock_data.csv')
# 提取特征和目标变量
X = stock_data[['feature1', 'feature2', ...]]
y = stock_data['target']
# 创建时间序列交叉验证对象
tscv = TimeSeriesSplit(n_splits=5)
# 创建线性回归对象
lr = LinearRegression()
# 进行交叉验证
scores = []
for train_index, test_index in tscv.split(X):
# 划分训练集和测试集
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
# 训练模型
lr.fit(X_train, y_train)
# 测试模型
score = lr.score(X_test, y_test)
scores.append(score)
# 输出交叉验证结果
print('R-squared:', np.mean(scores))
```
在上述代码中,我们首先读取了股票数据,提取了特征和目标变量。然后创建了一个时间序列交叉验证对象,这里我们设置了 n_splits=5,表示将样本分成 5 个连续的时间段,每次用其中一个作为测试集,其他做为训练集。接着创建了一个线性回归对象,然后进行交叉验证,每次将训练集和测试集划分出来,对模型进行训练和测试,并记录得分。最后输出交叉验证结果,这里我们计算了每个测试集上的 R-squared 值的平均值作为最终结果。
阅读全文