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...