• 朴素贝叶斯算法
    • 功能介绍
    • 参数说明
    • 脚本示例
      • 运行脚本
      • 运行结果

    朴素贝叶斯算法

    功能介绍

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

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    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