当前位置:网站首页>通俗易懂理解樸素貝葉斯分類的拉普拉斯平滑
通俗易懂理解樸素貝葉斯分類的拉普拉斯平滑
2022-06-27 09:41:00 【小白學視覺】
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅幹貨,第一時間送達這個男生的四個特征是長相不帥,性格不好,身高矮,不上進,我們最終得出的結論是女生不嫁!很多人說這是一道送分題,哈哈哈哈。我們用數學算法也說明了不靠譜是取不到老婆滴!
那麼我們再來一個例子,假如此時另外一對情侶,這對情侶中,男生的四個特征是,長相帥,性格爆好,身高高,上進,那麼他的女朋友嫁還是不嫁呢?可能又會有小夥伴說這是一道送分題,是不是,我們下面用事實說話!
下面通過例子來引出拉普拉斯平滑過程!
從例子開始
還是下面的訓練數據:

四個特征集合分別長相{帥,不帥}、性格{爆好,好,不好}、身高{高,中,矮}、上進與否{上進,不上進}
我們此時要求出該男生在四個特征分別是長相帥,性格爆好,身高高,上進的情况下,他對應的嫁與不嫁的概率誰大誰小,從而得出結論!
也就是要比較p(嫁|長相帥,性格爆好,身高高,上進)與p(不嫁|長相帥,性格爆好,身高高,上進)的概率大小。
按照樸素貝葉斯算法公式,我們可以得到如下公式:


由於兩者的分母都是p(長相帥)、p(性格爆好)、p(身高高)、p(上進),那麼我們可以不算分母,比較的時候只比較倆個公式分子大小即可。
好的,下面我們開始計算,先計算在四個特征的條件下,嫁的概率。
我們需要分別計算p(性格爆好|嫁)、p(長相帥|嫁)、p(身高高|嫁)、p(上進|嫁)
首先我們來算p(性格爆好|嫁)=?我們觀察訓練數據,發現如下:

居然沒有一個數據有爆好這個特點的,那麼p(性格爆好|嫁) = 0,那麼我們可以看出問題了,根據公式:

我們最後的p(嫁|長相帥、性格爆好、身高高、上進)由於一項p(性格爆好|嫁)為0,而造成整個概率為0,這顯然是錯誤的。
而這個錯誤的造成是由於訓練量不足,會令分類器質量大大降低。為了解决這個問題,我們引入Laplace校准(這就引出了我們的拉普拉斯平滑),它的思想非常簡單,就是對每個類別下所有劃分的計數加1,這樣如果訓練樣本集數量充分大時,並不會對結果產生影響,並且解决了上述頻率為0的尷尬局面。
引入拉普拉斯平滑的公式如下:


其中ajl,代錶第j個特征的第l個選擇,Sj代錶第j個特征的個數,K代錶種類的個數。
λ為1,這也很好理解,加入拉普拉斯平滑之後,避免了出現概率為0的情况,又保證了每個值都在0到1的範圍內,又保證了最終和為1的概率性質!
我們可以通過下面例子更加深刻的理解這個公式:(現在我們是加入拉普拉斯平滑)
加入拉普拉斯平滑
我們先需要分別計算p(性格爆好|嫁)、p(長相帥|嫁)、p(身高高|嫁)、p(上進|嫁),p(嫁)
p(性格爆好|嫁)=?統計滿足要求的如下面紅色部分

沒有一個滿足是性格爆好的條件,但是此時概率不為0,按照加入拉普拉斯平滑後的公式,性格特征的個數為爆好,好,不好,三種情况,那麼Sj為3,則最終概率為1/9 (嫁的個數為6+特征個數為3)
p(長相帥|嫁)=?統計滿足條件的如下面紅色部分:

由上圖可知滿足要求的為3個,按照加入拉普拉斯平滑後的公式,長相特征的個數為帥,不帥,兩種情况,那麼Sj為2,則最終概率p(長相帥|嫁)為4/8 (嫁的個數為6+特征個數為2)
p(身高高|嫁) = ?統計滿足條件的如下面紅色部分:

由上圖可知滿足要求的為3個,按照加入拉普拉斯平滑後的公式,身高特征的個數為高,中,矮情况,那麼Sj為3,則最終概率p(身高高|嫁)為4/9 (嫁的個數為6+特征個數為3)
p(上進|嫁)=?統計滿足要求的如下面紅色部分:

由上圖可知滿足要求的為5個,按照加入拉普拉斯平滑後的公式,上進特征的個數為上進,不上進情况,那麼Sj為2,則最終概率p(上進|嫁)為6/8 (嫁的個數為6+特征個數為2)
p(嫁) = ?滿足要求的如下紅色標注:

由上圖可知滿足要求的為6個,按照加入拉普拉斯平滑後的公式,種類的個數為嫁,不嫁情况,那麼K為2,則最終概率p(嫁)為7/14 = 1/2 (嫁的個數為6+種類個數為2)
到這裏為止,我們已經算出了在該男生條件下,嫁的概率為:
p(嫁|長相帥、性格爆好、身高高、上進) = 1/9*4/8*4/9*6/8*1/2
下面我們需要算出p(不嫁|長相帥、性格爆好、身高高、上進)的概率,然後與上面的數值進行比較即可,算法與上面完全一模一樣!這裏也走一遍。
我們需要估計出p(長相帥|不嫁)、p(性格爆好|不嫁)、p(身高高|不嫁)、p(上進|不嫁),p(不嫁)的概率分別為多少。
p(長相帥|不嫁)=?滿足要求如下面紅色標注:

