Skip to main content

Model electriceel for model feature metric

Project description

模型算法平台

文件结构

data:数据存储

  • feature_platform:特征处理
  • Fill:缺失值填充
  • Scale:特征标准化
  • Bins:分箱
  • Encoder:特征编码

metric_platform:评估模块

  • null_rate:缺失率
  • iv_score:iv值
  • desc:特征描述
  1. ClassificationMetric:分类模型评估
  • auc_score
  • ks_score
  • f1_score
  • precision_recall_curve:精准率和召回率曲线
  1. RegressionMetric:回归模型评估
  • mean_absolute_error
  • mean_squared_error
  • mean_squared_log_error

model:模型模块

  1. ClassificationModel:分类模型
  • lr
  • xgb
  • svm
  • rf
  • gbdt
  • gbdt+lr
  • rf+lr
  • xgb+lr
  • lgb+lr

util:工具模块

  • load_data:加载文件数据
  • prob_to_score:概率转换为分数
  • save_model:模型保存
  • load_model:模型加载

使用说明

根据electric_eel.py生成ElectricEel对象

  • 特征处理 配置feature_config,调用feature_fit()函数进行特征处理,返回处理后的特征及相关信息
  • 模型训练 配置train_config,调用model_train()函数,进行模型训练,该步骤的特征数据可依赖上一步特征处理后的数据,也可以自定义数据。如果配置特征重要性,会返回特征重要性
  • 模型测试 调用model_test()函数,进行模型测试,该步骤依赖于上一步产生的模型,及第一步的特征处理,返回预测值以及相应的评测结果
  • 模型预测 输入原始特征,依赖于第一步产生的特征处理及第二步模型训练,进行预测
  • 特征输出 如果仅需要进行特征处理,则在第一步完成后,即可,调用feature_transform()输入原始特征即可输出处理后的特征

配置说明

feature_config

{
    "feature": "dataframe或者filepath:训练数据,必填",
    "num_col": "list:数值型特征名列表,必填",
    "cate_col": "list:类别型特征名列表,必填",
    "target_col": "str:目标列名,选填",
    "model_type":"str:classification:分类,regression:回归,必填",
    "metric": {特征评估,必填
        "null_rate":"bool:是否计算缺失率,选填",
        "iv":"bool:是否计算IV值,选填",
        "describe":"bool:是否获取特征描述信息,选填"
    },
    "preprocessing": {特征处理,必填
        "fill": {数据填充,选填
            "method": "str:填充方式,simple:简单采样,KNN:knn算法采样填充,default:simple,选填",
            "fill_cate": "bool 类别型特征是否填充,default:True,选填",
            "fill_value": "dict 指定特征列的填充值,default:None,选填",
            "num_sample_strategy": "str  数值型填充方式,mean:平均值,median:中位数,most_frequent:频率,default:median,选填",
            "cate_sample_strategy": "str 类别型填充方式,most_frequent:频率,default:most_frequent,选填",
            "n_neighbors": "int knn采样邻居个数,default:5,选填"
        },
        "scale": {标准化,选填
            "method": "str 选择处理方式,max_abs_scaler,min_max_scaler,standard_scaler,default:standard_scaler,选填",
            "scale_col": "list 需要标准化的特征列,default:数值型特征列:,选填"
        },
        "bins": {分箱,选填
            "bin_col": "list 需要分箱的特征列,default:数值型特征列:,选填",
            "n_bins": "int or array-like of shape (n_features,), default=5,选填",
            "encode": "用来编码转换结果的方法。{‘onehot’, ‘onehot-dense’, ‘ordinal’}, default=’onehot’,选填
                        'onehot'。用one-hot编码对转换后的结果进行编码,并返回一个稀疏矩阵。忽略的特征总是向右叠加。
                        'onehot-dense'。对转换后的结果进行单热编码,并返回一个密集数组。忽略的特征总是堆积在右边。
                        'ordinal'。返回编码为整数的bin标识符。",
            "strategy": "用来定义分仓宽度的策略。{‘uniform’, ‘quantile’, ‘kmeans’}, default=’quantile’,选填
                        'uniform'。每个特征中的所有箱体都有相同的宽度。
                        ‘quantile’。每个特征中的所有分仓都有相同的点数。
                        'kmeans'。每个bin中的值都有相同的一维k-means集群的最近中心。"
        },
        "encoder": {编码,选填
            "encoder_col": "list 需要编码的特征列,default:类别型特征列,选填",
            "method": "str:one-hot or ordinal,default:one-hot:,选填"
        }
    }
}

train_config

{
    "algorithm": "str:模型,{'xgb','lr','svm','rf','gbdt','gbdt+lr','rf+lr','xgb+lr','lgb+lr'},必填",
    "feature": "dataframe:特征数据,必填",
    "target_col": "str:目标列名,选填",
    "model_type":"str:classification:分类,regression:回归,必填",
    "params": "dick:第一模型参数,必填",
    "params2":"dick:组合模型中第二模型参数,必填",
    "verbose": "bool:是否显示日志,default:True,选填",
    "feature_importance": "bool:是否计算特征重要性,default:True,选填"
}

回归测试报告

正例:1,负例:0

该报告主要针对业务人员,对模型整体效果进行说明, 该报告会对整个测试集产生的测试结果(预测概率)进行区间划分,对各个区间段的区分情况进行统计,生成如下几个指标:

  • 拒绝率:低于该阈值的用户占比
  • 拒绝分数:该分段的阈值
  • 拒绝误判率:低于该阈值的用户中实际为正例的占比,(应该为1被判定为0)
  • 通过正判率:高于该阈值的用户中实际为正例的占比,(应该为1也被判定为1)
  • 分档通过率:在该分档区间(当前阈值和下一个阈值)实际是正例的占比
  • 分档个数:在该区间的用户量
  • 拒绝误判累计占比:低于该阈值的用户中预测为负例占实际正例的比例
  • 拒绝正判累计占比:低于该阈值的用户中预测为负例占实际负例的比例
  • 通过误判累计占比:高于该阈值的用户中预测为正例占实际负例的比例
  • 通过正判累计占比:高于该阈值的用户中预测为正例占实际正例的比例
  • K-S:拒绝正判累计占比 - 拒绝误判累计占比
  • 分档通过占比:在该分档区间实际正例的占比
  • 分档拒绝占比:在该分档区间实际负例的占比
  • 分档通过人数:在该分档区间实际正例的用户数
  • 分档拒绝人数:在该分档区间实际负例的用户数

用例参考example.py文件

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

electriceel-0.0.1-py3-none-any.whl (32.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page