朴素贝叶斯模型(Naive Bayesian Model,NBM)
朴素指的是 条件独立,即特征之间相互独立
贝叶斯公式需要用到 条件概率 和全概率公式的推导
进行对新闻文档分类
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split #将数据集按比列分隔为数据集和训练集
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
def naviebayes():
"""
贝叶斯进行文本分类
:return: None
"""
news = fetch_20newsgroups('all')
#训练集的特征值x_train,测试集的特征值x_test
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target)
#进行特征值抽取
tf = TfidfVectorizer()
#以训练集和测试集当中的词进行每篇文章的重要性统计
x_train = tf.fit_transform(x_train)
x_test = tf.fit_transform(x_test)
#朴素贝叶斯预测
NB = MultinomialNB(alpha=1.0)
NB.fit(x_train, y_train)
#进行预测
y_predict = NB.predict(x_test)
print(y_predict)
#进行准确性计算
score = NB.score(x_test, y_test)
print("预测正确性", score)
return None
if __name__ == "__main__":
naviebayes()
朴素贝叶斯的优点:对缺失数据不敏感,算法也比较简单,分类准确率高
缺点是:1.训练集误差大,会导致最终结果不好。
2.使用的样本假设独立,如果文本之间是非独立的,那么结果也不好。