短信分类中的分类算法—朴素贝叶斯算法

  • naive_bayes 算法,又叫朴素贝叶斯算法,朴素:特征条件独立;贝叶斯:基于贝叶斯定理。

  • 实际应用场景

文本分类
垃圾邮件过滤
病人分类

  • 朴素贝叶斯常用的三个模型有:

高斯模型:高斯分布就是正态分布,用于一般分类问题
多项式模型: 适用于文本数据
伯努利模型:小数量级文本数据

  • 下面是sklearn中贝叶斯算的API
  1. 高斯模型 from sklearn.naive_bayes import GaussianNB
###1.高斯分布朴素贝叶斯
#高斯分布就是正态分布,用于一般分类问题
#例:鸢尾花数据

import numpy as np
from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB

iris = load_iris()
index = np.arange(0,150)
np.random.shuffle(index)

g_NB = GaussianNB()

x_train = iris.data[index[:-10]]
x_test = iris.data[index[-10:]]
y_train= iris.target[index[:-10]]
y_test = iris.target[index[-10:]]

g_NB.fit(x_train,y_train)
g_NB.score(x_test,y_test)
  1. 多项式模型from sklearn.naive_bayes import MultinomialNB
###2. 多项式分布朴素贝叶斯
#适用于文本数据

from sklearn.naive_bayes import MultinomialNB

m_NB = MultinomialNB()

m_NB.fit(x_train,y_train).score(x_test,y_test)
  1. 伯努利朴素贝叶斯from sklearn.naive_bayes import BernoulliNB
###3. 伯努利朴素贝叶斯
#小数量级文本数据

from sklearn.naive_bayes import BernoulliNB

b_NB = BernoulliNB()

b_NB.fit(x_train,y_train).score(x_test,y_test)

推荐阅读更多精彩内容