朴素贝叶斯是一种基于独立假设的贝叶斯定理的概率分类算法。使用Designer(原Studio)的朴素贝叶斯组件,您能有效处理多样的分类问题。本文为您介绍朴素贝叶斯组件的配置方法。
使用限制
支持的计算引擎为MaxCompute。
组件配置
您可以使用以下任意一种方式,配置朴素贝叶斯组件参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 | 参数 | 描述 |
字段设置 | 特征列 | 默认为除标签列外的所有列,支持DOUBLE、STRING及BIGINT数据类型。 |
排除列 | 不参与训练的列,不能与选择特征列同时使用。 | |
强制转换列 | 解析规则如下:
说明 如果需要将BIGINT类型的列解析为CATEGORICAL,则必须使用forceCategorical参数指定类型。 | |
标签列 | 输入表的标签列,只能选择非特征列。支持STRING、DOUBLE及BIGINT类型。 | |
输入数据是否为稀疏格式 | 使用KV格式表示稀疏数据。 | |
当输入为稀疏时,K:V间的分隔符 | 默认为半角逗号(,)。 | |
当输入为稀疏时,key和value的分隔符 | 默认为半角冒号(:)。 | |
是否生成PMML | 选中该复选框,即可生成PMML模型。如果未设置工作流数据存储路径,您需要单击点击前往,设置工作流数据存储路径。 | |
执行调优 | 计算核心数 | 默认为系统自动分配。 |
每个核心内存数 | 默认为系统自动分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本。
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 | 否 | 解析规则如下:
说明 如果需要将BIGINT类型的列解析为CATEGORICAL,则必须使用forceCategorical参数指定类型。 | INT为连续类型 |
coreNum | 否 | 计算的核心数。 | 系统自动分配 |
memSizePerCore | 否 | 每个核心的内存,取值范围为1 MB~65536 MB。 | 系统自动分配 |
示例
准备训练数据和测试数据。
使用MaxCompute客户端创建表train_data和test_data,分别用来存放训练数据和测试数据。其中列字段和数据类型为
id bigint、y bigint、f0 double、f1 double、f2 double、f3 double、f4 double、f5 double、f6 double、f7 double
。关于MaxCompute客户端的安装及配置请参见使用本地客户端(odpscmd)连接,如何创建表,请参见创建表。将以下训练数据和测试数据分别导入到表train_data和test_data中。如何导入数据,请参见导入数据。
训练数据
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
测试数据
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
构建如下工作流,并运行组件,详情请参见算法建模。
在Designer左侧组件列表中,分别搜索读数据表组件(2个)、朴素贝叶斯组件、预测组件、多分类评估组件,并拖入右侧画布中。
参照上图,通过连线的方式,将各个节点组织构建成为一个有上下游关系的工作流。
配置组件参数。
在画布中单击读数据表-1组件,在右侧表选择页签,配置表名为train_data。
在画布中单击读数据表-2组件,在右侧表选择页签,配置表名为test_data。
在画布中单击朴素贝叶斯-1组件,在右侧配置如下表中的参数,其余参数使用默认值。
页签
参数
描述
字段设置
特征列
在训练表中,选择f0、f1、f2、f3、f4、f5、f6及f7列。
标签列
在训练表中,选择y列。
在画布中单击预测-1组件,在右侧字段设置页签,选择原样输出列为id和y。其余参数使用默认值。
在画布中单击多分类评估-1组件,在右侧字段设置页签,选择原分类结果列为y。其余参数使用默认值。
参数配置完成后,单击运行按钮,运行工作流。
工作流运行成功后,右键单击预测-1组件,在快捷菜单,选择
,查看预测结果。
相关文档
运行朴素贝叶斯组件生成PMML类型的模型后,您可以将模型部署为在线服务。具体操作,请参见单模型部署在线服务。
关于Designer组件更详细的内容介绍,请参见Designer概述。
Designer预置了多种算法组件,你可以根据不同的使用场景选择合适的组件进行数据处理,详情请参见组件参考:所有组件汇总。