<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 樸素貝葉斯機器學習 > 原文: [https://machinelearningmastery.com/naive-bayes-for-machine-learning/](https://machinelearningmastery.com/naive-bayes-for-machine-learning/) Naive Bayes是一種簡單但令人驚訝的強大的預測建模算法。 在這篇文章中,您將發現樸素貝葉斯算法的分類。閱讀這篇文章后,你會知道: * 樸素貝葉斯使用的表示,當模型寫入文件時實際存儲。 * 如何使用學習模型進行預測。 * 如何從訓練數據中學習樸素的貝葉斯模型。 * 如何最好地為樸素貝葉斯算法準備數據。 * 哪里可以獲得有關樸素貝葉斯的更多信息。 這篇文章是為開發人員編寫的,不承擔統計或概率的任何背景,盡管知道一點概率不會受到傷害。 讓我們開始吧。 ![Naive Bayes for Machine Learning](img/4b403ace39c6d94edae6ae4094ccca20.jpg) 樸素貝葉斯機器學習 攝影:[約翰摩根](https://www.flickr.com/photos/aidanmorgan/3249101355/),保留一些權利。 ## 貝葉斯定理的快速入門 在機器學習中,我們常常對給定數據(d)選擇最佳假設(h)感興趣。 在分類問題中,我們的假設(h)可以是為新數據實例分配的類(d)。 選擇最可能的假設的最簡單方法之一是給定我們可以使用的數據作為我們關于該問題的先驗知識。貝葉斯定理提供了一種方法,我們可以根據我們的先驗知識計算假設的概率。 貝葉斯定理的陳述如下: P(h | d)=(P(d | h)* P(h))/ P(d) 哪里 * **P(h | d)**是給定數據d的假設h的概率。這稱為后驗概率。 * **P(d | h)**是假設h為真的數據d的概率。 * **P(h)**是假設h為真的概率(無論數據如何)。這被稱為h的先驗概率。 * **P(d)**是數據的概率(不論假設)。 你可以看到我們感興趣的是用P(D)和P(d | h)從先驗概率p(h)計算P(h | d)的后驗概率。 在計算了許多不同假設的后驗概率后,您可以選擇概率最高的假設。這是最大可能假設,并且可以正式稱為[最大后驗](https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation)(MAP)假設。 這可以寫成: MAP(h)= max(P(h | d)) 要么 MAP(h)= max((P(d | h)* P(h))/ P(d)) or MAP(h)= max(P(d | h)* P(h)) P(d)是歸一化項,它允許我們計算概率。當我們對最可能的假設感興趣時,我們可以放棄它,因為它是常數并且僅用于標準化。 回到分類,如果我們的訓練數據中每個類都有偶數個實例,那么每個類的概率(例如P(h))將是相等的。同樣,這將是我們等式中的一個常數項,我們可以放棄它,以便最終得到: MAP(h)= max(P(d | h)) 這是一個有用的練習,因為當您在Naive Bayes上進一步閱讀時,您可能會看到所有這些形式的定理。 ## 獲取免費算法思維導圖 ![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg) 方便的機器學習算法思維導圖的樣本。 我已經創建了一個由類型組織的60多種算法的方便思維導圖。 下載,打印并使用它。 ## 樸素貝葉斯分類器 樸素貝葉斯是一種二元(兩類)和多類分類問題的分類算法。當使用二進制或分類輸入值描述時,該技術最容易理解。 它被稱為_樸素貝葉斯_或_白癡貝葉斯_因為每個假設的概率計算被簡化以使其計算易于處理。不是試圖計算每個屬性值P(d1,d2,d3 | h)的值,而是假定它們在給定目標值的情況下是條件獨立的并且計算為P(d1 | h)* P(d2 | H)并且等等。 這是一個非常強大的假設,在實際數據中最不可能,即屬性不相互作用。盡管如此,該方法在這種假設不成立的數據上表現出色。 ### 樸素貝葉斯模型使用的表示法 樸素貝葉斯的表示是概率。 概率列表存儲到文件中,用于學習的樸素貝葉斯模型。這包括: * **類概率**:訓練數據集中每個類的概率。 * **條件概率**:給定每個類值的每個輸入值的條件概率。 ### 從數據中學習樸素貝葉斯模型 從訓練數據中學習樸素的貝葉斯模型很快。 訓練很快,因為只需要計算每個類的概率和給定不同輸入(x)值的每個類的概率。優化程序不需要擬合系數。 #### 計算類概率 類概率只是屬于每個類的實例的頻率除以實例的總數。 例如,在二元分類中,屬于類1的實例的概率將計算為: P(class = 1)= count(class = 1)/(count(class = 0)+ count(class = 1)) 在最簡單的情況下,對于具有相同數量的實例的二元分類問題,每個類的概率為0.5或50%。 #### 計算條件概率 條件概率是給定類值的每個屬性值的頻率除以具有該類值的實例的頻率。 例如,如果“ _weather_ ”屬性的值為“ _sunny_ ”和“ _rainy_ ”,并且class屬性的類值為“_” -out_ “和” _stay-home_ “,然后每個類別值的每個天氣值的條件概率可以計算為: * P(weather = sunny | class = go-out)= count(天氣=晴天和class = go-out的實例)/ count(class = go-out的實例) * P(天氣=晴天| class = stay-home)=計數(天氣=陽光和班級=住宿的實例)/計數(班級=住宿的情況) * P(weather = rainy | class = go-out)= count(天氣= rainy和class = go-out的實例)/ count(class = go-out的實例) * P(天氣= rainy | class = stay-home)= count(天氣= rainy和class = stay-home的實例)/ count(class = stay-home) ### 用樸素貝葉斯模型進行預測 給定一個樸素的貝葉斯模型,您可以使用貝葉斯定理對新數據進行預測。 MAP(h) = max(P(d|h) * P(h)) 使用上面的例子,如果我們有_晴天_的_天氣_的新實例,我們可以計算: go-out = P(weather = sunny | class = go-out)* P(class = go-out) stay-home = P(天氣=晴天| class = stay-home)* P(class = stay -家) 我們可以選擇具有最大計算值的類。我們可以通過如下標準化它們將這些值轉換為概率: P(go-out | weather = sunny)= go-out /(go-out + stay-home) P(stay-home | weather = sunny)= stay-home /(go-out + stay-home ) 如果我們有更多的輸入變量,我們可以擴展上面的例子。例如,假裝我們有一個“ _car_ ”屬性,其值為“_正在工作_”和“_打破_”。我們可以將這個概率乘以等式。 例如,下面是“go-out”類標簽的計算,添加了car input變量設置為“working”: go-out = P(weather = sunny | class = go-out)* P(car = working | class = go-out)* P(class = go-out) ## 高斯樸素貝葉斯 樸素貝葉斯可以擴展到實值屬性,最常見的是假設高斯分布。 樸素貝葉斯的這種延伸被稱為高斯樸素貝葉斯。其他函數可用于估計數據的分布,但高斯(或正態分布)是最容易使用的,因為您只需要估計訓練數據的均值和標準差。 ### 高斯樸素貝葉斯的表示 在上面,我們使用頻率計算每個類的輸入值的概率。通過實值輸入,我們可以計算每個類的輸入值(x)的均值和標準差,以總結分布。 這意味著除了每個類的概率之外,我們還必須為每個類存儲每個輸入變量的均值和標準偏差。 ### 從數據中學習高斯樸素貝葉斯模型 這就像計算每個類值的每個輸入變量(x)的[平均值](https://en.wikipedia.org/wiki/Mean)和[標準偏差](https://en.wikipedia.org/wiki/Standard_deviation)值一樣簡單。 mean(x)= 1 / n * sum(x) 其中n是實例數,x是訓練數據中輸入變量的值。 我們可以使用以下等式計算標準偏差: 標準差(x)= sqrt(1 / n * sum(xi-mean(x)^ 2)) 這是x的每個值與x的平均值的平均平方差的平方根,其中n是實例數,sqrt()是平方根函數,sum()是sum函數,xi是a第i個實例的x變量的特定值和上述的均值(x),^ 2是正方形。 ### 用高斯樸素貝葉斯模型進行預測 使用[高斯概率密度函數](https://en.wikipedia.org/wiki/Normal_distribution)(PDF)計算新x值的概率。 在進行預測時,可以將這些參數插入到具有變量的新輸入的高斯PDF中,作為回報,高斯PDF將提供該類的新輸入值的概率的估計。 pdf(x,mean,sd)=(1 /(sqrt(2 * PI)* sd))* exp( - ((x-mean ^ 2)/(2 * sd ^ 2))) 其中pdf(x)是高斯PDF,sqrt()是平方根,mean和sd是上面計算的平均值和標準差, [PI](https://en.wikipedia.org/wiki/Pi) 是數值常數,exp()是數值常數e或[歐拉數](https://en.wikipedia.org/wiki/E_(mathematical_constant))上升到冪,x是輸入變量的輸入值。 然后我們可以將概率插入上面的等式中,以使用實值輸入進行預測。 例如,使用天氣和汽車的數值調整上述計算之一: go-out = P(pdf(天氣)| class = go-out)* P(pdf(car)| class = go-out)* P(class = go-out) ## 為樸素貝葉斯準備最佳數據 * **分類輸入**:樸素貝葉斯假設標簽屬性,如二進制,分類或名義。 * **高斯輸入**:如果輸入變量是實值,則假定為高斯分布。在這種情況下,如果數據的單變量分布是高斯分布或接近高斯分布,則算法將表現得更好。這可能需要去除異常值(例如,與平均值相差超過3或4個標準偏差的值)。 * **分類問題**:樸素貝葉斯是一種適用于二元和多類分類的分類算法。 * **對數概率**:計算不同類別值的可能性涉及將許多小數字相乘。這可能導致數值精度下降。因此,優良作法是使用概率的對數變換來避免這種下溢。 * **核函數**:不是假設數值輸入值的高斯分布,而是可以使用更復雜的分布,例如各種核密度函數。 * **更新概率**:當新數據可用時,您只需更新模型的概率即可。如果數據經常更改,這可能會有所幫助。 ## 進一步閱讀 關于Naive Bayes的另外兩篇你可能會感興趣的帖子是: * [如何在Python中從零開始實現樸素貝葉斯](http://machinelearningmastery.com/naive-bayes-classifier-scratch-python/) * [更好的樸素貝葉斯:從樸素貝葉斯算法中獲取最多的12個技巧](http://machinelearningmastery.com/better-naive-bayes/) 我喜歡書。下面是一些很好的通用機器學習書籍,供開發人員使用,包括樸素的貝葉斯: * [數據挖掘:實用機器學習工具和技術](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20),第88頁 * [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,第353頁 * [人工智能:現代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),第808頁 * [機器學習](http://www.amazon.com/dp/0070428077?tag=inspiredalgor-20),第6章 ## 摘要 在這篇文章中,您發現了Naive Bayes算法進行分類。你了解到: * 貝葉斯定理以及如何在實踐中計算它。 * 樸素貝葉斯算法包括表示,進行預測和學習模型。 * 樸素貝葉斯對實值輸入數據的改編稱為高斯樸素貝葉斯。 * 如何為樸素貝葉斯準備數據。 您對樸素貝葉斯或這篇文章有任何疑問嗎?發表評論并提出問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看