Adhith14/machine-learning-model-analysis
GitHub: Adhith14/machine-learning-model-analysis
结合聚类算法进行市场状态检测并使用随机森林预测金融时间序列收益的机器学习实验项目。
Stars: 0 | Forks: 0
# 金融时间序列的市场状态检测
本项目探讨了如何检测 **市场状态**(不同的市场条件),并将其用于改进金融时间序列预测模型。目标是结合传统机器学习模型与状态检测技术,以更好地理解市场行为。
## 项目概述
金融市场在不同条件下(例如高波动性、低波动性或过渡时期)往往表现出不同的行为。这些通常被称为 **市场状态**。
在本项目中:
- 一个基准 **Random Forest 模型** 利用滞后和滚动统计特征来预测未来收益。
- **Clustering 方法** 被用于基于对数收益和波动性检测市场状态。
- 检测到的状态作为一个附加特征被加入,以提升预测性能。
## 使用的方法
### 特征工程
该模型使用:
- 滞后对数收益
- 收益的滚动均值
- 滚动标准差(波动性)
这些特征有助于捕捉短期市场动态。
### 状态检测
探索了两种聚类方法:
- **K-Means Clustering**
- **Gaussian Mixture Models (GMM)**
这些状态代表了不同的市场状况,例如低、中和高波动性。
### 降维(探索性分析)
**Principal Component Analysis (PCA)** 在 notebook 中用于在缩减后的特征空间中可视化状态聚类。
## 模型
预测模型使用以下方法实现:
- **Random Forest Regressor**
- 将状态标签作为附加特征加入
该模型预测 ETF 代码的 **未来对数收益**。
## 数据集
该数据集包含多个板块的历史 ETF 价格数据,包括:
- XLK – 科技
- XLF – 金融
- XLE – 能源
- XLP – 必需消费品
- XLV – 医疗保健
- XLI – 工业
## 评估指标
模型性能使用以下指标进行评估:
- **MAE (Mean Absolute Error)**
- **RMSE (Root Mean Squared Error)**
- **Directional Accuracy**
这些指标有助于衡量预测误差以及正确预测价格变动方向的能力。
## 结果
基于状态的模型表现出与基准模型相似的性能,这表明状态信号有助于解释市场行为,但可能不会显著改善短期预测。
然而,聚类分析揭示了清晰的市场状态,可以使用 PCA 进行可视化。
## 技术栈
- Python
- NumPy
- Pandas
- Scikit-learn
- Matplotlib
标签:Apex, ETF投资, K-Means, Python, 主成分分析, 市场状态识别, 收益率预测, 无后门, 无监督学习, 时间序列分析, 机器学习, 波动率分析, 滚动统计, 特征工程, 聚类算法, 逆向工具, 量化交易, 金融数据分析, 金融科技, 降维, 随机森林, 高斯混合模型