日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

朴素贝叶斯算法详解及python代码实现

發(fā)布時(shí)間:2024/1/23 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 朴素贝叶斯算法详解及python代码实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

樸素貝葉斯算法

  • 算法原理
  • 對(duì)數(shù)據(jù)的要求
  • 算法的優(yōu)缺點(diǎn)
  • 算法需要注意的點(diǎn)
  • 算法實(shí)現(xiàn)(python)(待更.......)

算法原理

P(Ck∣xi)=p(xi∣ck)?p(ck)p(xi)=p(x1∣ck)?p(x2∣ck)....p(ck)p(x1)p(x2)....P(C_k|x_i)=\frac{p(x_i|c_k)*p(c_k)}{p(x_i)}=\frac{p(x_1|c_k)*p(x_2|c_k)....p(c_k)}{p(x_1)p(x_2)....}P(Ck?xi?)=p(xi?)p(xi?ck?)?p(ck?)?=p(x1?)p(x2?)....p(x1?ck?)?p(x2?ck?)....p(ck?)?(條件是獨(dú)立同分布)(原理給出先驗(yàn)求后驗(yàn))

對(duì)數(shù)據(jù)的要求

1.能處理 缺失值
2. 需要離散化連續(xù)性數(shù)據(jù)
3. 數(shù)據(jù)不需要標(biāo)準(zhǔn)化或者歸一化處理

算法的優(yōu)缺點(diǎn)

一、優(yōu)點(diǎn)
1、有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ),以及穩(wěn)定的分類效率
2、對(duì)小規(guī)模數(shù)據(jù)表現(xiàn)良好,能處理多分類問題,適合增量學(xué)習(xí)
3、 對(duì)于結(jié)果解釋容易理解
4、能夠處理缺失值

一、缺點(diǎn)
1、 對(duì)于輸入數(shù)據(jù)敏感(離散、連續(xù)…)
2、 需要計(jì)算先驗(yàn)概率,分類決策存在錯(cuò)誤率
3.、模型假設(shè)屬性之間相互獨(dú)立,但這個(gè)假設(shè)在實(shí)際中往往不成立

算法需要注意的點(diǎn)

1. 樸素貝葉斯為啥被稱為樸素?
樸素體現(xiàn)在每個(gè)特征都是獨(dú)立同分布(假設(shè))避免求解時(shí)面臨組合爆炸

2. p(xi∣ck)=0p(x_i|c_k)=0p(xi?ck?)=0時(shí)怎么辦(或者特征沒有取到樣例)?
采用拉普拉斯平滑p(y=ck)=∑i=1NI(yi=ck)+λN+kλp(y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+k\lambda}p(y=ck?)=N+kλi=1N?I(yi?=ck?)+λ?

3. 為什么獨(dú)立性假設(shè)在實(shí)際中很難成立,但樸素貝葉斯效果仍很好?
1、建模之前排除了特征之間的共線性
2、對(duì)于分類任務(wù),只要類別條件概率排序正確,無需精準(zhǔn)P
3、如果屬性間依賴對(duì)所有類別影響相同,或影響相互抵消,最后影響不大

算法實(shí)現(xiàn)(python)(待更…)

import numpy as np import pandas as pd from sklearn.naive_bayes import GaussianNB i mport os os.chdir(r'E:/wyz/Desktop/data/') #讀取數(shù)據(jù) data = pd.read_excel('lw.xlsx',sheet_name = 'Sheet2') #數(shù)據(jù)切分 y = data_model['target'] x = data_model.drop('target', axis=1) x_train, x_test, y_train, y_test = train_test_split(x, y,random_state=0,train_size=0.7) #訓(xùn)練 clf = GaussianNB() clf = clf.fit(x_train, y_train) #預(yù)測(cè) y_pred=clf.predict(x_test)

總結(jié)

以上是生活随笔為你收集整理的朴素贝叶斯算法详解及python代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。