使用 Python 进行股票价格预测的简单机器学习示例,使用线性回归算法。这个示例仅作为学习参考,实际股票市场复杂多变,不能完全依赖此类简单模型进行投资决策。
1. 数据获取与准备:我们使用 pandas 和 yfinance 库来获取股票数据。首先确保你已经安装了这两个库( pip install pandas yfinance )。
import pandas as pd
import yfinance as yf
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 获取股票数据
ticker = 'AAPL' # 这里以苹果公司股票为例,你可以换成其他股票代码
data = yf.download(ticker, start='2010-01-01', end='2024-12-31')
# 选择特征和目标变量
# 这里简单地使用前一天的收盘价作为特征,预测当天的收盘价
data['Tomorrow'] = data['Close'].shift(-1)
data = data.dropna()
X = data[['Close']]
y = data['Tomorrow']
2. 划分训练集和测试集:将数据划分为训练集和测试集,通常训练集用于训练模型,测试集用于评估模型的性能。
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
3. 训练模型:使用线性回归模型进行训练。
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
4. 评估模型:使用测试集来评估模型的性能,这里使用均方误差(MSE)来衡量预测的准确性。
# 进行预测
y_pred = model.predict(X_test)
# 计算均方误差
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差: {mse}")
5. 可视化结果:将预测结果与实际结果进行可视化展示。
# 可视化预测结果
plt.figure(figsize=(12, 6))
plt.scatter(X_test, y_test, label='实际值')
plt.plot(X_test, y_pred, color='red', linewidth=2, label='预测值')
plt.xlabel('前一天收盘价')
plt.ylabel('当天收盘价')
plt.title(f'{ticker} 股票价格预测')
plt.legend()
plt.show()
以上代码展示了一个基本的股票价格预测的机器学习过程。在实际应用中,可以尝试使用更多的特征(如成交量、技术指标等)、更复杂的模型(如神经网络、随机森林等)来提高预测的准确性。同时,要注意股票市场的不确定性和风险。