zzhfun

zzh model function and data function


License
MIT
Install
pip install zzhfun==0.28

Documentation

zzhfun

Useful and Commonly used python function [TOC]

xgb_train

def xgb_train(save_path, dtrain, dtest, parameter = None, train_round = 100, early_stopping=10, lr_flag = False, y_train = None)

封装了常规的xgboost的训练流程
参数设置:

  • save_path(str):保存模型的路径,不要添加模型的名字,模型会命名为xgb_model和lr_model
  • dtrain(DMatrixs):训练集数据
  • dtest(DMatrixs):测试集数据
  • parameter(dict):xgboost的参数集,存在默认设置
  • train_round(int):训练轮数,默认设置100轮
  • early_stopping(int):提前终止轮数,默认设置10
  • lr_flag(bool):是否融合LR模型标志位
  • y_train(list/Serise):LR训练数据的标签,本函数中是dtrain的标签

返回值:

  • bst(xgboost model):xgboost模型文件
  • lr_clf(LR model):LR模型文件

cal_auc_ks

def cal_auc_ks(y_true, y_pred, name = None, save=False, online=False)

封装了计算模型预测的auc和ks的功能
参数设置:

  • y_true(list):待测试样本的标签list
  • y_pred(list):待测试样本经过模型的预测list
  • name(str):标识结果的字段
  • save(bool):保存标识位
  • online(bool):在线计算标志位,如果为true,此计算方法不依赖任何包

返回值:

  • auc(double):模型分auc
  • ks(double):模型分ks

imp_report

def imp_report(model, trainData, whole_column)

封装了输出特征重要程度的功能
参数设置:

  • model(xgboost model file):输入模型,不能使模型文件的地址,必须先读入模型后传入
  • trainData(DataFrame):输入到模型的数据,必须带有表头,否则输出的也得对应的列编号
  • whole_column(array/Serise):数据集的全部列名,大多数时候输入到模型的数据和源数据表维度上有差异,因此设置这个参数,当然,如果没有差异也可以传入trainData.columns

返回值:

  • imp(list):按照whole_column顺序的特征重要度,没选中的重要度是0

cal_feat_ks:

def cal_feat_ks(df, valueCol, labelCol, seg=10)

封装了计算单变量ks的功能
参数设置:

  • df(DataFrame):读入所有变量数据的DataFrame
  • valueCol(str):df中要计算ks的列名,这里只支持单值传入,计算多个变量请用list的for循环传入
  • labelCol(str):df中的标签列名
  • seg(int):ks分组数,默认10组

返回值:

  • ksList(list):各分组的ks中间计算值
  • ks(double):单变量ks的值

cal_feat_iv

def cal_feat_iv(df, valueCol, labelCol, seg=10)

封装了计算单变量ks的功能
参数设置:

  • df(DataFrame):读入所有变量数据的DataFrame
  • valueCol(str):df中要计算ks的列名,这里只支持单值传入,计算多个变量请用list的for循环传入
  • labelCol(str):df中的标签列名
  • seg(int):ks分组数,默认10组

返回值:

  • woe(list):单变量woe值
  • ks(double):单变量ks的值

format_time

def format_time(seconds)

封装了转换秒数为时分秒的函数
参数设置:

  • seconds(float):秒数

返回值:

  • hours(int)
  • minutes(int)
  • seconds(float)

xgb_serialization

def xgb_serialization(xgb_dump_file)

xgb_serialization:可以将xgboost dump下来的树模型解析文件进行序列化 参数设置:

  • xgb_dump_file(string):dump文件目录

返回值:

  • tree_lists(3d-list):三维list, 每棵树是一个2d list, N颗数组成,变成3d list

xgb_online_predict

def xgb_online_predict(feature_dict, xgbtree)

xgb_online_predict:通过序列化xgb的模型解析文件,进行原生python的在线打分 参数设置:

  • feature_dict(dict):类似libsvm格式的特征字典key:value, key(string),例如'f729',value(float)
  • xgbtree(3d-list):xgb模型解析文件的序列化数据

返回值:

  • score(float):单条样本的打分

feat_split_label_cross

def feat_split_label_cross(ofname, data, select_titles=None, missing_value=-1, group_list = None, group_column = None, month_list = None, month_column = None, label_column = None, good_label = 1)

对特征进行分渠道、分月、分组分析,产出csv文件,包含列:id,group,feat,desc,bin,miss_rate,lowbound,upbound,average,total,good,bad,user_rate,bad_rate,ks,iv,psi,avg

  • ofname(str):结果导出路径
  • select_titles(list):进行分析的列名
  • missing_value(int):缺失值定义
  • group_list(list-2d like [["cate_name",[cate_value]],["cate_name",[cate_value]]...]):分组列表
  • group_column(string):待分析的DataFrame中用于分组主键的列名
  • month_list(list):按月分组的列表
  • month_column(str):月份字段在DataFrame中的列名
  • label_column(str):待分析的DataFrame中用于标签的列名
  • good_label(int):好人的标签

返回值:

  • None

coming_soon

function continue...