当前位置:网站首页>qlib量化源码分析:qlib/qlib/contrib/model/gbdt.py
qlib量化源码分析:qlib/qlib/contrib/model/gbdt.py
2022-08-01 00:00:00 【人工智能曾小健】
qlib gbd(lightgbm)使用了很类似sklearn的接口,dataset.prepare里返回了训练集与测试集。
看GBDT模块的代码,它先调用了_prepare_data,使用数据集dataset.prepare函数,取得train,valid两个部分,然后进行基本的数据检查和转换,以适配模型。
def _prepare_data(self, dataset: DatasetH, reweighter=None) -> List[Tuple[lgb.Dataset, str]]:
"""
The motivation of current version is to make validation optional
- train segment is necessary;
"""
ds_l = []
assert "train" in dataset.segments
for key in ["train", "valid"]:
if key in dataset.segments:
df = dataset.prepare(key, col_set=["feature", "label"], data_key=DataHandlerLP.DK_L)
if df.empty:
raise ValueError("Empty data from dataset, please check your dataset config.")
x, y = df["feature"], df["label"]
# Lightgbm need 1D array as its label
if y.values.ndim == 2 and y.values.shape[1] == 1:
y = np.squeeze(y.values)
else:
raise ValueError("LightGBM doesn't support multi-label training")
if reweighter is None:
w = None
elif isinstance(reweighter, Reweighter):
w = reweighter.reweight(df)
else:
raise ValueError("Unsupported reweighter type.")
ds_l.append((lgb.Dataset(x.values, label=y, weight=w), key))
return ds_l
边栏推荐
- 2022-07-31:给出一个有n个点,m条有向边的图, 你可以施展魔法,把有向边,变成无向边, 比如A到B的有向边,权重为7。施展魔法之后,A和B通过该边到达彼此的代价都是7。 求,允许施展一次魔法
- Flutter教程之四年开发经验的高手给的建议
- Drawing process of hand-drawn map of scenic spots
- 手写一个简单的web服务器(B/S架构)
- Network security - crack WiFi through handshake packets (detailed tutorial)
- Weekly Summary
- SQL injection Less38 (stack injection)
- 周总结
- IJCAI2022 | 代数和逻辑约束的混合概率推理
- 【Acwing】The 62nd Weekly Game Solution
猜你喜欢
不知道该怎么办的同步问题
cobaltstrike
基于simulink的Passive anti-islanding-UVP/OVP and UFP/OFP被动反孤岛模型仿真
leetcode:126. 单词接龙 II
/etc/sysconfig/network-scripts configure the network card
清华大学陈建宇教授团队 | 基于接触丰富机器人操作的接触安全强化学习框架
什么是客户画像管理?
Shell common scripts: Nexus batch upload local warehouse enhanced version script (strongly recommended)
TFC CTF 2022 WEB Diamand WriteUp
ICML2022 | 深入研究置换敏感的图神经网络
随机推荐
thymeleaf迭代map集合
Shell常用脚本:Nexus批量上传本地仓库脚本
一文带你了解 Grafana 最新开源项目 Mimir 的前世今生
Binary tree non-recursive traversal
面试题:实现死锁
什么是动态规划,什么是背包问题
Recommendation system: Summary of common evaluation indicators [accuracy rate, precision rate, recall rate, hit rate, (normalized depreciation cumulative gain) NDCG, mean reciprocal ranking (MRR), ROC
面试突击69:TCP 可靠吗?为什么?
编译型语言和解释型语言的区别
【云驻共创】【HCSD大咖直播】亲授大厂面试秘诀
Shell common scripts: Nexus batch upload local warehouse enhanced version script (strongly recommended)
Keil nRF52832下载失败
信奥学习规划 信息学竞赛之路(2022.07.31)
一行代码解决CoreData托管对象属性变更在SwiftUI中无动画效果的问题
输入输出优化
2022-07-31:给出一个有n个点,m条有向边的图, 你可以施展魔法,把有向边,变成无向边, 比如A到B的有向边,权重为7。施展魔法之后,A和B通过该边到达彼此的代价都是7。 求,允许施展一次魔法
Flutter教程之 01配置环境并运行demo程序 (教程含源码)
TFC CTF 2022 WEB Diamand WriteUp
How to Design High Availability and High Performance Middleware - Homework
/etc/sysconfig/network-scripts configure the network card