当前位置: 首页 > news >正文

自己的主机做网站服务器有创意的设计公司名字大全

自己的主机做网站服务器,有创意的设计公司名字大全,制作网站的固定成本,wordpress 4.4.1声明#xff1a;这只是浅显的一个小试验#xff0c;且借助了AI。使用的是jupyter notebook,所以代码是一块一块#xff0c;从上往下执行的 知识点#xff1a;正则删除除数字和字母外的所有字符、高频词云、混淆矩阵 参考#xff1a;使用python和sklearn的中文文本多分类…声明这只是浅显的一个小试验且借助了AI。使用的是jupyter notebook,所以代码是一块一块从上往下执行的 知识点正则删除除数字和字母外的所有字符、高频词云、混淆矩阵 参考使用python和sklearn的中文文本多分类实战开发_文本多标签分类 用二分类器做 python 数据集中文_-派神-的博客-CSDN博客 数据【免费】初步的文本多分类小实验资源-CSDN文库 数据介绍训练集train.csv中有120000条数据测试集test.csv中有7600条数据。两个文件中记录的是新闻均只有3列第1列记录了新闻的种类world,sports,sci/Tech,Business,记录与class.txt中)总共有4类[3,4,2,1]且每一类的占比均为25%第2列记录了新闻标题第3列记录了新闻的大致内容。 数据总体情况 import numpy as np import pandas as pd import matplotlib.pyplot as plt import re # 正则匹配 plt.rcParams[font.sans-serif] [STKaiTi] plt.rcParams[axes.unicode_minus]False# 数据的情况 dfTrain pd.read_csv(train.csv,header None) dfTest pd.read_csv(test.csv,header None) print(f训练集数据量{len(dfTrain)}) print(f测试集数据量{len(dfTest)}) print(f数据{dfTrain.head(4)})数据预处理 空值与重复值 没有空值与重复值 # 检查是否有空值 print(f数据情况{dfTrain.info()}) print(f第1列空值:{dfTrain.iloc[0].isnull().sum()}) print(f第2列空值:{dfTrain.iloc[1].isnull().sum()}) print(f第3列空值:{dfTrain.iloc[2].isnull().sum()}) # 重复值分析与处理 print(f重复值{dfTrain.duplicated(keepFalse).sum()}) 重命名列名 由于数据中没有列名所以读取的时候headerNone(见第一段pd.read_csv)为了操作的方便添加列名[category,title,content]。 # 列重命名 dfTrain.columns [category,title,content] dfTest.columns [category,title,content] 删除除数字和英文的所有字符 为了展示出高频词的词云以及后续的处理这里使用正则表达式删除数据中第2、3列中除数字和字母外的所有字符且各词汇之间采用空格切分。 # 在a-z A-Z 0-9范围外的字符替换为空格字符 def remove_punctuation(text):cleaned_text re.sub(r[^a-zA-Z0-9], , text)return cleaned_text # 删除除数字和英文的所有字符 dfTrain[title] dfTrain[title].apply(remove_punctuation) dfTest[title] dfTest[title].apply(remove_punctuation) dfTrain[content] dfTrain[content].apply(remove_punctuation) dfTest[content] dfTest[content].apply(remove_punctuation) 补充 我这个试验只采用了第2列title的内容没有用第3列content 里的内容预测精度会有所下降。 这里呢其实还是可以有其他操作的。比如将第2列和第3列合并成新的一列然后用新的一列作为输入。还可以删除英文里面的停用词减少无意义的高频词。 不同分类对数据进行可视化 # 训练集种类 print(f种类{dfTrain.iloc[:,0].unique()}) # 训练集各类别数据量 d {类别:dfTrain[category].value_counts().index,数量:dfTrain[category].value_counts()} Num pd.DataFrame(data d).reset_index(drop True)# 柱状图 plt.figure(1,figsize (10,6),dpi 400) plt.title(训练集类别数据量,fontsize 15) # 标题 labels [World,Sports,Business,Sci/Tech] colors [skyblue, green, orange,red] plt.bar(labels,Num[数量], width0.6,colorcolors) # 添加数据标签 for i in range(len(Num)):plt.text(labels[i], Num[数量][i]0.01, f{Num[数量][i]}, hacenter,rotation 0,fontsize 15)plt.xlabel(种类,fontsize 15) plt.ylabel(数量,fontsize 15) plt.show()# 测试集种类 print(f种类{dfTest.iloc[:,0].unique()}) # 测试集各类别数据量 d2 {类别:dfTest[category].value_counts().index,数量:dfTest[category].value_counts()} Num2 pd.DataFrame(data d2).reset_index(drop True)# 柱状图 plt.figure(2,figsize (10,6),dpi 400) plt.title(测试集类别数据量,fontsize 15) # 标题 labels [World,Sports,Business,Sci/Tech] colors [skyblue, green, orange,red] plt.bar(labels,Num2[数量], width0.6,colorcolors) # plt.xlabel(Num[类别]) # 添加数据标签 for i in range(len(Num2)):plt.text(labels[i], Num2[数量][i]0.05, f{Num2[数量][i]}, hacenter,rotation 0,fontsize 15) plt.xlabel(种类,fontsize 15) plt.ylabel(数量,fontsize 15) plt.show() 高频词词云 画出训练集中4种分类的新闻标题的top10的高频词云需要借助wordcloud库 import pandas as pd import matplotlib.pyplot as plt from wordcloud import WordCloud from collections import defaultdict# 创建一个存储每个类别文本的字典 category_text defaultdict(str)# 将每个类别的文本合并到对应的字典项中 for category, sentence in zip(dfTrain[category], dfTrain[title]):category_text[category] sentence # 生成词云图像并绘制 for category, text in category_text.items():wordcloud WordCloud(width800, height400,max_words10, background_colorwhite).generate(text)plt.figure(figsize(10, 5))plt.imshow(wordcloud, interpolationbilinear)plt.title(fWord Cloud for Category {category},fontsize 30)plt.axis(off)plt.show()根据我们事先的得知的数字与类别的对应关系1-World2-Sports3-Business4-Sci/Tech观察每种类别的高频词云图可以看出对于world常出现诸如Iraq、US等国家名称对于Sports类常出现Win,Game等相关词汇对于Business类常出现deal,oil,price等相关词汇对于Sci/Tech类常出现MicroSoft,Intel等相关词汇。因此每一类的高频词云是符合当前类的特征的。 模型预测 思路为了能使模型能够对文本进行预测首先需要使用TF-IDF向量化器进行文本特征提取(至于原理什么的我不知道AI生成的。然后再次基础上借助预测模型进行多分类预测在训练集中训练测试集中测试 使用朴素贝叶斯 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB from sklearn.metrics import accuracy_score, classification_report# 划分x,y X_train dfTrain[title] X_test dfTest[title] y_train dfTrain[category] y_test dfTest[category] # 文本特征提取使用词袋模型 vectorizer CountVectorizer() X_train_vec vectorizer.fit_transform(X_train) X_test_vec vectorizer.transform(X_test) # 训练朴素贝叶斯分类器 clf MultinomialNB() clf.fit(X_train_vec, y_train) # 预测 y_pred clf.predict(X_test_vec) # 评估模型性能 accuracy accuracy_score(y_test, y_pred) print(fAccuracy: {accuracy:.2f}) # 输出分类报告 print(classification_report(y_test, y_pred)) 下图为朴素贝叶斯的预测结果总体的预测准确率为0.87。但是对于不同类别的预测效果也不同可以看出朴素贝叶斯对类别2的预测效果最好的精确度、召回率、f1分数均能达到0.9以上  画出混淆矩阵  from sklearn.metrics import confusion_matrix import seaborn as sns# 计算混淆矩阵 conf_matrix confusion_matrix(y_test, y_pred)# 绘制混淆矩阵 plt.figure(figsize(8, 6),dpi 400) sns.heatmap(conf_matrix, annotTrue, fmtd, cmapBlues, xticklabelsclf.classes_, yticklabelsclf.classes_) plt.xlabel(预测) plt.ylabel(实际) plt.title(混淆矩阵) plt.show() 下图为朴素贝叶斯预测的混淆矩阵。可以看出对于朴素贝叶斯模型来说容易将第1类错误预测为第3类第2类错误预测为第1类第3类错误预测为第1、4类第4类错误预测为第3类。
http://www.pierceye.com/news/363098/

