skfolio/skfolio
Python library for portfolio optimization built on top of scikit-learn
What it solves
传统的均值-方差优化 (MVO) 通常面临对输入参数高度敏感、权重集中以及样本外表现不佳的问题。skfolio 提供了一个统一且以机器学习为导向的框架,用于构建、微调与验证投资组合模型,通过标准化 API 帮助用户缓解数据泄露与过拟合等风险。
How it works
基于 scikit-learn 之上的 skfolio 实现了广泛的投资组合优化与风险管理工具。它允许用户定义一个包含以下内容的 pipeline:
- Estimators: 计算预期收益率、协方差与方差的工具,包括去噪与收缩等高级方法。
- Optimization Models: 从简单配置 (Equal-Weighted) 到复杂的凸优化 (Mean-Risk, Risk Budgeting) 以及聚类方法 (Hierarchical Risk Parity) 的各种策略。
- Prior Estimators: 通过 Black & Litterman、因子模型或使用 Vine Copulas 生成的合成数据来整合观点。
- Validation Tools: 针对时间序列数据的专门化交叉验证技术,例如 Walk Forward 与 Combinatorial Purged Cross-Validation。
- Constraints: 支持交易成本、管理费以及各种权重或分组约束。
Who it’s for
需要一个强大的、与 scikit-learn 相容的库,用于专业资产配置与风险管理量化研究员、投资组合经理与数据科学家。
Highlights
- Scikit-learn Integration: 与
GridSearchCV,RandomizedSearchCV, 与Pipeline完全相容,可实现无缝的模型选择与超参数调优。 - Extensive Model Library: 支援广泛的风险衡量指标 (CVaR, EVaR, Maximum Drawdown) 与优化目标。
- Advanced Risk Management: 包含通过合成数据进行压力测试,以及使用熵池化 (entropy pooling) 来整合主观观点。
- Robust Validation: 实现了专门的金融交叉验证,以防止前瞻性偏差 (look-ahead bias)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目