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

多种网站建设网络营销图片

多种网站建设,网络营销图片,哪个网站建设公司比较好,网站关键词修改import numpy as np from os import listdir from sklearn.neighbors import KNeighborsClassifier as kNN# 此函数用于将一个32x32的文本文件转换为一个1x1024的一维向量 def img2vector(filename):"""将32x32的文本文件转换为1x1024的向量:param filename: 要…
import numpy as np
from os import listdir
from sklearn.neighbors import KNeighborsClassifier as kNN# 此函数用于将一个32x32的文本文件转换为一个1x1024的一维向量
def img2vector(filename):"""将32x32的文本文件转换为1x1024的向量:param filename: 要转换的文本文件的文件名:return: 转换后的1x1024向量,如果出现错误则返回None"""try:# 初始化一个1x1024的零向量,用于存储转换后的数据returnVect = np.zeros((1, 1024))# 以只读模式打开指定的文件with open(filename) as fr:# 遍历文件的前32行,因为图像是32x32的for i in range(32):# 读取当前行的内容lineStr = fr.readline()# 遍历当前行的前32个字符for j in range(32):# 将当前字符转换为整数,并存储到向量的相应位置returnVect[0, 32 * i + j] = int(lineStr[j])# 返回转换后的向量return returnVectexcept FileNotFoundError:# 若文件未找到,打印错误信息print(f"错误:文件 {filename} 未找到。")return Noneexcept Exception as e:# 若发生其他未知错误,打印错误信息print(f"错误:处理文件 {filename} 时发生未知错误:{e}")return None# 此函数用于加载训练数据,返回训练数据矩阵和对应的标签列表
def load_training_data():"""加载训练数据:return: 训练数据矩阵和对应的标签列表,如果出现错误则返回None, None"""# 用于存储训练数据的标签hwLabels = []try:# 获取训练数据文件夹下的所有文件名trainingFileList = listdir('trainingDigits')# 计算训练数据的数量m = len(trainingFileList)# 初始化一个m行1024列的零矩阵,用于存储训练数据trainingMat = np.zeros((m, 1024))# 遍历训练数据文件夹下的所有文件for i in range(m):# 获取当前文件名fileNameStr = trainingFileList[i]# 从文件名中提取出对应的数字标签classNumber = int(fileNameStr.split('_')[0])# 将标签添加到标签列表中hwLabels.append(classNumber)# 调用img2vector函数将当前文件转换为向量vector = img2vector(f'trainingDigits/{fileNameStr}')if vector is not None:# 将转换后的向量存储到训练数据矩阵的相应行trainingMat[i, :] = vector# 返回训练数据矩阵和标签列表return trainingMat, hwLabelsexcept FileNotFoundError:# 若训练数据文件夹未找到,打印错误信息print("错误:训练数据文件夹未找到。")return None, Noneexcept Exception as e:# 若发生其他未知错误,打印错误信息print(f"错误:加载训练数据时发生未知错误:{e}")return None, None# 此函数用于加载测试数据,返回测试数据矩阵和对应的标签列表
def load_test_data():"""加载测试数据:return: 测试数据矩阵和对应的标签列表,如果出现错误则返回None, None"""try:# 获取测试数据文件夹下的所有文件名testFileList = listdir('testDigits')# 计算测试数据的数量mTest = len(testFileList)# 初始化一个mTest行1024列的零矩阵,用于存储测试数据testMat = np.zeros((mTest, 1024))# 用于存储测试数据的标签testLabels = []# 遍历测试数据文件夹下的所有文件for i in range(mTest):# 获取当前文件名fileNameStr = testFileList[i]# 从文件名中提取出对应的数字标签classNumber = int(fileNameStr.split('_')[0])# 将标签添加到标签列表中testLabels.append(classNumber)# 调用img2vector函数将当前文件转换为向量vector = img2vector(f'testDigits/{fileNameStr}')if vector is not None:# 将转换后的向量存储到测试数据矩阵的相应行testMat[i, :] = vector# 返回测试数据矩阵和标签列表return testMat, testLabelsexcept FileNotFoundError:# 若测试数据文件夹未找到,打印错误信息print("错误:测试数据文件夹未找到。")return None, Noneexcept Exception as e:# 若发生其他未知错误,打印错误信息print(f"错误:加载测试数据时发生未知错误:{e}")return None, None# 此函数用于进行手写数字识别测试,打印分类结果和错误率
def handwritingClassTest():"""手写数字识别测试"""# 调用load_training_data函数加载训练数据trainingMat, hwLabels = load_training_data()if trainingMat is None or hwLabels is None:# 若加载训练数据失败,直接返回return# 创建一个K近邻分类器对象,设置邻居数量为3,算法为自动选择neigh = kNN(n_neighbors=3, algorithm='auto')# 使用训练数据和标签对分类器进行训练neigh.fit(trainingMat, hwLabels)# 调用load_test_data函数加载测试数据testMat, testLabels = load_test_data()if testMat is None or testLabels is None:# 若加载测试数据失败,直接返回return# 初始化错误计数为0errorCount = 0.0# 计算测试数据的数量mTest = len(testLabels)# 遍历测试数据for i in range(mTest):# 使用训练好的分类器对当前测试数据进行预测classifierResult = neigh.predict(testMat[i].reshape(1, -1))# 打印分类结果和真实标签print(f"分类返回结果为 {classifierResult[0]}\t真实结果为 {testLabels[i]}")if classifierResult[0] != testLabels[i]:# 若分类结果与真实标签不一致,错误计数加1errorCount += 1.0# 打印错误的数量和错误率print(f"总共错了 {int(errorCount)} 个数据\n错误率为 {errorCount / mTest * 100:.2f}%")# 程序入口,当脚本作为主程序运行时,调用handwritingClassTest函数进行测试
if __name__ == '__main__':handwritingClassTest()
# 首先导入鸢尾花数据载入工具
from sklearn.datasets import load_iris
#导入KNN分类模型
from sklearn.neighbors import KNeighborsClassifier
#为了方便可视化,我们再导入matplotlib和seaborn
import matplotlib.pyplot as plt
import seaborn as sns
#加载鸢尾花数据集,赋值给iris变量
iris = load_iris()
#查看数据集的键名
iris.keys()
#查看数据集的特征名称
iris.feature_names
# 查看数据集中的样本分类
iris.target 
#将样本的特征和标签分别赋值给X和y
x, y = iris.data, iris.target 
#查看是否成功
x.shape
#导入数据集拆分工具
from sklearn.model_selection import train_test_split
#将X和y拆分为训练集和验证集
x_train, x_test, y_train, y_test = train_test_split(x,y)
#查看拆分情况
x_train.shape
#创建KNN分类器,参数保持默认设置
knn_clf = KNeighborsClassifier(n_neighbors=6)
#使用训练集拟合模型
knn_clf.fit(x_train,y_train)
#查看模型在训练集和验证集中的准确率print('训练集准确率:%.2f'%knn_clf.score(x_train, y_train))
print('验证集准确率:%.2f'%knn_clf.score(x_test, y_test))# 导入网格搜索
from sklearn.model_selection import GridSearchCV
# 定义一个从1到10的n_neighbors
n_neighbors = tuple(range(1,11,1))
# 创建网格搜索示例,estimator 用knn分类器
# 把刚刚定义的n_neighbors 传入param_grid参数
# cv参数指交叉验证次数为5
cv = GridSearchCV(estimator=KNeighborsClassifier(),param_grid = {'n_neighbors':n_neighbors},cv = 5)
# 使用网络搜索你和数据集
cv.fit(x,y)
# 查看最优参数
cv.best_params_
训练集准确率:0.96
验证集准确率:0.95{'n_neighbors': 6}
http://www.dtcms.com/wzjs/28425.html

