python做股票预测实例
时间: 2023-06-29 16:12:27 浏览: 53
这里提供一个简单的基于SVM的股票预测实例,仅供参考。
首先,需要准备好历史股票数据,这里使用pandas库进行数据读取和处理。假设我们有一个名为“stock_data.csv”的文件,包含了某只股票的历史数据,其中第一列为日期,第二列为收盘价,我们可以用以下代码将数据读入并进行简单的预处理:
```python
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
# 读取数据
df = pd.read_csv('stock_data.csv')
# 将日期列转换为datetime类型
df['Date'] = pd.to_datetime(df['Date'])
# 选取收盘价作为预测目标,将数据分为特征和目标
X = df.drop(['Date', 'Close'], axis=1).values
y = df['Close'].values
# 对特征进行标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 将数据分为训练集和测试集
train_size = int(len(X) * 0.8)
X_train, y_train = X[:train_size], y[:train_size]
X_test, y_test = X[train_size:], y[train_size:]
```
接下来,我们可以使用sklearn库中的SVM模型进行训练和预测。这里使用径向基函数(RBF)作为核函数,代码如下:
```python
from sklearn.svm import SVR
from sklearn.metrics import r2_score
# 训练SVM模型
svr_rbf = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
svr_rbf.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = svr_rbf.predict(X_test)
# 计算R2分数
r2 = r2_score(y_test, y_pred)
print('R2 score:', r2)
```
最后,我们可以使用matplotlib库将预测结果可视化,代码如下:
```python
import matplotlib.pyplot as plt
# 反标准化
y_pred = scaler.inverse_transform(y_pred.reshape(-1, 1))
y_test = scaler.inverse_transform(y_test.reshape(-1, 1))
# 绘制预测结果
plt.plot(y_test, label='True')
plt.plot(y_pred, label='Predicted')
plt.legend()
plt.show()
```
这样,我们就可以得到一个简单的股票预测模型,并对其进行可视化。需要注意的是,这只是一个简单的示例,实际应用中需要根据数据特点和需求进行调整和改进。