You need to enable JavaScript to run this app. R语言随机森林手写数字分类colMeans结果绘图实现咨询
优惠活动
大模型
产品
解决方案
定价
更多

R语言随机森林手写数字分类colMeans结果绘图实现咨询

colMeans结果的绘图实现

完全可以为这部分分类错误率结果绘制可视化图表,操作不需要复杂的数据处理,对初学者非常友好。

前置数据整理

你现有代码最后输出的colMeans结果,是每个数字类别(0-9)对应的平均袋外分类错误率,本身已经带有和数字标签对应的列名——这部分列名是randomForest模型自动生成的,和你读入MNIST数据集时有没有设置列名没有关系,不需要额外补列名就能直接用来绘图。
把下面的代码接在你现有代码的末尾即可:

# 整理绘图用的结构化数据
class_err <- err_df %>%
  select(-"OOB") %>%
  colMeans() %>%
  data.frame(
    digit = names(.),
    error_rate = as.numeric(.)
  )

# 固定横轴数字顺序为0到9,避免画图时标签乱序
class_err$digit <- factor(class_err$digit, levels = as.character(0:9))

可选绘图方式

零依赖基础绘图

不需要额外安装新包,直接调用R内置函数即可生成基础柱状图:

barplot(
  height = class_err$error_rate,
  names.arg = class_err$digit,
  xlab = "手写数字类别",
  ylab = "平均分类错误率",
  main = "不同数字类别的随机森林分类错误率",
  col = "#4A90E2",
  border = NA
)

美观风格绘图

如果需要更整洁的可视化效果,可以调用ggplot2包绘制(首次使用前运行install.packages("ggplot2")完成安装即可):

library(ggplot2)
ggplot(class_err, aes(x = digit, y = error_rate, fill = digit)) +
  geom_col(width = 0.7, show.legend = FALSE) +
  labs(
    x = "手写数字类别",
    y = "平均分类错误率",
    title = "不同数字类别的随机森林分类错误率"
  ) +
  theme_minimal()

关于MNIST数据集无列名的说明

你目前的读入逻辑完全可以正常运行,不需要手动给784个像素列补充有意义的列名:

  • 使用col_names = FALSE读入的CSV文件,会自动给所有列分配X1到X785的默认列名,其中第一列X1就是数字标签,后续784列是像素灰度值。
  • 随机森林训练只需要正确匹配输入特征和对应标签,不要求特征列有业务含义的命名,不会影响模型训练、错误率计算和后续绘图的结果。

内容的提问来源于stack exchange,提问作者Hansika Sachdeva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 16:06:03