Package: electriceel
模型算法平台文件结构data:数据存储feature_platform:特征处理Fill：缺失值填充Scale：特征标准化Bins：分箱Encoder：特征编码metric_platform:评估模块null_rate：缺失率iv_score：iv值desc：特征描述ClassificationMetric：分类模型评估auc_scoreks_scoref1_scoreprecision_recall_curve：精准率和召回率曲线RegressionMetric：回归模型评估mean_absolute_errormean_squared_errormean_squared_log_errormodel:模型模块ClassificationModel：分类模型lrxgbsvmrfgbdtgbdt+lrrf+lrxgb+lrlgb+lrutil：工具模块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文件