1、数据集说明

从给的Sort_1000pics数据集中了解到,该数据集中包括10类图片,对图片进行查看了解到,0-99对应与人(people);100-199对应与沙滩(beaches);200-299对应与建筑(buildings);300-399对应与大卡车(trucks);400-499对应与恐龙(dinosaurs);500-599对应与大象(elephants);600-699对应与花朵(flowers);700-799对应与马(horses);800-899对应与山峰(mountains);900-999对应与食品(food)。

2 算法流程

Step 1:根据目录分别把图像信息进行读取。

Step2:处理图像数据,先进行尺度变换到256*256,然后进行灰度化处理,再把灰度化处理后的数据进行归一化,把数据保存到矩阵X中;对读取的文件的名字进行处理,截取数字进行除100取商进行标签处理,把得到的标签保存到矩阵Y中。

Step3:根据原数据集的信息分别对0-9进行命名。

Step4:把处理后的数据X,Y按照Y中的比例进行分割处理,其中测试集为20%,训练集为80%。

Step5:建立模型(bytes、决策树、SVM)

Step6:把训练集带入模型进行训练。

Step7:把测试集带入训练好的模型进行预测,输出模型对测试集的准确率,召回率和F1测度。

3、结果分析

(1)召回率、准确率与F1测度

对于二分类问题中,可将样例根据其真实类别和分类器预测类别划分为:

  1. 真正例(True Positive,TP):真实类别为正例,预测类别为正例。
  2. 假正例(False Positive,FP):真实类别为负例,预测类别为正例。
  3. 假负例(False Negative,FN):真实类别为正例,预测类别为负例。
  4. 真负例(True Negative,TN):真实类别为负例,预测类别为负例。

然后可以构建混淆矩阵如下表所示:

准确率的计算公式为(Precision,P):表示在所有样本中预测正确的概率

P=TPTP+FP

召回率的计算公式为(Recall,R):表示在所有正例中预测为正例的概率

R=TPTP+FN

F1测度的计算公式为:

F1=2*P*RP+R

对于本实例中的多分类问题,也可以建立混淆矩阵,比如真实是人的正例中,实际预测为人的为TP,其余预测结果都为FN

(2)实验结果:

bytes模型分类预测指标图

决策树模型分类预测指标图

SVM模型分类预测指标图

(3)结果分析

本次实例是根据同一个Sort_1000pics数据集进行处理,将数据集进行尺度变化到灰度化再到归一化形成数据集矩阵,把80%的数据分别通过bytes、决策树和SVM进行训练,利用剩余的20%进行预测,得到三种模型对测试集的正确率、召回率和F1测度,根据最后的结果我们整体上发现,对于正确率是SVM>bytes>决策树,召回率是SVM>bytes>决策树,F1测度是SVM>bytes>决策树。因此我们可以得出对于该数据集的分类来说,SVM的效果优于其他两种。

同时根据后面的支持数可以发现我们测试集上的数据的确是根据原样本中的比例进行分割的,这样对于处理数据更具有说服力。

利用Sort_1000pics数据集实现图像分类相关推荐

  1. Paddle 环境中 使用LeNet在MNIST数据集实现图像分类

    简 介: 测试了在AI Stuio中 使用LeNet在MNIST数据集实现图像分类 示例.基于可以搭建其他网络程序. 关键词: MNIST,Paddle,LeNet #mermaid-svg-FlRI ...

  2. 使用Pytorch框架自己制作做数据集进行图像分类(一)

    第一章:Pytorch制作自己的数据集实现图像分类 第一章: Pytorch框架制作自己的数据集实现图像分类 第二章: Pytorch框架构建残差神经网络(ResNet) 第三章: Pytorch框架 ...

  3. Pytorch:利用迁移学习做图像分类

    **Pytorch:利用迁移学习做图像分类** 数据准备 数据扩充 数据加载 迁移学习 训练 验证 推理/分类 在这一篇文章中,我们描述了如何在 pytorch中进行图像分类.我们将使用Caltech ...

  4. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现

    ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 目录 利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 实现结果 实现代码 利用某数据集计算 ...

  5. DL之RetinaNet:基于RetinaNet算法(keras框架)利用resnet50_coco数据集(.h5文件)实现目标检测

    DL之RetinaNet:基于RetinaNet算法(keras框架)利用resnet50_coco数据集(.h5文件)实现目标检测 相关文章 DL之RetinaNet:RetinaNet算法的简介( ...

  6. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning

    DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning 输出结果   False: input_1 False: block1_conv1 F ...

  7. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构进行迁移学习

    DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构迁移学习 目录 数据集 输出结果 设计思路 1.基模型 2.思路导图 核心代码 更多输出 数据集 Datas ...

  8. TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%)

    TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%) 目录 输出结果 实现代码 输出结果 Successfully downloaded t ...

  9. DL之CNN:自定义SimpleConvNet【3层,im2col优化】利用mnist数据集实现手写数字识别多分类训练来评估模型

    DL之CNN:自定义SimpleConvNet[3层,im2col优化]利用mnist数据集实现手写数字识别多分类训练来评估模型 目录 输出结果 设计思路 核心代码 更多输出 输出结果 设计思路 核心 ...

最新文章

  1. bzoj1588[HNOI2002]营业额统计——双向链表
  2. Altium Designer圆形、椭圆形铺铜
  3. 实现不同vlan间PC不可互访,而不同vlan的PC均可访问服务器的特殊效果,(华为)...
  4. maven WEB项目启动没问题访问页面就报错:org.apache.jasper.JasperException: Unable to compile class for JSP
  5. 企业如何应对BT传输
  6. Electron开发入门
  7. 将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X
  8. 【原理+实战+视频+源码】docker映射端口教程
  9. 一个关于Remoting的简单例子
  10. html获取url参数值,js获取url中参数值的两种方法
  11. tsql 正则_sql里的正则表达式
  12. 一张图搞懂美国大数据产业(上)
  13. 小米cc9出厂线刷包_小米CC9手机忘记密码一键刷机解锁 | 线刷宝刷机工具刷机包下载...
  14. 枚举身份证后四位java代码
  15. winapi获取鼠标指向当前元素
  16. iOS开发初学者入门需要学习哪些知识?
  17. 按照题目打印菜单c语言,--单片机C语言编程实训
  18. Altium Designer初学教程(一)
  19. linux设备驱动那点事儿之SD卡驱动理论篇
  20. 基于深度学习的人脸识别系统:卷积神经网络实现(VIPLFaceNet、VGGNet、Xception、ResNet50、ResNet18)、AM-Softmax损失

热门文章

  1. C++ 计算多边形的面积,计算IOU
  2. 疑问代词which/what/who的用法
  3. Kubuntu简易安装教程(压缩磁盘版)
  4. [WriteUp]unctf-web-fuzz_md5
  5. 南岭之南_RWERWERWE_96921_新浪博客
  6. 论文阅读:Cyber-security research
  7. 用MATLAB做SVM预测值一直变,Matlab的SVM预测结果很低,帮我看看原因吧? 数据代码都有。...
  8. HDU-1014 线性同余法
  9. Android -- 读取assets文件夹下的资源
  10. 2021年煤气考试内容及煤气找解析