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

ops/2025/2/6 11:50:28/

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.ppmy.cn/ops/156146.html

相关文章

国产化创新 守护开放边界网络安全

当今数字化浪潮的席卷下&#xff0c;企业、医院、政府部门等各类机构的信息化建设正以前所未有的速度推进。 在这个数字化转型的关键时期&#xff0c;尤其是在涉及国家核心利益和敏感数据的领域&#xff0c;我们不仅要追求技术的先进性&#xff0c;更要确保安全性和自主可控性…

java后端开发面试常问

面试常问问题 1 spring相关 &#xff08;1&#xff09;Transactional失效的场景 <1> Transactional注解默认只会回滚运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;如果方法中抛出了其他异常&#xff0c;则事务不会回滚&#xff08;数据库数据仍然插…

漏洞管理:筑牢网络安全防线的关键环节

在当今数字化时代&#xff0c;网络漏洞如同隐藏在系统深处的“地雷”&#xff0c;一旦被触发&#xff0c;可能引发数据泄露、系统瘫痪等一系列严重后果。因此&#xff0c;漏洞管理成为保障网络安全的重中之重。九河云来和大家聊一聊漏洞管理的相关知识把。 漏洞管理是一个系统…

.cc扩展名是什么语言?C语言必须用.c为扩展名吗?主流编程语言扩展名?Java为什么不能用全数字的文件名?

.cc扩展名是什么语言? .cc是C语言使用的扩展名&#xff0c;一种说法是它是c with class的简写&#xff0c;当然C语言使用的扩展名不止.cc和.cpp, 还包含.cxx, .c, .C等&#xff0c;这些在不同编译器系统采用的默认设定不同&#xff0c;需要区分使用。当然&#xff0c;编译器提…

java-重载与重写

介绍 在 Java 中&#xff0c;重载&#xff08;Overloading&#xff09; 和 重写&#xff08;Overriding&#xff09; 是两个重要的概念&#xff0c;它们都与方法有关&#xff0c;但它们的应用场景和行为完全不同。 通过理解重载和重写的区别&#xff0c;可以更好地设计类的继承…

Drools规则引擎初体验

前言 假设有这样一个场景&#xff0c;订单管理系统需要根据用户的消费情况&#xff0c;来为每个用户发放不同程度的优惠券&#xff0c;这个发放规则复杂且多变&#xff0c;我们该怎么办&#xff1f;在代码中写死显然是不可取的&#xff0c;规则一变就要修改代码&#xff0c;频…

Vue 图片引用方式详解:静态资源与动态路径访问

目录 前言1. 引用 public/ 目录2. assets/ 目录3. 远程服务器4. Vue Router 动态访问5. 总结6. 扩展&#xff08;图片不显示&#xff09; 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 在 Vue 开发中&#x…

后端【代码审查】C语言。

在后端开发中&#xff0c;你是如何进行代码审查的&#xff1f; 在后端开发中&#xff0c;进行代码审查是一项非常重要的质量保证活动。它不仅有助于发现潜在的问题和错误&#xff0c;还能促进团队成员之间的知识共享和技术水平提升。以下是我在进行代码审查时遵循的一些步骤和最…