朴素贝叶斯

该博客介绍了如何利用sklearn的MultinomialNB实现20类新闻的分类任务。通过数据集划分、TF-IDF特征抽取和模型训练,最终达到约85.5%的分类准确率。朴素贝叶斯模型因其稳定性和高效性常用于文本分类,但当特征间存在关联时可能表现不佳。
摘要由CSDN通过智能技术生成

朴素贝叶斯

sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
朴素贝叶斯分类
alpha:拉普拉斯平滑系数

案例:20类新闻分类

在这里插入图片描述

分割数据集

tfidf进行的特征抽取

朴素贝叶斯预测

#朴素贝叶斯对sklearn中的新闻集进行分类
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 nb_news():
    #获取所有新闻数据集
    news=fetch_20newsgroups(subset="all")
    # 进行数据集抽取
    x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,random_state=20)
    # 文本特征值抽取
    transfer=TfidfVectorizer()
    x_train=transfer.fit_transform(x_train)
    x_test=transfer.transform(x_test)
    # 朴素贝叶斯计算
    estimator=MultinomialNB()
    estimator.fit(x_train,y_train)

    y_predict=estimator.predict(x_test)
    # 结果计算
    print("准确率",estimator.score(x_test,y_test))
    print(news.target)
if __name__ == '__main__':
    nb_news()
准确率 0.8550509337860781
[10  3 17 ...  3  1  7]

Process finished with exit code 0

总结

优点:
朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
对缺失数据不太敏感,算法也比较简单,常用于文本分类。
分类准确度高,速度快
缺点:
由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值