近期使用了LightGBM进行了训练模型(计算违约概率),结果发现其余XGBoost模型训练得到的结果存在较高相关性。
模型训练之后,主要通过JAVA进行部署,网上搜集了https://github.com/lyg5623/lightgbm_predict4j 这个开源项目,但是针对最新的LightGBM库所输出的模型文件不可用。因此,先用python将模型输出的JSON文件进行模型读取的翻译,然后再将Python脚本翻译成JAVA代码。
1、参考资料
2、模型输出
在训练完模型后,使用如下代码将模型保存为JSON格式。
json_model = gbm.dump_model()
file_name = 'gbm_model.json'
with open(file_name,'w') as file_object:
json.dump(json_model,file_object)
使用 http://jsoneditoronline.org/ 可以查看所输出的JSON格式文件的具体形式,通过展开分析可以发现,其具体就是将模型树结构转换为JSON格式输出。
json.png
接下来,使用python将模型输出的JSON文件进行读取,并遍历每一棵树结构,得到在每一颗树上的得分,然后将分数求和,计算最终违约概率值。
import json
import numpy as np
import pandas as pd