Сравните результат предыдущей модели. Блестящая вставка. - PullRequest
1 голос
/ 18 июня 2020

Я хотел бы создать приложение Shiny, которое показывает результат модели, обученной курсору. Затем, когда запускается вторая модель, она сохранит предыдущий результат на дисплее и покажет самый последний результат. Я попытался закодировать l oop с ответами в сообщении Предыдущий ввод в Shiny и закодировать вывод с ответами в сообщении R Shiny: сохранить старый вывод

Однако я не могу придумать способ отображения вывода курсора в виде сводки или, может быть, таблицы, которая облегчила бы чтение.

Это код, который у меня есть. Проблема заключается в части output $ model_record

library(shiny)
library(dplyr)
library(caret)

X <- r_sample_factor(c("low", "high"), n=232)
MAMAMA<-r_sample_factor(c("C/C", "C/G", "G/G"), n=232)
MEMEME<-r_sample_factor(c("C/C", "C/T", "T/T"), n=232)
MIMIMI<-r_sample_factor(c("A/A", "A/T", "T/T"), n=232)

datos<-data.frame(X,MAMAMA,MEMEME,MIMIMI)

set.seed(12345)
#Define the size of training dataset
inTrain <- createDataPartition(y=datos$X, p=0.66666666666666667, list=FALSE)
#Create training and test data
datos_train<-datos[inTrain,]
datos_test<-datos[-inTrain,]
#Label
class_train<-datos[inTrain,1]
class_test<-datos[-inTrain,1]


ui<-    fluidPage(

                sidebarLayout(

                    sidebarPanel(

                        h3("Design your algorithm"),
                        radioButtons("algorithm",
                                     "Select one algorithm to visualize its output",
                                     choices= c("Random Forest" = "rf",
                                                "Artificial Neural Network" = "mlp",
                                                "Support Vector Machine" = "svmRadial") ),

                        radioButtons("checkGroup", 
                                     "Select a resampling method", 
                                     choices = c(#"Nothing" = "none",
                                                 "Cross validation" = "cv", 
                                                 "Bootstrap" = "boot"
                                     )
                        ),

                        numericInput("num", 
                                     "Select a number of resampling events", 
                                     value = 5),

                        checkboxGroupInput("preproc", 
                                           "Select one or multiple preprocessing methods", 
                                           choices = c("Center" = "center", 
                                                       "Scale" = "scale", 
                                                       "Box Cox" = "BoxCox")
                        ),


                        actionButton(inputId = "fit_model",
                                     label = "Fit Model"),
                        numericInput(inputId = "model_to_show",
                                     label = "Show N most recent models",
                                     value = 2)
                    ),
                    mainPanel(
                        htmlOutput("model_record")
                    )
                )
            )


    server<-function(input, output, session){

            Model <- reactiveValues(
                Record = NULL
            )

            observeEvent(
                input[["fit_model"]],
                {
                    fit <- 
                        train(X~., 
                              data= datos_train, 
                              method=input$algorithm,
                              trControl= trainControl(method=input$checkGroup, number=input$num, classProbs=TRUE, savePredictions = TRUE),
                              preProc = c(input$preproc)
                              )
                    Model$Record <- c(Model$Record, summary(fit))
                }
            )

            output$model_record <- 
                renderPrint({
                    paste(tail(Model$Record, input[["model_to_show"]]), collapse = "<br/><br/>")

                })

        }


# Run the application 
shinyApp(ui, server)

Когда я запускаю это приложение, оно дает некоторый результат, а при двойном запуске вывод добавляется ниже. Однако этот вывод не в удобном для пользователя стиле. Я хотел отобразить его в сводке или, возможно, в формате таблицы.

Вывод приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...