naive_bayes 算法,又叫朴素贝叶斯算法,朴素:特征条件独立;贝叶斯:基于贝叶斯定理。
实际应用场景
文本分类
垃圾邮件过滤
病人分类
- 朴素贝叶斯常用的三个模型有:
高斯模型:高斯分布就是正态分布,用于一般分类问题
多项式模型: 适用于文本数据
伯努利模型:小数量级文本数据
- 下面是sklearn中贝叶斯算的API
- 高斯模型
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)
- 多项式模型
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)
- 伯努利朴素贝叶斯
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)