<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 1.9. 樸素貝葉斯 校驗者: [@Kyrie](https://github.com/apachecn/scikit-learn-doc-zh) 翻譯者: [@TWITCH](https://github.com/apachecn/scikit-learn-doc-zh) 樸素貝葉斯方法是基于貝葉斯定理的一組有監督學習算法,即“簡單”地假設每對特征之間相互獨立。 給定一個類別 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 和一個從 ![x_1](https://box.kancloud.cn/52ae3f39b8eaed65d615e86fb8fe393c_16x12.jpg) 到 ![x_n](https://box.kancloud.cn/3774d2dbfecafcda1df69575cd2f5c6e_18x11.jpg) 的相關的特征向量, 貝葉斯定理闡述了以下關系: ![P(y \mid x_1, \dots, x_n) = \frac{P(y) P(x_1, \dots x_n \mid y)} {P(x_1, \dots, x_n)}](https://box.kancloud.cn/d5ced1b8e58cc42a45deaea6f0a32cdd_314x43.jpg) 使用簡單(naive)的假設-每對特征之間都相互獨立: ![P(x_i | y, x_1, \dots, x_{i-1}, x_{i+1}, \dots, x_n) = P(x_i | y) ,](https://box.kancloud.cn/8dd45513e9b57704ee011de14db5a4f3_339x19.jpg) 對于所有的 :math: i ,這個關系式可以簡化為 ![P(y \mid x_1, \dots, x_n) = \frac{P(y) \prod_{i=1}^{n} P(x_i \mid y)} {P(x_1, \dots, x_n)}](https://box.kancloud.cn/4cd9b210ad94b7901503d8405a47d876_305x44.jpg) 由于在給定的輸入中 ![P(x_1, \dots, x_n)](https://box.kancloud.cn/04ef83880e50c03943cac0ed168af70e_103x18.jpg) 是一個常量,我們使用下面的分類規則: ![P(y \mid x_1, \dots, x_n) \propto P(y) \prod_{i=1}^{n} P(x_i \mid y) \Downarrow \hat{y} = \arg\max_y P(y) \prod_{i=1}^{n} P(x_i \mid y),](https://box.kancloud.cn/1582b3a9faa7d112a5140bca79a82021_288x138.jpg) 我們可以使用最大后驗概率(Maximum A Posteriori, MAP) 來估計 ![P(y)](https://box.kancloud.cn/af45c1c793d14634ff315c3fe41957c6_37x18.jpg) 和 ![P(x_i \mid y)](https://box.kancloud.cn/829c1303c976294fb0a9cee7353b7365_67x19.jpg) ; 前者是訓練集中類別 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 的相對頻率。 各種各樣的的樸素貝葉斯分類器的差異大部分來自于處理 ![P(x_i \mid y)](https://box.kancloud.cn/829c1303c976294fb0a9cee7353b7365_67x19.jpg) 分布時的所做的假設不同。 盡管其假設過于簡單,在很多實際情況下,樸素貝葉斯工作得很好,特別是文檔分類和垃圾郵件過濾。這些工作都要求 一個小的訓練集來估計必需參數。(至于為什么樸素貝葉斯表現得好的理論原因和它適用于哪些類型的數據,請參見下面的參考。) 相比于其他更復雜的方法,樸素貝葉斯學習器和分類器非常快。 分類條件分布的解耦意味著可以獨立單獨地把每個特征視為一維分布來估計。這樣反過來有助于緩解維度災難帶來的問題。 另一方面,盡管樸素貝葉斯被認為是一種相當不錯的分類器,但卻不是好的估計器(estimator),所以不能太過于重視從 `predict_proba` 輸出的概率。 參考文獻: - H. Zhang (2004). [The optimality of Naive Bayes.](http://www.cs.unb.ca/~hzhang/publications/FLAIRS04ZhangH.pdf)Proc. FLAIRS. ## 1.9.1. 高斯樸素貝葉斯 [`GaussianNB`](generated/sklearn.naive_bayes.GaussianNB.html#sklearn.naive_bayes.GaussianNB "sklearn.naive_bayes.GaussianNB") 實現了運用于分類的高斯樸素貝葉斯算法。特征的可能性(即概率)假設為高斯分布: ![P(x_i \mid y) &= \frac{1}{\sqrt{2\pi\sigma^2_y}} \exp\left(-\frac{(x_i - \mu_y)^2}{2\sigma^2_y}\right)](https://box.kancloud.cn/8d3287d5fb091f6ade18713d52289312_303x50.jpg) 參數 ![\sigma_y](https://box.kancloud.cn/e421f4f93077d21cca8b6c82ae646a0c_17x14.jpg) 和 ![\mu_y](https://box.kancloud.cn/2999e7860b3368499207e5b6900d8f78_18x14.jpg) 使用最大似然法估計。 ``` >>> from sklearn import datasets >>> iris = datasets.load_iris() >>> from sklearn.naive_bayes import GaussianNB >>> gnb = GaussianNB() >>> y_pred = gnb.fit(iris.data, iris.target).predict(iris.data) >>> print("Number of mislabeled points out of a total %d points : %d" ... % (iris.data.shape[0],(iris.target != y_pred).sum())) Number of mislabeled points out of a total 150 points : 6 ``` ## 1.9.2. 多項分布樸素貝葉斯 [`MultinomialNB`](generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB "sklearn.naive_bayes.MultinomialNB") 實現了服從多項分布數據的樸素貝葉斯算法,也是用于文本分類(這個領域中數據往往以詞向量表示,盡管在實踐中 tf-idf 向量在預測時表現良好)的兩大經典樸素貝葉斯算法之一。 分布參數由每類 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 的 ![\theta_y = (\theta_{y1},\ldots,\theta_{yn})](https://box.kancloud.cn/b9ad045255e49a07f93be4ccc6b73af6_139x20.jpg) 向量決定, 式中 ![n](https://box.kancloud.cn/ee463e4b2bbbc723c7017b00e6d51b41_11x8.jpg) 是特征的數量(對于文本分類,是詞匯量的大小) ![\theta_{yi}](https://box.kancloud.cn/55249b4a5ef5f5c09a82dbd9fc5b33db_19x18.jpg) 是樣本中屬于類 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 中特征 ![i](https://box.kancloud.cn/9f004454a20e19932b2a071a380ff8ff_6x13.jpg) 概率 ![P(x_i \mid y)](https://box.kancloud.cn/829c1303c976294fb0a9cee7353b7365_67x19.jpg) 。 參數 ![\theta_y](https://box.kancloud.cn/8339fc5bf7ad7c50e39278d545b86bef_15x18.jpg) 使用平滑過的最大似然估計法來估計,即相對頻率計數: ![\hat{\theta}_{yi} = \frac{ N_{yi} + \alpha}{N_y + \alpha n}](https://box.kancloud.cn/6f4908256a124a20eeb1bcc1ea7aa4f4_113x42.jpg) 式中 ![N_{yi} = \sum_{x \in T} x_i](https://box.kancloud.cn/0ffc1c921fee12ff222cc8d51dc60a76_113x20.jpg) 是 訓練集 ![T](https://box.kancloud.cn/06919fa9c2e871085f301feb67d8e5b1_13x12.jpg) 中 特征 ![i](https://box.kancloud.cn/9f004454a20e19932b2a071a380ff8ff_6x13.jpg) 在類 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 中出現的次數,![N_{y} = \sum_{i=1}^{|T|} N_{yi}](https://box.kancloud.cn/941fa784c61764396014cd04c8679833_115x24.jpg) 是類 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 中出現所有特征的計數總和。先驗平滑因子 ![\alpha \ge 0](https://box.kancloud.cn/c6b9e9ba9051269011c9af151a5d6dee_45x15.jpg) 應用于在學習樣本中沒有出現的特征,以防在將來的計算中出現0概率輸出。 把 ![\alpha = 1](https://box.kancloud.cn/0302fcc29ad15414292af308bb1f3eb4_44x13.jpg) 被稱為拉普拉斯平滑(Lapalce smoothing),而 ![\alpha < 1](https://box.kancloud.cn/538db67894dd33dca81ede2bf53fbbe0_44x13.jpg) 被稱為利德斯通(Lidstone smoothing)。 > ## 1.9.3. 伯努利樸素貝葉斯 [`BernoulliNB`](generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB "sklearn.naive_bayes.BernoulliNB") 實現了用于多重伯努利分布數據的樸素貝葉斯訓練和分類算法,即有多個特征,但每個特征 都假設是一個二元 (Bernoulli, boolean) 變量。 因此,這類算法要求樣本以二元值特征向量表示;如果樣本含有其他類型的數據, 一個 `BernoulliNB` 實例會將其二值化(取決于 `binarize` 參數)。 伯努利樸素貝葉斯的決策規則基于 ![P(x_i \mid y) = P(i \mid y) x_i + (1 - P(i \mid y)) (1 - x_i)](https://box.kancloud.cn/98b23c2b914950e42b140ec538781f46_351x19.jpg) 與多項分布樸素貝葉斯的規則不同 伯努利樸素貝葉斯明確地懲罰類 ![y](https://box.kancloud.cn/0255a09d3dccb9843dcf063bbeec303f_9x12.jpg) 中沒有出現作為預測因子的特征 ![i](https://box.kancloud.cn/9f004454a20e19932b2a071a380ff8ff_6x13.jpg) ,而多項分布分布樸素貝葉斯只是簡單地忽略沒出現的特征。 在文本分類的例子中,詞頻向量(word occurrence vectors)(而非詞數向量(word count vectors))可能用于訓練和用于這個分類器。 `BernoulliNB` 可能在一些數據集上可能表現得更好,特別是那些更短的文檔。 如果時間允許,建議對兩個模型都進行評估。 參考文獻: - C.D. Manning, P. Raghavan and H. Schütze (2008). Introduction to Information Retrieval. Cambridge University Press, pp. 234-265. - A. McCallum and K. Nigam (1998). [A comparison of event models for Naive Bayes text classification.](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1529)Proc. AAAI/ICML-98 Workshop on Learning for Text Categorization, pp. 41-48. - V. Metsis, I. Androutsopoulos and G. Paliouras (2006). [Spam filtering with Naive Bayes – Which Naive Bayes?](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.5542)3rd Conf. on Email and Anti-Spam (CEAS). ## 1.9.4. 堆外樸素貝葉斯模型擬合 樸素貝葉斯模型可以解決整個訓練集不能導入內存的大規模分類問題。 為了解決這個問題, [`MultinomialNB`](generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB "sklearn.naive_bayes.MultinomialNB"), [`BernoulliNB`](generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB "sklearn.naive_bayes.BernoulliNB"), 和 [`GaussianNB`](generated/sklearn.naive_bayes.GaussianNB.html#sklearn.naive_bayes.GaussianNB "sklearn.naive_bayes.GaussianNB") 實現了 `partial_fit` 方法,可以動態的增加數據,使用方法與其他分類器的一樣,使用示例見 [Out-of-core classification of text documents](../auto_examples/applications/plot_out_of_core_classification.html#sphx-glr-auto-examples-applications-plot-out-of-core-classification-py) 。所有的樸素貝葉斯分類器都支持樣本權重。 與 `fit` 方法不同,首次調用 `partial_fit` 方法需要傳遞一個所有期望的類標簽的列表。 對于 scikit-learn 中可用方案的概覽,另見 [out-of-core learning](scaling_strategies.html#scaling-strategies) 文檔。 所有樸素貝葉斯模型調用 `partial_fit` 都會引入一些計算開銷。推薦讓數據快越大越好,其大小與 RAM 中可用內存大小相同。
                  <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>

                              哎呀哎呀视频在线观看