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

R语言应用KNN、朴素贝叶斯、SVM实现手写数字识别

R语言应用KNN、朴素贝叶斯、SVM实现手写数字识别

使用Rstudio完成,下载本文绑定资源即可开始实验

一、The MNIST Dataset

在本研究中,我们将研究机器学习中最著名的数据集之一——MNIST(改进型国家标准与技术研究院)数据库。完整数据集包含70,000张0到9的手写数字训练图像。但我们将仅使用其中1,500张的样本。以下代码将加载MNIST数据集:

# Load the dataset 
# 加载时注意路径是否正确,注意使用相对路径要求在同一目录下,可以使用print(getwd())查看当前工作路径,下同
load("digit_img.RData")

我们还将加载一些辅助函数以便处理该数据集:

source("digit_utils.R")

现在workspace中包含一个名为digit_img的变量

digit_img是一个256×1500的矩阵,其中第一维度是展开的"空间"(即手写数字图像为16×16=256的像素阵列),第二维度是1,500张图像(也就是说一共有1500张图片,每张图片是16*16=256的像素阵列)我们将前1,000张作为训练数据,后500张作为测试数据:

# Get training data
training_data <- t(digit_img[, 1:1000])

# Get testing data
testing_data <- t(digit_img[, 1001:1500])

为帮助理解数据,我们提供了display_digit函数。例如,查看前100张数字:

display_digit(digit_img[,1:100])

image-20250204190243889

变量digit_lab是一个长度为1,500的标签向量,表示数字的真实类别(1到9,10代表"零",我们将在下方转换):

# Load the labels
load("digit_lab.RData")

# Replace elements equal to 10 with 0 (it's easier to view this way)
digit_lab[digit_lab == 10] <- 0

可通过display_digit函数同时查看图像和标签:


                

http://www.kler.cn/a/533627.html

相关文章:

  • 并发编程 - 线程同步(三)之原子操作Interlocked简介
  • 宾馆民宿酒店住宿管理系统+小程序项目需求分析文档
  • 2024年12月 Scratch 图形化(二级)真题解析 中国电子学会全国青少年软件编程等级考试
  • pytorch使用SVM实现文本分类
  • Shell基础:中括号的使用
  • 10.8 LangChain Output Parsers终极指南:从JSON解析到流式处理的规范化输出实践
  • 【人工智能】通用人工智能 AGI
  • 文本分析NLP的常用工具和特点
  • 关于大数据
  • 第一天:Linux内核架构、文件系统和进程管理
  • 更换IP属地会影响网络连接速度吗
  • 一、0-1搭建springboot+vue3前后端分离-前端项目创建
  • 结构化与面向对象(下)
  • HTTP和HTTPS协议详解
  • 【最新】贷款市场报价利率LPR数据(2019-2025.1)
  • 无人机的续航能力和飞行效率概述!
  • 【自动化办公】批量图片PDF自定义指定多个区域识别重命名,批量识别铁路货物运单区域内容改名,基于WPF和飞桨ocr深度学习模型的解决方案
  • 【PyQt】使用PyQt5和Matplotlib实现的CSV数据可视化工具
  • 【React】受控组件和非受控组件
  • 在线教程丨YOLO系列10年更新11个版本,最新模型在目标检测多项任务中达SOTA
  • 逻辑回归原理
  • [数据结构] 线性表和顺序表
  • Elasticsearch面试技巧:从基础到高级
  • 血压计OCR文字检测数据集VOC+YOLO格式2147张11类别
  • 最短木板长度
  • 初识 Node.js