sklearn之貝葉斯分類器使用


貝葉斯分類器

原理:基於先驗概率P(Y),利用貝葉斯公式計算后驗概率P(Y/X)(該對象屬於某一類的概率),選擇具有最大后驗概率的類作為該對象所屬類

特點:數據可離散可連續;對數據缺失、噪音不敏感;若屬性相關性小,分類效果好,相關也不低於決策樹

朴素貝葉斯算法

學習的內容是先驗概率和條件概率(都使用極大似然估計這兩種概率),公式很難敲,不敲了

scikit-learn中根據條件概率不同的分布有多種貝葉斯分類器

高斯貝葉斯分類器(GaussianNB)【假設條件分布滿足高斯分布】

sklearn.naive_bayes.GaussianNB

  • 無參數,不需要調參

  • 方法

    • fit()
    • partial_fit():追加訓練模型,適用於規模大的數據集,划分為若干個小數據集,在這些小數據集上連續使用partial_fit訓練模型
    • predict()
    • score()
  • 屬性

    • class_prior_:每個類別的概率
    • class_count_:每個類別包含樣本數量

多項式貝葉斯分類器(MultinomialNB)【。。。多項式分布】

sklearn.naive_bayes.MutlnomialNB

  • 參數

    • alpha:浮點數,指定朴素貝葉斯估計公式中λ值
    • fit_prior=True:是否學習P(y=Ck),不學習則以均勻分布替代
    • class_prior=None:可以傳入數組指定每個分類的先驗概率,None代表從數據集中學習先驗概率
    • class_count:數組,形狀為(n_class,),每個類別包含訓練樣本數量
    • feature_count:數組,形狀(n_class,n_features),每個類別每個特征遇到的樣本數
  • 方法同上面高斯貝葉斯

伯努利貝葉斯分類器(BernoulliNB)【。。。二項分布】

  • 適用於離散特征
  • 特征取值只能是0和1(如文本分類中某個詞出現,特征為1;無,特征為0)

sklearn.naive_bayes.BernoulliNB

  • 參數

    • alpha:浮點數,指定貝葉斯估計中的λ
    • binarize=0.0:浮點數或None,None表明原始數據已二元化;浮點數作為邊界,特征取值大於該邊界作為1,否則作為0(通過這個浮點數來實現二元化)
    • fit_prior=True:是否學習P(y=Ck),不學習則以均勻分布替代
    • class_prior=None:可以傳入數組指定每個分類的先驗概率,None代表從數據集中學習先驗概率
    • class_count:數組,形狀為(n_class,),每個類別包含訓練樣本數量
    • feature_count:數組,形狀(n_class,n_features),每個類別每個特征遇到的樣本數
  • 方法同上

  • alpha對預測的影響,越大(>100)准確率反而下降

  • binarize不能過小不能太大,一般取所有特征的所有值的(Min+Max)/2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM