亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理介紹

 更新時(shí)間:2022年09月21日 16:25:43   作者:FeathersMouch  
這篇文章主要介紹了Python Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

之前在一次跟“某Fish”客戶進(jìn)行交談時(shí),我在的需求下學(xué)習(xí)了多項(xiàng)貝葉斯(Multinomial Naive Bayes)這個(gè)模型。

在了解多項(xiàng)貝葉斯模型之前,我們首先來了解一下樸素貝葉斯(Naive Bayes)模型。

貝葉斯定理所描述的,即為一個(gè)抽象事件A在抽象事件B發(fā)生的前提下,有多大概率會(huì)發(fā)生抽象事件A,其概率記為:

其中`P(B)`記為抽象事件B本身發(fā)生的概率,因此貝葉斯定理正好計(jì)算的是`抽象事件AB同時(shí)發(fā)生`概率與抽象事件B單獨(dú)發(fā)生的概率之比,這也能證明其抽象事件發(fā)生的先后順序。

文字太過生澀難懂?我這里有一張圖可以供大家參考:

可以通過上述流程我們看到:事件A為確定發(fā)生的事件,在A事件發(fā)生后,其有可能誘導(dǎo)了事件B的發(fā)生,也可能誘導(dǎo)失敗了。

拋開誘導(dǎo)失敗的情況,我們只談及誘導(dǎo)成功的情況。雖然我們這里說事件A成功誘導(dǎo)了事件B,但是作為一個(gè)獨(dú)立的實(shí)體,事件B本身發(fā)生的概率也是一個(gè)不確定值,因此這里需要貝葉斯模型進(jìn)行自動(dòng)推理,去計(jì)算前置的因素是否有可能誘導(dǎo)了后一事件的發(fā)生。

我們來看例子,這里我有一個(gè)數(shù)據(jù)框,我們來展示一下的現(xiàn)有列

ModelData.columns
Index(['全局水平', '大氣溫度 [℃]', '風(fēng)冷溫度 [℃]', '露點(diǎn)溫度 [℃]', '相對(duì)濕度 [%]', '平均十米內(nèi)風(fēng)速 [m/s]',
       '站點(diǎn)壓力 [mBar]', '降水量 [mm]', '定點(diǎn)角度 [°]', '方位角度 [°]', '氣團(tuán)大小', '氣團(tuán)變化'],
      dtype='object')

在這份模型數(shù)據(jù)。我們需要對(duì)氣團(tuán)變化進(jìn)行研究,其中我使用cuDF內(nèi)置的.to_pandas()函數(shù)將GPU數(shù)據(jù)框轉(zhuǎn)換為Pandas數(shù)據(jù)框,并使用.apply()+lambda隱函數(shù)對(duì)氣團(tuán)大小的變化進(jìn)行類分類,

這里因?yàn)槭褂昧薉ecisionTree決策樹來訓(xùn)練第二個(gè)模型,因此數(shù)據(jù)被命名為了df_train_Tree,最終模型仍然為多項(xiàng)貝葉斯模型。

# 使用.apply()函數(shù)來實(shí)現(xiàn)來為氣團(tuán)變化進(jìn)行標(biāo)簽化處理
df_train_Tree['氣團(tuán)變化'] = df_train_Tree['氣團(tuán)大小'].to_pandas().apply(lambda x:0 if x == 0 else 1 if x < 0 else 2 if x > 0 else None)

對(duì)數(shù)據(jù)進(jìn)行處理,并使用cuML繼承自sklearn的train_test_split()函數(shù)對(duì)數(shù)據(jù)進(jìn)行分割

# 進(jìn)行絕對(duì)值翻轉(zhuǎn)處理,以防止存在負(fù)值無法訓(xùn)練模型
ModelData = df_train_Tree.iloc[:,2:].to_pandas().apply(lambda x: x.abs())
ModelData = cf.DataFrame(ModelData)
# 構(gòu)建訓(xùn)練集和測(cè)試集
X_train, X_test, y_train, y_test = train_test_split(ModelData,ModelData['氣團(tuán)變化'], test_size=0.2, random_state=42)

通過sklearn.metrics下的plot_roc_curve()函數(shù)繪制的ROC曲線和roc_auc_score()函數(shù)我們發(fā)現(xiàn),此時(shí)的決策樹模型處于了過擬合的情況,在樹中我沒有指定明確的二值化數(shù)據(jù)(即樹判斷需要的最基本的真和假),因此使得樹在判斷時(shí)全部當(dāng)成了真的條件,所以樹已經(jīng)嚴(yán)重過擬合了。

通過之前的一些列的線性校驗(yàn),我們也得知了:前置的一切屬性均為`可能`誘導(dǎo)氣團(tuán)大小的`誘因`

因此在完全不確定的情況下,我們將使用全部屬性進(jìn)行模型的初步測(cè)試。

因此我們最終需要使用多項(xiàng)貝葉斯模型來進(jìn)行模型構(gòu)建,以下是多項(xiàng)貝葉斯在GPU環(huán)境上的實(shí)現(xiàn)

# 因?yàn)閷傩员姸啵虼宋覀冃枰攵囗?xiàng)分布樸素貝葉斯(Multinomial NB)
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
# 將訓(xùn)練集進(jìn)行訓(xùn)練
clf.fit(X_train.to_pandas(), y_train.to_numpy())
MultinomialNB()
# 繪制ROC曲線以驗(yàn)證預(yù)測(cè)結(jié)果
plot_roc_curve(clf, X_test.to_pandas(), y_test.to_numpy())
plt.title('ROC Curve')
plt.plot([0, 1], [0, 1], '--',color='orange')
plt.text(0.5, 0.5, 'ROC = %.2f' % roc_auc_score(y_test.to_pandas(),cp.asnumpy(y_pred)), ha='center', va='center', fontsize=14)

可以看到,在多項(xiàng)貝葉斯模型下,我們的成績表現(xiàn)已經(jīng)非常不錯(cuò)了,roc_auc_score分?jǐn)?shù)表現(xiàn)為:0.92,這也得以證明我們之前訓(xùn)練過的模型它是一個(gè)顯著過擬合的模型。

總結(jié):

在皮爾森系數(shù)過低,但又存在微弱線性相關(guān)的分類問題,我們可以嘗試使用推測(cè)的手段:即貝葉斯類模型,在我們能夠肯定前置因素可能會(huì)誘導(dǎo)后一事件的這一前提下,我們就可以進(jìn)行貝葉斯魔性的嘗試了

到此這篇關(guān)于Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理介紹的文章就介紹到這了,更多相關(guān)Multinomial Naive Bayes內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配

    python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配

    這篇文章主要介紹了python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python實(shí)現(xiàn)簡單層次聚類算法以及可視化

    Python實(shí)現(xiàn)簡單層次聚類算法以及可視化

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡單層次聚類算法以及可視化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 教你十行代碼實(shí)現(xiàn)python向手機(jī)推送通知功能

    教你十行代碼實(shí)現(xiàn)python向手機(jī)推送通知功能

    這篇文章主要介紹了十行代碼實(shí)現(xiàn)python向手機(jī)推送通知,這里使用的是pushplus的服務(wù),代碼也很簡單,運(yùn)行代碼后也是很快就可以收到消息推送,需要的朋友可以參考下
    2022-04-04
  • Python Opencv實(shí)現(xiàn)單目標(biāo)檢測(cè)的示例代碼

    Python Opencv實(shí)現(xiàn)單目標(biāo)檢測(cè)的示例代碼

    這篇文章主要介紹了Python Opencv實(shí)現(xiàn)單目標(biāo)檢測(cè)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • django序列化serializers過程解析

    django序列化serializers過程解析

    這篇文章主要介紹了django序列化serializers過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解PyQt5信號(hào)與槽的幾種高級(jí)玩法

    詳解PyQt5信號(hào)與槽的幾種高級(jí)玩法

    這篇文章主要介紹了詳解PyQt5信號(hào)與槽的幾種高級(jí)玩法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • jupyter notebook 多行輸出實(shí)例

    jupyter notebook 多行輸出實(shí)例

    這篇文章主要介紹了jupyter notebook 多行輸出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python中的內(nèi)置函數(shù)isdigit()

    Python中的內(nèi)置函數(shù)isdigit()

    這篇文章主要介紹了Python中的內(nèi)置函數(shù)isdigit(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 利用Python實(shí)現(xiàn)繪制論文中的曲線圖

    利用Python實(shí)現(xiàn)繪制論文中的曲線圖

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)繪制論文中需要的曲線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • 一篇文章帶你了解python迭代器和生成器

    一篇文章帶你了解python迭代器和生成器

    這篇文章主要介紹了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-08-08

最新評(píng)論