机器学习06

朴素贝叶斯算法—预测新闻数据

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
def pusubeiyesi():
    news=fetch_20newsgroups(subset="all")  #获取数据


    #进行数据分割
    x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,test_size=0.25)
    # print("训练集特征值:",x_train)

    #进行特征抽取
    tf=TfidfVectorizer()

    #以训练集当中的词的列表进行每篇文章的重要性统计
    x_train=tf.fit_transform(x_train)
    # print(tf.get_feature_names_out())
    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))


    return None

pusubeiyesi()
运行结果:

[[0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 ...
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]
 [0. 0. 0. ... 0. 0. 0.]]
预测文章类别为: [12  3 11 ...  9 15 17]
准确率为: 0.8491086587436333

Process finished with exit code 0

朴素贝叶斯算法优缺点

在这里插入图片描述

精确率与召回率

在这里插入图片描述
API:
在这里插入图片描述

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
def pusubeiyesi():
    news=fetch_20newsgroups(subset="all")  #获取数据


    #进行数据分割
    x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,test_size=0.25)
    # print("训练集特征值:",x_train)

    #进行特征抽取
    tf=TfidfVectorizer()

    #以训练集当中的词的列表进行每篇文章的重要性统计
    x_train=tf.fit_transform(x_train)
    # print(tf.get_feature_names_out())
    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

pusubeiyesi()
运行结果(添加后):
每个类别的精确率和召回率:                           precision    recall  f1-score   support

             alt.atheism       0.85      0.72      0.78       209
           comp.graphics       0.88      0.76      0.82       234
 comp.os.ms-windows.misc       0.81      0.85      0.83       233
comp.sys.ibm.pc.hardware       0.76      0.84      0.80       257
   comp.sys.mac.hardware       0.93      0.84      0.88       254
          comp.windows.x       0.94      0.87      0.90       245
            misc.forsale       0.95      0.71      0.82       266
               rec.autos       0.95      0.89      0.92       266
         rec.motorcycles       0.91      0.96      0.93       245
      rec.sport.baseball       0.90      0.94      0.92       232
        rec.sport.hockey       0.94      0.98      0.96       239
               sci.crypt       0.73      0.98      0.84       249
         sci.electronics       0.92      0.80      0.86       244
                 sci.med       0.91      0.93      0.92       209
               sci.space       0.91      0.92      0.92       254
  soc.religion.christian       0.54      0.98      0.70       249
      talk.politics.guns       0.80      0.95      0.87       236
   talk.politics.mideast       0.91      0.98      0.94       231
      talk.politics.misc       0.99      0.62      0.77       200
      talk.religion.misc       1.00      0.17      0.29       160

                accuracy                           0.85      4712
               macro avg       0.88      0.84      0.83      4712
            weighted avg       0.87      0.85      0.84      4712


Process finished with exit code 0

依次是精确率,召回率

模型的选择与调优

交叉验证:

所有数据分成n等分

在这里插入图片描述

网格搜索(调参数):
在这里插入图片描述
在这里插入图片描述

from sklearn.model_selection import GridSearchCV
 Knn=KNeighborsClassifier()
    gc=GridSearchCV(Knn,param_grid={"n_neighbors":[1,3,5]},cv=2)
    gc.fit(x_train,y_train)
    #预测准确率
    print("在测试集的准确率:",gc.score(x_test))
    #把x_train分为验证集和训练集
    print("在交叉验证中最好的结果:",gc.best_score_)
    print("在交叉验证中最好的参数模型:",gc.best_estimator_)
    print("每次交叉验证后的验证集准确率和训练集准确率",gc.cv_results_)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 如果你想进行Python机器学习实训,可以考虑以下步骤: 1. 了解机器学习的基本概念和理论知识,例如监督学习、无监督学习、深度学习等。 2. 选择合适的Python机器学习库,例如Scikit-learn、TensorFlow、PyTorch、Keras等。 3. 学习Python机器学习库的使用方法,可以通过官方文档、教程视频或在线课程等方式进行学习。 4. 找到一些适合的机器学习案例进行实践,例如房价预测、图像识别、情感分析等。 5. 在实践中不断调试和优化模型,提高模型的准确度和性能。 6. 将学习到的知识和经验进行总结和分享,可以写博客、参与开源项目等方式进行交流。 ### 回答2: python机器学习实训是一种专门针对机器学习算法及其应用的培训课程。通过学习这门课程,学员可以了解机器学习的基本概念、算法原理和实际应用,掌握使用Python进行机器学习的技能。 在这门实训课程中,学员将学习Python编程语言的基础知识,包括语法、数据结构和常用库的使用。随后,学员将学习机器学习的基本概念,如训练集、测试集、分类、回归等,了解常用的机器学习算法和模型。 在实训过程中,学员将通过实际案例进行实践,使用Python编写机器学习模型的代码,进行数据预处理、特征提取、模型训练和评估。学员还可以学习到如何使用不同的机器学习库,如scikit-learn和tensorflow,来简化机器学习任务的实现。 此外,实训还将涵盖机器学习的应用领域,如自然语言处理、图像识别和推荐系统等。学员可以了解不同领域的机器学习应用,学习如何将机器学习算法应用到实际的问题中。 总之,python机器学习实训是一门系统化的培训课程,通过学习这门课程,学员可以获得Python编程和机器学习的双重能力,在实际应用中能够独立完成机器学习任务。 ### 回答3: Python机器学习实训是一种针对机器学习领域的培训课程,主要以Python语言为工具,让学员学习和掌握机器学习的相关知识和技能。 这种实训课程通常包含理论学习和实践操作两个方面。在理论学习阶段,学员会学习机器学习的基本概念、原理和算法,包括监督学习、无监督学习、深度学习等内容。学员会了解各种常用的机器学习算法,如线性回归、逻辑回归、决策树、支持向量机、神经网络等,并学习如何选择和优化合适的算法。 在实践操作阶段,学员会通过真实的数据集进行实际案例分析和建模实验。他们将使用Python编程语言和相关的机器学习库,如NumPy、SciPy、Scikit-learn等,进行数据预处理、特征工程、模型选择和评估等工作。学员会学习如何使用交叉验证、网格搜索等技术来优化模型,并通过可视化技术来展示和解释结果。 Python机器学习实训的目的是培养学员在机器学习领域的实际操作能力和解决问题的能力。通过这种实训,学员可以掌握Python语言,熟悉常见的机器学习算法和工具,并能够应用于实际项目中。实训过程中,学员还可以通过与导师和其他学员的互动交流,提高解决问题的能力和团队合作精神。 总而言之,Python机器学习实训提供了一个系统的学习机会,让学员在实践中掌握机器学习的技术和工具。这种实训有助于学员在人工智能领域中有竞争力,并为他们进一步深入研究和应用机器学习打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值