You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中从neuralnet模型提取实际类别标签?

解决方法

要将max.col得到的数字索引转换为对应的字符型Code标签,核心是利用neuralnet处理分类任务时的类别顺序规则——它会按照因变量(Code)的因子水平顺序生成概率矩阵的列,列名的数字对应因子水平的索引。

步骤1:获取原始Code的类别水平

首先从完整的Embeddings数据中提取Code的所有唯一类别,保持和模型输出列对应的顺序:

# 如果Code是字符型,先转为因子再取水平;如果已是因子,直接用levels(Embeddings$Code)
code_labels <- levels(as.factor(Embeddings$Code))

步骤2:将数字索引映射为字符标签

用max.col得到的索引值,从code_labels中取出对应的标签:

# 替换你原有的代码部分
predictionsmaxcol <- data.frame(
  MaxCol = max.col(predictions),
  Predicted_Code = code_labels[max.col(predictions)]
)

完整优化后的代码片段

替换你原代码中最后两行的内容:

Test <- as.matrix(Test %>% select(-Code))
predictions <- predict(nn, newdata = as.matrix(Test), type="class")

# 获取Code标签映射并生成结果
code_labels <- levels(as.factor(Embeddings$Code))
pred_indices <- max.col(predictions)
predictionsmaxcol <- data.frame(
  MaxCol = pred_indices,
  Predicted_Code = code_labels[pred_indices]
)

逻辑说明

neuralnet在处理分类任务时,会自动将字符型/因子型的因变量转换为二进制哑变量列,列的顺序严格对应因子水平的排序,列名用1、2...n表示,因此max.col得到的列号正好是code_labels的索引位置,直接索引即可得到对应的字符标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:55:18