Eric Thompson
November 25, 2017
Finally, we build a Shiny app which allow users to interactively predict the species based on these measurement variables.
This example inspired by Jalayer Academy's tutorial video on Youtube: link
normalize <- function(x) {
return( (x - min(x)) / (max(x) - min(x)) )
}
knn() algorithm inside the reactive function:library(class)
library(shiny)
m1pred <- reactive({
Sepal.Length.Input <- input$sliderSepalLength
Sepal.Width.Input <- input$sliderSepalWidth
Petal.Length.Input <- input$sliderPetalLength
Petal.Width.Input <- input$sliderPetalWidth
knn(train = iris_train, test = data.frame(
(Sepal.Length.Input - min(iris$Sepal.Length)) / (max(iris$Sepal.Length) - min(iris$Sepal.Length)),
(Sepal.Width.Input - min(iris$Sepal.Width)) / (max(iris$Sepal.Width) - min(iris$Sepal.Width)),
(Petal.Length.Input - min(iris$Petal.Length)) / (max(iris$Petal.Length) - min(iris$Petal.Length)),
(Petal.Width.Input - min(iris$Petal.Width)) / (max(iris$Petal.Width) - min(iris$Petal.Width))
),
cl = iris_train_target, k = 13
)
})