sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器
今天我們在學習樸素貝葉斯分類器之前,我們先來總結下前面經常用到的內容,方法鏈:在scikit-learn中所有模型的fit方法返回的都是self。我們用一行代碼初始化模型并擬合,對應代碼如下:logreg = LogisticRegression().fit(x_train, y_train).
這里我們利用fit的返回值(即self)將訓練后的模型復制給變量logreg。這種方法釣友的拼接(先調用_init_.然后調用fit)被稱為方法鏈,在scikit-learn中方法鏈的另一種常用的方法是在一行代碼中同時fit和predict,如下:
logreg = LogisticRegression()
y_pred = logreg.fit(x_train, y_train).predict(x_test)
甚至可以在一行代碼中同時完成模擬初始化、擬合和預測,如下:
y_pred = LogisticRegression().fit(x_train, y_train).predict(x_test)
不過這種非常簡短的寫法并不完美,一行代碼中如果同時發生了很多事情,可能會使得代碼難以閱讀。此外,擬合后的回歸模型也沒有保存在任何變量中,所以我們既不能查看他也不能用他來預測其他數據。
線性模型的多分類決策邊界
樸素貝葉斯分類器:樸素貝葉斯分類器是和前面面我們說的線性模型非常相似的一種分類器,但他的訓練速度往往會更快。這種高效率所付出的代價是,樸素貝葉斯模型的泛化能力要比線性分類器稍差。
樸素貝葉斯分類器如此高效的原因在于他通過單獨查看每個特征來學習參數,并從每個特征中收集到簡單類別的統計數據。scikit-learn中實現了三種樸素貝葉斯分類器,分別為:應用于任意連續數據的GaussianNB,用于假定輸入數據為二分類的BernoulliNB和假定輸入計數數據(即每個特征代表某個對象的整數計數,比如一個單詞在句子里面出現的次數)。后兩種主要用于文本分類。
樸素貝葉斯分類器 很多優點和缺點與線性模型相同。它們的訓練和預測速度都很快,其訓練過程也容易理解,對應模型對高危稀疏數據的效果很好,對參數的魯棒性也不錯。對于非常大的數據集來說具有良好的效果。而其缺點就是這些數據集上即使使用 線性模型也會耗費大量的時間。
總結
以上是生活随笔為你收集整理的sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: object htmldivelemen
- 下一篇: 命名空间跟作用域是什么关系_魏如萱许光汉