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

如何在Shiny应用中将XGBoost模型预测概率以有序列表输出?

解决方案

要把预测概率改成有序列表展示,你可以替换原来的renderPrint为renderUI,通过提取类别和对应概率值来生成有序列表。以下是修改后的代码:

output$variableValues <- renderUI({
  # 获取预测概率数据框
  pred_probabilities <- as.data.frame(predict(model, new_data, type = "prob"))
  # 提取第一条预测的概率值与对应类别(适配单条预测场景)
  prob_data <- pred_probabilities[1, ]
  # 生成有序列表元素
  tags$ol(
    lapply(seq_along(prob_data), function(i) {
      # 提取类别名(去掉.pred_前缀让显示更简洁)
      category <- gsub("\\.pred_", "", names(prob_data)[i])
      # 保留4位小数展示概率
      prob_value <- round(prob_data[i], 4)
      tags$li(paste0("类别", category, ": ", prob_value))
    })
  )
})

代码说明

  • 用renderUI替代renderPrint,支持自定义HTML格式输出;
  • gsub("\\.pred_", "", names(prob_data)[i])移除列名里的.pred_前缀,让类别标识更直观;
  • round(prob_data[i], 4)将概率值保留4位小数,提升可读性;
  • tags$ol和tags$li生成HTML有序列表,Shiny会自动渲染成对应的列表样式。

如果你的预测是多条数据,只需要调整循环逻辑,遍历每一行数据即可。

内容的提问来源于stack exchange,提问作者Abner Mác cola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:02:05