相关文章:

  • 旅游网站建设计划书wordpress弱密码
  • 网站建设项目报价网站开发与设计结课论文
  • 公司做网站企业做网站需注意什么
  • 已经注册了域名 怎么做网站自己注册一家公司需要多少钱
  • 沈阳做网站的电话网站 扩展
  • 健身俱乐部网站开发文档重庆 企业网站建设
  • 深圳航空公司官方网站招聘做网站广告公司
  • .php的网站是怎么做的最美情侣免费视频
  • v9网站模板学做西点的网站
  • 网站查询空间商工厂生产erp管理系统
  • 365房产南京网站响应式wordpress主题
  • 上海网站建设 app开发佛山黄页企业名录
  • 网站优化文档天津建设厅网站
  • 网站建设自适应网站电商网站运营规划
  • 做网站如何报价泰州建设局网站质监站
  • 做家具网站电影网站做流量吗
  • 免费1级做看网站制作单页网站要网址
  • 网站返回首页怎么做的好看自贡网站优化
  • 自己的网站如何做推广wordpress积分与奖励
  • 产品包装设计网站网站建设 中企动力宜昌
  • 英语营销型网站建设北京pk10网站开发
  • 交换链接适合哪些网站东莞小程序开发制作
  • 医院网站建设网站阿里巴巴网站是用什么技术做的
  • 潍坊 餐饮网站建设淘宝seo优化
  • 樟木头镇网站建设公司WordPress企业响应式主题
  • 怎么给网站做备份呢怎么去建设微信网站
  • 成都各公司网站中小企业网站建设 论文
  • 广告网站建设实训报告做电商从哪里入手
  • 建电子商务网站需要多少钱做网站的简称
  • 制定网站推广方案网络营销网站分析