实验一:贝叶斯网络及其应用

目录

前言

 一、实验目的

二、实验内容和要求

三、步骤

总结


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


 一、实验目的

  1. 掌握贝叶斯网络和全联合概论分布的定义、贝叶斯网络的条件依赖的表示。
  2. 掌握贝叶斯网络的构造过程,理解贝叶斯网络推理的原理。

二、实验内容和要求

利用贝叶斯分类器对fetch_20newsgroups数据集进行分类。fetch_20newsgroups数据集是用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。

三、步骤

1.新建一个项目

实验一:贝叶斯网络及其应用_第1张图片

2.创建bys.py

from sklearn.metrics import classification_report
from sklearn.naive_bayes import MultinomialNB
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split

#改了73,74
# 测试朴素贝叶斯
def nb():
    # 读取训练数据
    news = fetch_20newsgroups(subset='all')
    # 进行数据的分割训练集合测试集
    x_train,x_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25)

    # 特征工程(特征抽取),只需要对特征值处理即可
    tfidf = TfidfVectorizer()

    # 对测试集和训练集的特征值进行标准化
    x_train = tfidf.fit_transform(x_train)
    x_test = tfidf.transform(x_test)

    # 进行算法流程 # 超参数
    nb = MultinomialNB()
    #训练模型
    nb.fit(x_train,y_train)

    # 得出预测结果
    y_predict = nb.predict(x_test)
    print("预测结果:",y_predict)
    # 得出准确率
    score = nb.score(x_test,y_test)
    print("准确率:", score)

    print("每个类别的精确率和召回率:", classification_report(y_test, y_predict, target_names=news.target_names))


    return None

if __name__ == '__main__':
    nb()

 3.安装包

实验一:贝叶斯网络及其应用_第2张图片

(耐心等待)

4. 参考:https://jingyan.baidu.com/article/ca2d939dc82d90aa6d31ce16.html

将20news-bydata.tar.gz放到C:\Users\xxx\scikit_learn_data\20news_home

实验一:贝叶斯网络及其应用_第3张图片

5.修改_twenty_newsgroups.py

vene-->Lib-->siti-packages-->sklearn-->datasets-->_twenty_newsgroups.py

实验一:贝叶斯网络及其应用_第4张图片

实验一:贝叶斯网络及其应用_第5张图片

实验一:贝叶斯网络及其应用_第6张图片

实验一:贝叶斯网络及其应用_第7张图片

 6.运行程序bys.py

(耐心等待,也可以打开C:\Users\xxx\scikit_learn_data\20news_home观察变化)

7.获得结果


总结

你可能感兴趣的:(python,python,sklearn)