zoukankan      html  css  js  c++  java
  • python人工智能——机器学习——分类算法朴素贝叶斯算法对新闻进行分类案例

    朴素贝叶斯案例流程

    1、加载20类新闻数据,并进行分割

    2、生成文章特征词

    3、朴素贝叶斯estimator流程进行预估

    代码

    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(subset='all')
    
        # 进行数据分割
        x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)
    
        # 对数据集进行特征抽取
        tf = TfidfVectorizer()
    
        # 以训练集当中的词的列表进行每篇文章重要性统计
        x_train = tf.fit_transform(x_train)
    
        print(tf.get_feature_names())
    
        x_test = tf.transform(x_test)
    
        # 进行朴素贝叶斯算法的预测
        mlt = MultinomialNB(alpha=1.0)
    
        print(x_train.toarray())
    
        mlt.fit(x_train, y_train)
    
        y_predict = mlt.predict(x_test)
    
        print("预测的文章类别为:", y_predict)
    
        # 得出准确率
        print("准确率为:", mlt.score(x_test, y_test))
    
        print("每个类别的精确率和召回率:", classification_report(y_test, y_predict, target_names=news.target_names))
    
        return None
    
    if __name__=="__main__":
        naviebayes()
    

    P:

    关于sklearn.datasets.fetch_20newsgroups的下载速度极慢的解决
    https://segmentfault.com/a/1190000016498146?utm_source=tag-newest

  • 相关阅读:
    第三章:数据结构决定程序
    第二章:Rotate、变位词
    iOS常用宏定义
    去除重复的数据
    iOS开发者一些建设性的建议
    [iOS]应用内支付(内购)的个人开发过程及坑!
    UIDynamic(物理仿真)
    扇形进度
    iOS 之加密方式
    UIPresentationController
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12339392.html
Copyright © 2011-2022 走看看