楼主: polyphagia
890 0

[学习分享] 基于Shiny搭建病人患病预测计算器(随机森林算法)(2) [推广有奖]

  • 2关注
  • 0粉丝

已卖:251份资源

博士生

10%

还不是VIP/贵宾

-

威望
0
论坛币
1413 个
通用积分
208.6144
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
14260 点
帖子
59
精华
0
在线时间
318 小时
注册时间
2020-12-12
最后登录
2025-2-23

楼主
polyphagia 学生认证  发表于 2024-10-20 16:06:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
三、操作代码(续)3.下面将进行训练好的模型导入至新的环境中,利用shiny搭建前端及后端,形成患病风险计算器。

  1. load("D:\\Desktop\\试验.Rdata")
  2. ui=fluidPage(
  3.   tags$head(
  4.     tags$style(HTML("
  5.       .shiny-input-container {
  6.         font-size: 17px;  /* 修改 numericInput 的字体大小 */
  7.       }
  8.       .shiny-input-container input{
  9.        font-size: 17px;
  10.       }
  11.     "))
  12.   ),
  13.   titlePanel("随机森林预测模型"),
  14.   sidebarLayout(
  15.     sidebarPanel(
  16.       numericInput("SBP","平均SBP",50,min=1,max=500),
  17.       numericInput("DBPCV","DBPCV",0.001,min=0,max=0.1),
  18.       selectInput("动脉瘤位置","动脉瘤位置",c("MCA", "ICA" ,"ACA", "PC" ),multiple=F),
  19.       actionButton("predict", "预测")
  20.     ),#######################
  21.     mainPanel(
  22.       HTML("<b><span style='font-size: 32px;'>预测结果</span></b>"), tags$br(),
  23.       htmlOutput("text_output"),tags$br(),tags$br(),
  24.       plotOutput("warm",width = "100%",height = "450px"),
  25.       plotOutput("warmm",width = "100%",height = "450px")
  26.     )
  27.   )
  28. )


  29. server=function(input,output,session){
  30.   input_data=reactive({
  31.       data.frame(
  32.       平均SBP=input$SBP,
  33.       DBPCV=input$DBPCV,
  34.       动脉瘤位置=input$动脉瘤位置)

  35.   })   ##############
  36.   observeEvent(input$predict,{
  37.     prob=predict(model,input_data())$predictions[2]
  38.     output$text_output=renderUI({
  39.     HTML(paste("<span style='color: red; font-size:25px;'>","此病人患病的概率为:",round(prob,3), "</span>"))
  40.     })
  41.     output$warm=renderPlot(sv_importance(shv) + theme(axis.text = element_text(size = 16)) + theme(axis.title = element_text(size = 16)))
  42.     output$warmm=renderPlot(sv_importance(shv, kind = "beeswarm")+ theme(axis.text = element_text(size = 16)) + theme(axis.title = element_text(size = 16)))
  43.   })
  44. }
  45. shinyApp(ui,server)
复制代码


问题来了集美集帅们怎么做?针对自己的数据要改哪些代码?

  1. #########第15-16括号中根据自己需要进行增加及减少
  2. numericInput("SBP","平均SBP",50,min=1,max=500)  #连续性变量
  3. selectInput("动脉瘤位置","动脉瘤位置",c("MCA", "ICA" ,"ACA", "PC" ),multiple=F)#分类变量
  4. #########相应的后端也需要修改,用于传输输入的数据32-36行
  5. 平均SBP=input$SBP
  6. 动脉瘤位置=input$动脉瘤位置
复制代码

效果图:
b33d2267-9726-4c65-bf6d-94ae410e63e6.jpg

又是一个不眠之夜睡觉!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Shiny 随机森林 Shin 计算器 Predictions

Free of the shackles

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 06:32