相关文章:

  • 搭建网站需要什么软件百度用户服务中心官网电话
  • 简述站点推广有哪些方式百度手机助手安卓版下载
  • 锦州网站建设案例app拉新平台有哪些
  • 镇江网站建设推广公司百度网站推广费用多少
  • java做网站需要数据库吗百度快照是干嘛的
  • 网站怎么做导航条搜索引擎营销经典案例
  • 网站favicon图标网络营销的推广方式都有哪些
  • 哪个网站做黑色星期五订酒店活动如何在百度发广告推广
  • 可以上传软件的网站设计公司网站设计
  • 京东网站建设目的安装百度
  • 跨境电商网站制作东莞网站建设
  • 日本做h动漫电影网站苏州网站维护
  • 全球广告公司排名温州seo团队
  • 专门做图片剪影的网站深圳市龙华区
  • 中国建筑集团排名河北seo基础知识
  • 做招聘网站怎么设计框架百度搜索入口
  • 住房和创新建设部网站企业网站如何优化
  • 吉隆坡建设大学中文网站网站下载
  • 建立有效的()seo关键词优化推广
  • 求网页设计与网站建设企业文化理念
  • 性能网站建设美国站外推广网站
  • 电商网站开发流程文档杭州网站seo公司
  • 特种作业人员成绩查询谷歌seo优化中文章
  • 我们不是做网站的友链是什么
  • 互联网网站建设农产品网络营销策划书
  • 做的比较好的法律实务培训网站网站优化有哪些技巧
  • 廊坊百度优化郑州百度网站优化排名
  • 布吉医院网站建设国内新闻摘抄
  • flash做导航网站抖音营销
  • 做任务领积分兑换别的网站上的会员专门看网站的浏览器