gpt4 book ai didi

r - 插入符和 Shiny : cannot create prediction app driven by caret model

转载 作者:行者123 更新时间:2023-11-30 08:36:21 26 4
gpt4 key购买 nike

我试图用 Shiny 的方式开发一个简单的应用程序,在给定特定年龄、舱位、票价等的情况下,预测乘客在泰坦尼克号上幸存的概率。我希望这些变量是动态的,并希望计算预测的生存概率使用底层插入符号模型。

运行此代码时,我收到以下错误消息:

Warning: Error in [.data.frame: undefined columns selected Stack trace (innermost first): 70: [.data.frame 69: [ 68: sweep 67: predict.preProcess 66: predict 65: probFunction 64: predict.train 63: predict 62: predict 61: is.data.frame 60: data.matrix 59: observerFunc [#17] 4: 3: do.call 2: print.shiny.appobj 1: ERROR: [on_request_read] connection reset by peer

我的代码如下。有什么想法导致此错误吗?非常感谢。

require(shiny)
require(plyr)
require(dplyr)
require(ggplot2)
require(caret)
require(xgboost)

require(titanic)
df=na.omit(titanic_train)
y=data.matrix(select(df, Survived))
y[y==0]="N"
y[y==1]="Y"
x=data.matrix(select(df, Pclass, Age, SibSp, Parch, Fare))

tCtrl <- trainControl(method = "repeatedcv", number = 3, repeats=3, summaryFunction = twoClassSummary, verbose=TRUE, classProbs = TRUE)
fit_xgbTree= train(x, y, method = "xgbTree" , family= "binomial", trControl = tCtrl, metric = "ROC", preProc = c("center", "scale"))

ui = pageWithSidebar(
headerPanel("Titanic"),
sidebarPanel(
radioButtons("Pclass", "Passenger Class", choices=c("1", "2", "3"),selected = "1", inline = TRUE,width = NULL),
sliderInput("Age", "Passenger Age", min=0, max=80, value=30),
radioButtons("SibSp", "SibSp", choices=c("0", "1", "2", "3", "4", "5")),
radioButtons("Parch", "Parch", choices=c("0", "1", "2", "3", "4", "5", "6")),
sliderInput("Fare", "Passenger Fare", min=0, max=520, value=35)
),
mainPanel(
dataTableOutput('testTable'),
textOutput('outputBox')
)
)

server=function(input, output){

values <- reactiveValues()

newEntry <- observe({ # use observe pattern

x=as.data.frame(matrix(0, nrow=1, ncol=5))
colnames(x)=c("Pclass", "Age", "SibSp", "Parch", "Fare")

x[1,1]=as.numeric(input$Pclass)
x[1,2]=input$Age
x[1,3]=as.numeric(input$SibSp)
x[1,4]=as.numeric(input$Parch)
x[1,5]=input$Fare


pred <- data.matrix(predict(object=fit_xgbTree, x, type="prob")[,2])
isolate(values$df <- x)
#isolate(values$df2 <- x)
})

output$testTable <- renderDataTable({values$df})
}

shinyApp(ui=ui, server=server)

最佳答案

服务器中的以下修改非常适合我(添加生存概率列,我认为这就是您想要的):

server=function(input, output){

values <- reactiveValues()

newEntry <- observe({ # use observe pattern

x=as.data.frame(matrix(0, nrow=1, ncol=6))
colnames(x)=c("Pclass", "Age", "SibSp", "Parch", "Fare", "SurvProb")

x[1,1]=as.numeric(input$Pclass)
x[1,2]=input$Age
x[1,3]=as.numeric(input$SibSp)
x[1,4]=as.numeric(input$Parch)
x[1,5]=input$Fare

pred <- data.matrix(predict(object=fit_xgbTree, x[-length(x)], type="prob")[,2])
x[1,6] <- round(pred,2)

isolate(values$df <- x)
#isolate(values$df2 <- x)
})

output$testTable <- renderDataTable({values$df})
}

带输出 enter image description here

关于r - 插入符和 Shiny : cannot create prediction app driven by caret model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com