自慰套教室~女子全员妊娠,精品无码国产自产拍在线观看蜜桃,亚洲国产精品成人精品无码区,久别的草原在线看视频免费

集團站切換校區

驗證碼已發送,請查收短信

復制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復制成功,如果自動跳轉微信失敗,請前往微信添加好友
打開微信
圖標

業界新聞

當前位置:首頁 > >業界新聞 > >

機器學習之樸素貝葉斯算法(下)

發布時間: 2019-05-12 00:20:17



機器學習之樸素貝葉斯算法(下)

1. 條件獨立性

兩個隨機變量X和Y,若對于所有x,y有P(X=x,Y=y)=P(X=x)P(Y=y)則稱隨機變量和是相互獨立的,記作X⊥Y。

如果關于X和Y的條件概率對于Z的每一個值有P(X=x,Y=y|Z=z)=P(X=x|Z=z)P(Y=y|Z=z),

則稱隨機變量X和Y在給定隨機變量Z時是條件獨立的,記作X⊥Y|Z。

2. 貝葉斯定理

貝葉斯定理是關于隨機事件A和B的條件概率(或邊緣概率)的一則定理。其中P(A|B)是在B發生的情況下A發生的可能性。

3. 樸素貝葉斯算法

基于貝葉斯定理特征條件獨立假設的分類方法。對于給定的訓練數據集,首先基于特征條件獨立假設學習輸入/輸出的聯合概率分布,然后基于此模型,對給定的輸入x,利用貝葉斯定理求出后驗概率較大的輸出y。根據貝葉斯定理,對一個分類問題,給定樣本特征X,樣本屬于類別H的概率是

P(H│X)=(P(X|H)P(H))/(P(X))

其中,是數據元組,通常用個屬性集的測量值描述。為某種假設,如數據元組屬于某個特定類。(│) 是后驗概率,或在條件下,的后驗概率。()是先驗概率,或的先驗概率,()獨立于。()是的先驗概率。

因為樸素的假設,即特征條件獨立,根據全概率公式展開,得出樸素貝葉斯法分類的基本公式:



4. 樸素貝葉斯實例

4.1. 實例描述

訓練集統計結果(指定統計詞頻):

現有一篇被預測文檔:出現了影院,支付寶,云計算,計算屬于科技、娛樂的類別概率?

4.2. 實例公式


注:w為給定文檔的特征值(頻數統計,預測文檔提供),c為文檔類別

公式可以理解為:

其中c可以是不同類別

公式分為三個部分:

l P(C):每個文檔類別的概率(某類別文檔數/總文檔數)

l P(W|C):給定類別下特征(被預測文檔中出現的詞)的概率

計算方法:P(F1│C)=Ni/N(訓練文檔中去計算)

Ni為該F1詞在C類別所有文檔中出現的次數

N為所屬類別C下的文檔所有詞出現的次數和

l P(F1,F2,…) 預測文檔中每個詞的概率

4.3. 分析的結果

?

5. 拉普拉斯平滑系數

問題:從上面的例子我們得到娛樂概率為0,這是不合理的,如果詞頻列表里面有很多出現次數都為0,很可能計算結果都為零

解決方法:拉普拉斯平滑系數

P(F1│C)=(Ni+α)/(N+αm)

α為指定的系數一般為1,m為訓練文檔中統計出的特征詞個數

6. 樸素貝葉斯算法案例

6.1. 案例描述-實現新聞分類

sklearn20類新聞分類

20個新聞組數據集包含20個主題的18000個新聞組帖子

6.2. 案例開發流程

1、加載20類新聞數據,并進行分割

2、生成文章特征詞

3、樸素貝葉斯estimator流程進行預估

6.3. 代碼實現

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
def naviebayes():
    """
    樸素貝葉斯進行文本分類
    :return: None
    """
    news = fetch_20newsgroups(subset='all')
    # 進行數據分割
    x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)
    # 對數據集進行特征抽取
    tf = TfidfVectorizer()
    # 以訓練集當中的詞的列表進行每篇文章重要性統計['a','b','c','d']
    x_train = tf.fit_transform(x_train)
    print(tf.get_feature_names())
    x_test = tf.transform(x_test)
    # 進行樸素貝葉斯算法的預測
    mlt = MultinomialNB(alpha=1.0)
    print(x_train.toarray())
    mlt.fit(x_train, y_train)
    y_predict = mlt.predict(x_test)
    print("預測的文章類別為:", y_predict)
    # 得出準確率
    print("準確率為:", mlt.score(x_test, y_test))
    print("每個類別的精確率和召回率:", classification_report(y_test, y_predict, target_names=news.target_names))
    return None
if __name__ == "__main__":
    naviebayes()
?

6.4. 案例結果

上一篇: PS教程_PS設計中色彩的基礎知識

下一篇: 華為培訓課程怎么樣_騰科老師為你解答

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優質服務!

<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>