zoukankan      html  css  js  c++  java
  • 朴素贝叶斯分类器实现

    1. 说明

    • 朴素贝叶斯分类器有三种:
      • GaussianNB: 适用于连续分布样本
      • MultinomialNB: 适用于多元离散值分布样本
      • BernoulliNB: 适用于二元离散值或者很稀疏的多元离散值分布样本
    • 使用sklearn库实现

    2. Api

    2.1 构建自定义样本

    • 为了简单,随便写几个样本
    import numpy as np
    
    X = np.array([[6, 4], [2, 3], [1, 4], [1, 3], [5, 5], [5, 2], [1, 2], [4, 1], [8, 2]])
    Y = np.array([0, 1, 1, 1, 0, 2, 1, 2, 3])
    
    X2 = np.array([[7, 3]])
    Y2 = np.array([3])
    

    2.2 GaussianNB

    from sklearn.naive_bayes import GaussianNB
    # 先验为高斯分布的朴素贝叶斯
    
    gaussianNB = GaussianNB()
    gaussianNB.fit(X, Y)
    gaussianNB.partial_fit(X2, Y2) # 支持增量训练
    # dataset_predict_y = gaussianNB.predict(X)
    

    2.3 MultinomialNB

    from sklearn.naive_bayes import MultinomialNB
    # 先验为多项式分布的朴素贝叶斯
    
    multinomialNB = MultinomialNB()
    multinomialNB.fit(X, Y)
    multinomialNB.partial_fit(X2, Y2)
    # dataset_predict_y = gaussianNB.predict(X)
    

    2.4 BernoulliNB

    from sklearn.naive_bayes import BernoulliNB
    # 先验为伯努利分布的朴素贝叶斯
    
    bernoulliNB = BernoulliNB()
    bernoulliNB.fit(X, Y)
    bernoulliNB.partial_fit(X2, Y2)
    # dataset_predict_y = gaussianNB.predict(X)
    

    3. Note

    • 虽然每个分类器适用于不同数据分布的样本,但是大多数还是 GaussianNB 分类器的效果更好
  • 相关阅读:
    fibnacci数列(斐波那契数列)在python中实现
    《信息安全专业导论》第5周学习总结
    自我介绍
    python模拟进程状态
    俄罗斯方块游戏
    小学四则运算编程实践
    熟悉编程语言
    第六周学习总结
    第五周学习总结
    20201318第四周总结
  • 原文地址:https://www.cnblogs.com/xpengp/p/14036496.html
Copyright © 2011-2022 走看看