由上圖可知滿足要求的為5個,按照加入拉普拉斯平滑後的公式,長相帥特征的個數為不帥,帥情况,那麼Sj為2,則最終概率p(長相不帥|不嫁)為6/8 (不嫁的個數為6+特征個數為2)
p(性格爆好|不嫁)=?滿足要求如下面紅色標注:

沒有一個滿足是性格爆好的條件,但是此時概率不為0,按照加入拉普拉斯平滑後的公式,性格特征的個數為爆好,好,不好,三種情况,那麼Sj為3,則最終概率p(性格爆好|不嫁)為1/9 (不嫁的個數為6+特征個數為3)
p(身高高|不嫁)=?滿足要求如下面紅色標注:

沒有一個滿足是身高高的條件,但是此時概率不為0,按照加入拉普拉斯平滑後的公式,身高特征的個數為高,中,矮,三種情况,那麼Sj為3,則最終概率p(身高高|不嫁)為1/9 (不嫁的個數為6+特征個數為3)
p(上進|不嫁)=?滿足要求如下面紅色標注:

由上圖可知滿足要求的為3個,按照加入拉普拉斯平滑後的公式,上進特征的個數為上進,不上進情况,那麼Sj為2,則最終概率p(上進|不嫁)為4/8 (不嫁的個數為6+特征個數為2)
p(不嫁)=?滿足要求的如紅色標注:

由上圖可知滿足要求的為6個,按照加入拉普拉斯平滑後的公式,種類的個數為嫁,不嫁情况,那麼K為2,則最終概率p(不嫁)為7/14 = 1/2 (不嫁的個數為6+種類個數為2)
到這裏為止,我們已經算出了在該男生條件下,不嫁的概率為:
p(不嫁|長相帥、性格爆好、身高高、上進) = 5/8*1/9*1/9*3/8*1/2
結論
於是我們可以得到
p(嫁|長相帥、性格爆好、身高高、上進) = 1/9*4/8*4/9*6/8*1/2 > p(不嫁|長相帥、性格爆好、身高高、上進) = 6/8*1/9*1/9*4/8*1/2
於是我們可以大膽的告訴女生,這樣的好男人,貝葉斯告訴你了,該嫁!!!
這就是我們使用拉普拉斯平滑後計算的整個算法過程!
希望對大家的理解有幫助~歡迎大家指錯交流!
好消息!
小白學視覺知識星球
開始面向外開放啦

下載1:OpenCV-Contrib擴展模塊中文版教程
在「小白學視覺」公眾號後臺回複:擴展模塊中文教程,即可下載全網第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟踪、生物視覺、超分辨率處理等二十多章內容。
下載2:Python視覺實戰項目52講
在「小白學視覺」公眾號後臺回複:Python視覺實戰項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰項目,助力快速學校計算機視覺。
下載3:OpenCV實戰項目20講
在「小白學視覺」公眾號後臺回複:OpenCV實戰項目20講,即可下載含有20個基於OpenCV實現20個實戰項目,實現OpenCV學習進階。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN、算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~边栏推荐
- MYSQL精通-01 增删改
- Freemarker
- BufferedWriter 和 BufferedReader 的使用
- Collection framework generic LinkedList TreeSet
- Improving efficiency or increasing costs, how should developers understand pair programming?
- 分布式文件存储系统的优点和缺点
- 详解各种光学仪器成像原理
- I'm almost addicted to it. I can't sleep! Let a bug fuck me twice!
- Only one ConfirmCallback is supported by each RabbitTemplate 解决办法
- leetcode:522. 最长特殊序列 II【贪心 + 子序列判断】
猜你喜欢

Markem Imaje Marken IMAS printer maintenance 9450e printer maintenance

产品力对标海豹/Model 3,长安深蓝SL03预售17.98万起

使用aspose-slides将ppt转pdf

提高效率 Or 增加成本,开发人员应如何理解结对编程?
快捷键 bug,可复现(貌似 bug 才是需要的功能 [滑稽.gif])

高等数学第七章微分方程

Win10 add right-click menu for any file

隐私计算FATE-离线预测

leetcode:968. 监控二叉树【树状dp,维护每个节点子树的三个状态,非常难想权当学习,类比打家劫舍3】

ucore lab5
随机推荐
高等数学第七章微分方程
Only one confirmcallback is supported by each rabbittemplate
Stop using system Currenttimemillis() takes too long to count. It's too low. Stopwatch is easy to use!
Use aspese Cells convert Excel to PDF
E+h secondary meter repair pH transmitter secondary display repair cpm253-mr0005
Apache POI的读写
How do I get the STW (pause) time of a GC (garbage collector)?
Rockermq message sending and consumption mode
I'm almost addicted to it. I can't sleep! Let a bug fuck me twice!
R language plot visualization: visualize the normalized histograms of multiple data sets, add density curve KDE to the histograms, set different histograms to use different bin sizes, and add edge whi
【系统设计】邻近服务
借助原子变量,使用CAS完成并发操作
R langage plotly visualisation: visualisation de plusieurs histogrammes normalisés d'ensembles de données et ajout d'une courbe de densité KDE à l'histogramme, réglage de différents histogrammes en ut
The R language uses the preprocess function of the caret package for data preprocessing: Center all data columns (subtract the average value from each data column), and set the method parameter to cen
C # solve the relative path problem using SQLite
R语言使用econocharts包创建微观经济或宏观经济图、demand函数可视化需求曲线(demand curve)、自定义配置demand函数的参数丰富可视化效果
细说物体检测中的Anchors
小哥凭“量子速读”绝技吸粉59万:看街景图0.1秒,“啪的一下”在世界地图精准找到!...
unity--newtonsoft.json解析
一次线上移动端报表网络连接失败问题定位与解决