目录
前言
一、实验目的
二、实验内容和要求
三、步骤
总结
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
利用贝叶斯分类器对fetch_20newsgroups数据集进行分类。fetch_20newsgroups数据集是用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。
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.安装包
(耐心等待)
4. 参考:https://jingyan.baidu.com/article/ca2d939dc82d90aa6d31ce16.html
将20news-bydata.tar.gz放到C:\Users\xxx\scikit_learn_data\20news_home
5.修改_twenty_newsgroups.py
vene-->Lib-->siti-packages-->sklearn-->datasets-->_twenty_newsgroups.py
6.运行程序bys.py
(耐心等待,也可以打开C:\Users\xxx\scikit_learn_data\20news_home观察变化)
7.获得结果