// Copyright 2023 Ant Group Co., Ltd. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // syntax = "proto3"; package secretflowapis.v1.sdc.teeapps.params; option java_package = "com.alipay.secretflow.secretflowapis.v1.sdc.teeapps.params"; option java_outer_classname = "WoeBinningProto"; message WoeBinningParams { // 分桶的config message FeatureBinningConf { // feature的名称 string feature = 1; // 分桶的方式: // "quantile" -> 等频分箱 // "bucket" -> 等宽分箱 // "auto" -> quantile模式下自动选择单调性的分箱 // "chimerge": 卡方分箱 string binning_method = 2; // 分桶的数目 // "chimerge": 卡方分箱 忽略该参数 int32 n_divide = 3; // 卡方分箱初始分桶最大值,仅作用于 "chimerge": 卡方分箱 // 范围:[100, 1000] // 默认:100 int32 chimerge_init_bins_limit = 4; // 卡方分箱目标分箱数,聚合结束条件之一,仅作用于 "chimerge": 卡方分箱 // 分箱聚合后剩余箱数等于该值即停止聚合 // 范围:[2, 100] // 默认:10 int32 chimerge_target_bins = 5; // 卡方分箱目标P值,聚合结束条件之一,仅作用于 "chimerge": 卡方分箱 // 分箱聚合后剩余箱数中最小卡方值对应的P值,超过后停止聚合 // 这里定义 pvalue = 1 - cdf(x) // 范围:(0, 1) // 默认:0.1 double chimerge_target_pvalue = 6; } // 桶的array,存有桶的数目个FeatureBinningConf repeated FeatureBinningConf feature_binning_confs = 1; // 正样本的label,例如,经常被设置为“1”,表示csv中,label field这一列中, // 正样本的符号被标记为“1”。 又比如可能为“Y”,等。 string positive_label = 2; } message WoeBinningReport { message VariableBinningResult { message Bin { string label = 1; // 桶的 label,变量的区间,比如“(-inf,0]” double woe = 2; // woe value double iv = 3; // information value uint64 total_count = 4; // 总计的样本数目 uint64 positive_count = 5; // 正样本的数目 } // 上面是每个桶内的信息,下面是整个variable的 string feature = 1; // 对应csv的header中的名字,比如“x2” int32 bin_count = 2; // 分桶数目 double iv = 3; // total iv, 每个桶的iv的sum repeated Bin bins = 4; // 桶的array } repeated VariableBinningResult variable_ivs = 1; } // Woe 分箱规则 message WoeBinningRule { message Rule { message Bin { double right = 1; // 右区间值 double woe = 2; // woe value } // 上面是每个桶内的信息,下面是整个variable的 string feature = 1; // 对应csv的header中的名字,比如“x2” repeated Bin bins = 2; // 桶的array Bin else_bin = 3; // 所有异常值,单独一个分桶 } repeated Rule rules = 1; }