朴素贝叶斯是一种基于独立假设的贝叶斯定理的概率分类算法。

组件配置

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 特征列 默认为除标签列外的所有列,支持DOUBLE、STRING及BIGINT数据类型。
    排除列 不参与训练的列,不能与选择特征列同时使用。
    强制转换列 解析规则如下:
    • STRING、BOOLEAN及DATETIME类型的列,解析为离散类型。
    • DOUBLE和BIGINT类型的列,解析为连续类型。
    说明 如果需要将BIGINT类型的列解析为CATEGORICAL,则必须使用forceCategorical参数指定类型。
    标签列 输入表的标签列,只能选择非特征列。支持STRING、DOUBLE及BIGINT类型。
    输入数据是否为稀疏格式 使用KV格式表示稀疏数据。
    当输入为稀疏时,K:V间的分隔符 默认为英文逗号(,)。
    当输入为稀疏时,key和value的分隔符 默认为英文冒号(:)。
    执行调优 计算核心数 默认为系统自动分配。
    每个核心内存数 默认为系统自动分配。
  • PAI命令方式
    PAI -name NaiveBayes -project algo_public
        -DinputTablePartitions="pt=20150501"
        -DmodelName="xlab_m_NaiveBayes_23772"
        -DlabelColName="poutcome"
        -DfeatureColNames="age,previous,cons_conf_idx,euribor3m"
        -DinputTableName="bank_data_partition";
    参数 是否必选 描述 默认值
    inputTableName 输入表的表名。
    inputTablePartitions 输入表中,参与训练的分区。 所有分区
    modelName 输出的模型名称。
    labelColName 输入表中,标签列的名称。
    featureColNames 输入表中,用于训练的特征列名。 除标签列外的所有列
    excludedColNames 用于反选特征列,该参数不能与featureColNames同时使用。
    forceCategorical 解析规则如下:
    • STRING、BOOLEAN及DATETIME类型的列,解析为离散类型。
    • DOUBLE和BIGINT类型的列,解析为连续类型。
    说明 如果需要将BIGINT类型的列解析为CATEGORICAL,则必须使用forceCategorical参数指定类型。
    INT为连续类型
    coreNum 计算的核心数。 系统自动分配
    memSizePerCore 每个核心的内存,取值范围为1 MB~65536 MB。 系统自动分配

示例

  1. 准备如下训练数据。
    id y f0 f1 f2 f3 f4 f5 f6 f7
    1 -1 -0.294118 0.487437 0.180328 -0.292929 -1 0.00149028 -0.53117 -0.0333333
    2 +1 -0.882353 -0.145729 0.0819672 -0.414141 -1 -0.207153 -0.766866 -0.666667
    3 -1 -0.0588235 0.839196 0.0491803 -1 -1 -0.305514 -0.492741 -0.633333
    4 +1 -0.882353 -0.105528 0.0819672 -0.535354 -0.777778 -0.162444 -0.923997 -1
    5 -1 -1 0.376884 -0.344262 -0.292929 -0.602837 0.28465 0.887276 -0.6
    6 +1 -0.411765 0.165829 0.213115 -1 -1 -0.23696 -0.894962 -0.7
    7 -1 -0.647059 -0.21608 -0.180328 -0.353535 -0.791962 -0.0760059 -0.854825 -0.833333
    8 +1 0.176471 0.155779 -1 -1 -1 0.052161 -0.952178 -0.733333
    9 -1 -0.764706 0.979899 0.147541 -0.0909091 0.283688 -0.0909091 -0.931682 0.0666667
    10 -1 -0.0588235 0.256281 0.57377 -1 -1 -1 -0.868488 0.1
  2. 准备如下测试数据。
    id y f0 f1 f2 f3 f4 f5 f6 f7
    1 +1 -0.882353 0.0854271 0.442623 -0.616162 -1 -0.19225 -0.725021 -0.9
    2 +1 -0.294118 -0.0351759 -1 -1 -1 -0.293592 -0.904355 -0.766667
    3 +1 -0.882353 0.246231 0.213115 -0.272727 -1 -0.171386 -0.981213 -0.7
    4 -1 -0.176471 0.507538 0.278689 -0.414141 -0.702128 0.0491804 -0.475662 0.1
    5 -1 -0.529412 0.839196 -1 -1 -1 -0.153502 -0.885568 -0.5
    6 +1 -0.882353 0.246231 -0.0163934 -0.353535 -1 0.0670641 -0.627669 -1
    7 -1 -0.882353 0.819095 0.278689 -0.151515 -0.307329 0.19225 0.00768574 -0.966667
    8 +1 -0.882353 -0.0753769 0.0163934 -0.494949 -0.903073 -0.418778 -0.654996 -0.866667
    9 +1 -1 0.527638 0.344262 -0.212121 -0.356974 0.23696 -0.836038 -0.8
    10 +1 -0.882353 0.115578 0.0163934 -0.737374 -0.56974 -0.28465 -0.948762 -0.933333
  3. 构建实验,详情请参见算法建模朴素贝叶斯实验
  4. 配置朴素贝叶斯组件的参数(配置如下表格中的参数,其余参数使用默认值)。
    页签 参数 描述
    字段设置 特征列 在训练表中,选择f0f1f2f3f4f5f6f7列。
    标签列 在训练表中,选择y列。
  5. 运行实验,查看预测结果。朴素贝叶斯预测结果