朴素贝叶斯算法

功能介绍

  • 朴素贝叶斯是一个多分类算法
  • 朴素贝叶斯组件支持稀疏、稠密两种数据格式
  • 朴素贝叶斯组件支持带样本权重的训练

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
modelType 模型类型 取值为 Multinomial 或 Bernoulli String “Multinomial”
featureCols 特征列名数组 特征列名数组,默认全选 String[] null
labelCol 标签列名 输入表中的标签列名 String
weightCol 权重列名 权重列对应的列名 String null
vectorCol 向量列名 向量列对应的列名,默认值是null String null
smoothing 算法参数 光滑因子,默认为1.0 Double 1.0

脚本示例

运行脚本

  1. data = np.array([
  2. [1.0, 1.0, 0.0, 1.0, 1],
  3. [1.0, 0.0, 1.0, 1.0, 1],
  4. [1.0, 0.0, 1.0, 1.0, 1],
  5. [0.0, 1.0, 1.0, 0.0, 0],
  6. [0.0, 1.0, 1.0, 0.0, 0],
  7. [0.0, 1.0, 1.0, 0.0, 0],
  8. [0.0, 1.0, 1.0, 0.0, 0],
  9. [1.0, 1.0, 1.0, 1.0, 1],
  10. [0.0, 1.0, 1.0, 0.0, 0]])
  11. df = pd.DataFrame({"f0": data[:, 0],
  12. "f1": data[:, 1],
  13. "f2": data[:, 2],
  14. "f3": data[:, 3],
  15. "label": data[:, 4]})
  16. df["label"] = df["label"].astype('int')
  17. batchData = dataframeToOperator(df, schemaStr='f0 double, f1 double, f2 double, f3 double, label int', op_type='batch')
  18. # load data
  19. colnames = ["f0","f1","f2", "f3"]
  20. ns = NaiveBayesTrainBatchOp().setFeatureCols(colnames).setLabelCol("label")
  21. model = batchData.link(ns)
  22. predictor = NaiveBayesPredictBatchOp().setPredictionCol("pred")
  23. predictor.linkFrom(model, batchData).print()

运行结果

f0 f1 f2 f3 label pred
1.0 1.0 0.0 1.0 1 1
1.0 0.0 1.0 1.0 1 1
1.0 0.0 1.0 1.0 1 1
0.0 1.0 1.0 0.0 0 0
0.0 1.0 1.0 0.0 0 0
0.0 1.0 1.0 0.0 0 0
0.0 1.0 1.0 0.0 0 0
1.0 1.0 1.0 1.0 1 1
0.0 1.0 1.0 0.0 0 0