创建一个基于SVM的股票预测附代码
时间: 2023-12-08 19:04:52 浏览: 31
以下是一个基于SVM的股票预测的Python代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.svm import SVR
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 读取数据
df = pd.read_csv('stock_data.csv')
# 数据清洗和预处理
df.fillna(method='ffill', inplace=True)
df.dropna(inplace=True)
# 特征工程
X = df[['Open', 'High', 'Low', 'Volume']].values
y = df['Close'].values
# 数据归一化
X = (X - X.min()) / (X.max() - X.min())
y = (y - y.min()) / (y.max() - y.min())
# 数据分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 模型训练
svr = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
svr.fit(X_train, y_train)
# 模型预测
y_pred = svr.predict(X_test)
# 模型评估
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print('RMSE:', rmse)
```
该代码假设有一个名为`stock_data.csv`的数据文件,包括股票的开盘价、最高价、最低价、成交量和收盘价等信息。该代码首先读取数据,然后进行数据清洗和预处理,包括填充缺失值和数据归一化等。然后进行特征工程,选择开盘价、最高价、最低价和成交量等特征。接下来将数据分为训练集和测试集,使用SVR算法对训练数据进行训练,并对测试数据进行预测。最后,计算预测结果与实际结果之间的均方根误差(RMSE)来评估模型的性能。