{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This R environment comes with many helpful analytics packages installed\n# It is defined by the kaggle/rstats Docker image: https://github.com/kaggle/docker-rstats\n# For example, here's a helpful package to load\n\nlibrary(tidyverse) # metapackage of all tidyverse packages\nlibrary(questionr)\nlibrary(funModeling)\nlibrary(randomForest)\nlibrary(mlbench)\nlibrary(caret)\nlibrary(ggblanket)\n\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nlist.files(path = \"../input\")\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:27:43.900027Z","iopub.execute_input":"2023-05-19T12:27:43.902253Z","iopub.status.idle":"2023-05-19T12:27:50.911734Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# devtools::install_github(\n#   repo = \"IndrajeetPatil/ggstatsplot\", # package path on GitHub\n#   dependencies = TRUE,                 # installs packages which ggstatsplot depends on\n#   upgrade_dependencies = TRUE          # updates any out of date dependencies\n# )","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:27:50.917988Z","iopub.execute_input":"2023-05-19T12:27:51.041923Z","iopub.status.idle":"2023-05-19T12:27:51.093696Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# install.packages(\"PMCMRplus\")","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:51.098989Z","iopub.execute_input":"2023-05-19T12:27:51.102878Z","iopub.status.idle":"2023-05-19T12:27:51.146969Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # update.packages(\"PMCMRplus\")\n# my_packages <- c(\"correlationfunnel\", \"devtools\", \"forecast\", \"fpp2\", \"CGPfunctions\", \n# \"ggpubr\", \"janitor\",\"tsibble\", \"TTR\", \"vtree\",\"ggblanket\")                            # Specify your packages\n# not_installed <- my_packages[!(my_packages %in% installed.packages()[ , \"Package\"])]    # Extract packages to be installed\n# if(length(not_installed)) install.packages(not_installed)                               \n# devtools::install_github(\"holisticinfosec/dataxray\")     ","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:27:51.153592Z","iopub.execute_input":"2023-05-19T12:27:51.170942Z","iopub.status.idle":"2023-05-19T12:27:51.214694Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(DAAG)\nlibrary(party)\nlibrary(rpart)\nlibrary(rpart.plot)\nlibrary(mlbench)\nlibrary(caret)\nlibrary(pROC)\nlibrary(tree)\nlibrary(ggblanket)","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:27:51.219866Z","iopub.execute_input":"2023-05-19T12:27:51.230896Z","iopub.status.idle":"2023-05-19T12:27:53.208557Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Source \n - https://rpubs.com/msundar/large_data_analysis\n - http://rpkgs.datanovia.com/ggcorrplot/reference/ggcorrplot.html\n - https://rdrr.io/cran/DataExplorer/man/plot_boxplot.html\n - https://sparkbyexamples.com/r-programming/create-dataframe-from-existing-dataframe-in-r/\n - https://ggplot2.tidyverse.org/reference/coord_cartesian.html\n - https://r4ds.had.co.nz/exploratory-data-analysis.html\n - https://www.r-bloggers.com/2020/11/r-xgboost-regression/\n - https://rpubs.com/cliex159/865583\n - https://surveillance.r-forge.r-project.org/pkgdown/index.html\n - https://stats.stackexchange.com/questions/421701/tuning-svm-parameters-in-r\n - https://rstudio-pubs-static.s3.amazonaws.com/280840_d4fb4f186d454d5dbce3ba2cbe4bbcdb.html\n - https://cran.r-project.org/web/packages/ggblanket/vignettes/ggblanket.html","metadata":{}},{"cell_type":"markdown","source":"### Goal of the Competition\n  - The goal of this competition is to predict student performance during game-based learning in real-time. \n  \n### Prediction\n  - For each <session_id>_<question #>, you are predicting the correct column, identifying whether you believe the user for this particular session will answer this question correctly, using only the previous information for the session.\n  - Timeseries API presents the questions and data to you in order of levels - level segments 0-4, 5-12, and 13-22 are each provided in sequence, and you will be predicting the correctness of each segment's questions as they are presented.\n  \n### Files\n  - train.csv - the training set\n  - test.csv - the test set\n  - sample_submission.csv - a sample submission file in the correct format\n  - train_labels.csv - correct value for all 18 questions for each session in the training set\n  \n### Columns\n  - session_id - the ID of the session the event took place in\n  - index - the index of the event for the session\n  - elapsed_time - how much time has passed (in milliseconds) between the start of the session and when the event was recorded\n  - event_name - the name of the event type\n  - name - the event name (e.g. identifies whether a notebook_click is is opening or closing the notebook)\n  - level - what level of the game the event occurred in (0 to 22)\n  - page - the page number of the event (only for notebook-related events)\n  - room_coor_x - the coordinates of the click in reference to the in-game room (only for click events)\n  - room_coor_y - the coordinates of the click in reference to the in-game room (only for click events)\n  - screen_coor_x - the coordinates of the click in reference to the player’s screen (only for click events)\n  - screen_coor_y - the coordinates of the click in reference to the player’s screen (only for click events)\n  - hover_duration - how long (in milliseconds) the hover happened for (only for hover events)\n  - text - the text the player sees during this event\n  - fqid - the fully qualified ID of the event\n  - room_fqid - the fully qualified ID of the room the event took place in\n  - text_fqid - the fully qualified ID of the\n  - fullscreen - whether the player is in fullscreen mode\n  - hq - whether the game is in high-quality\n  - music - whether the game music is on or off\n  - level_group - which group of levels - and group of questions - this row belongs to (0-4, 5-12, 13-22)","metadata":{}},{"cell_type":"code","source":"# # Make copy of data frames with different Memory Address\n# train_data <- data.frame(train)\n# test_data <- data.frame(test)\n# train_labels <- data.frame(train_labels)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:53.211109Z","iopub.execute_input":"2023-05-19T12:27:53.212660Z","iopub.status.idle":"2023-05-19T12:27:53.225207Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Handling large data sets in R\nlibrary(readr)\nlibrary(dplyr)\ntrain <- as_tibble(read.csv(\"/kaggle/input/predict-student-performance-from-game-play/train.csv\", \n                    stringsAsFactors=T, header=T,nrow=20000))\ntest <- read.csv(\"/kaggle/input/predict-student-performance-from-game-play/test.csv\")\ntrain_labels <- read.csv(\"/kaggle/input/predict-student-performance-from-game-play/train_labels.csv\")","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:53.227694Z","iopub.execute_input":"2023-05-19T12:27:53.229212Z","iopub.status.idle":"2023-05-19T12:27:55.298911Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_dir <- \"/kaggle/input/predict-student-performance-from-game-play\"\ndtypes <- list(session_id = \"factor\",\n               elapsed_time = \"integer\",\n               event_name = \"factor\",\n               name = \"factor\",\n               level = \"integer\",\n               page = \"factor\",\n               room_coor_x = \"numeric\",\n               room_coor_y = \"numeric\",\n               screen_coor_x = \"numeric\",\n               screen_coor_y = \"numeric\",\n               hover_duration = \"numeric\",\n               text = \"factor\",\n               fqid = \"factor\",\n               room_fqid = \"factor\",\n               text_fqid = \"factor\",\n               fullscreen = \"integer\",\n               hq = \"integer\",\n               music = \"integer\",\n               level_group = \"factor\")\ntrain_numeric <- read.csv(file.path(data_dir, \"train.csv\"), colClasses = dtypes,header=T,nrow=20000)\ntest_numeric <- read.csv(file.path(data_dir, \"test.csv\"), colClasses = dtypes,header=T,nrow=20000)\ntrainlabels_numeric <- read.csv(file.path(data_dir, \"train_labels.csv\"))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:55.309859Z","iopub.execute_input":"2023-05-19T12:27:55.311505Z","iopub.status.idle":"2023-05-19T12:27:58.008584Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(train_numeric)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:58.013777Z","iopub.execute_input":"2023-05-19T12:27:58.018151Z","iopub.status.idle":"2023-05-19T12:27:58.142681Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_event_count <- train_numeric %>% count(room_coor_x)\ncat(paste(\"\\n Unique sessions in train: \", nrow(train_event_count)))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:58.145359Z","iopub.execute_input":"2023-05-19T12:27:58.146864Z","iopub.status.idle":"2023-05-19T12:27:58.783090Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(train_numeric)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:58.796045Z","iopub.execute_input":"2023-05-19T12:27:58.797795Z","iopub.status.idle":"2023-05-19T12:27:58.868695Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ggplot(train_numeric, aes(x = screen_coor_x\t, y = screen_coor_y)) +\n  geom_boxplot() +\n  coord_flip() +\n  scale_color_manual(values = c(\"#0099f8\", \"#e74c3c\", \"#2ecc71\")) +\n  theme_classic()","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:27:58.873938Z","iopub.execute_input":"2023-05-19T12:27:58.877855Z","iopub.status.idle":"2023-05-19T12:28:00.084261Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"stats <- function(y, upper_limit = max(train_numeric$screen_coor_y) * 1.15) {\n  return(data.frame(\n    y = 0.95 * upper_limit,\n    label = paste(\n      \"Count =\", length(y), \"\\n\",\n      \"Mean =\", round(mean(y), 2), \"\\n\",\n      \"Median =\", round(median(y), 2), \"\\n\"\n    )\n  ))\n}","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:00.099170Z","iopub.execute_input":"2023-05-19T12:28:00.103179Z","iopub.status.idle":"2023-05-19T12:28:00.130706Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ggplot(train_numeric, aes(x = screen_coor_x, y = screen_coor_y)) +\n  geom_boxplot() +\n  scale_fill_manual(values = c(\"#0099f8\", \"#e74c3c\", \"#2ecc71\")) +\n  stat_summary(fun.data = stats, geom = \"text\", hjust = 0.5, vjust = 0.9) +\n  theme_classic()","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:00.143924Z","iopub.execute_input":"2023-05-19T12:28:00.145889Z","iopub.status.idle":"2023-05-19T12:28:02.835726Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ggplot(train_numeric, aes(x = screen_coor_x, y = screen_coor_y)) +\n  geom_boxplot(fill = \"#0099f8\") +\n  labs(\n    title = \"Screen Coordinates\",\n    caption = \"Source: Students Train Data\",\n    x = \"Screen coordinates x\",\n    y = \"Screen coordinates y\"\n  ) +\n  theme_classic() +\n  theme(\n    plot.title = element_text(color = \"#0099f8\", size = 16, face = \"bold\", hjust = 0.5),\n    plot.subtitle = element_text(face = \"bold.italic\", hjust = 0.5),\n    plot.caption = element_text(face = \"italic\")\n  )","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:02.840712Z","iopub.execute_input":"2023-05-19T12:28:02.844440Z","iopub.status.idle":"2023-05-19T12:28:03.508149Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_colclass <- sapply(train,class)\ntrain_colclass","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:03.521892Z","iopub.execute_input":"2023-05-19T12:28:03.523642Z","iopub.status.idle":"2023-05-19T12:28:03.564654Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(tidyverse)\nlibrary(kableExtra)\n\ncat(sprintf(\"\\n There are %d name event enlisted here.\\n\", length(unique(train$event_name))))\n\nunique_event <- train %>% \n  distinct(event_name) %>% \n  select(event_name)\n\nt(unique_event) %>% \n  as.data.frame() %>% \n  mutate_all(.funs = list(function(x) cell_spec(x, \"background-color: lightblue\"))) %>% \n  as.matrix()","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:03.567091Z","iopub.execute_input":"2023-05-19T12:28:03.568554Z","iopub.status.idle":"2023-05-19T12:28:03.897361Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"str(train)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:03.900027Z","iopub.execute_input":"2023-05-19T12:28:03.901641Z","iopub.status.idle":"2023-05-19T12:28:03.950037Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"missing_variables <- function(x) {\n  var <- 0\n  missing <- 0\n  missing_prop <- 0\n  for (i in 1:length(names(x))) {\n    var[i] <- names(x)[i]\n    missing[i] <- sum(is.na(x[, i]))\n    missing_prop[i] <- missing[i] / nrow(x)\n  }\n  (missing_data <- data.frame(var = var, missing = missing, missing_prop = missing_prop) %>% \n      arrange(desc(missing_prop)))\n}","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:03.955026Z","iopub.execute_input":"2023-05-19T12:28:03.958639Z","iopub.status.idle":"2023-05-19T12:28:03.976510Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# sapply(train_data, function(x) sum(is.na(x)))\n# Missing values in each column\nmissing_variables(train)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:03.981467Z","iopub.execute_input":"2023-05-19T12:28:03.995058Z","iopub.status.idle":"2023-05-19T12:28:04.185830Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Plot missing values\nlibrary(ggplot2)\n\ntrain_missing <- colSums(is.na(train)) / nrow(train) * 100\ntrain_missing_index <- names(train_missing)\ntrain_missing_values <- train_missing\ndf <- data.frame(train_missing_index, train_missing_values)\nggplot(df, aes(x = train_missing_index, y = train_missing_values)) +\n  geom_bar(stat = \"identity\", fill = \"steelblue\") +\n  ggtitle(\"Missing Values\") +\n  theme(plot.title = element_text(size = 24, hjust = 0.5)) +\n  geom_text(aes(label = paste0(round(train_missing_values, 1), \"%\")), vjust = -0.5, size = 6) +\n  theme(axis.text.x = element_text(angle = 40, hjust = 1, size = 16),\n        axis.text.y = element_text(size = 18),\n        axis.title = element_text(size = 18))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:04.198905Z","iopub.execute_input":"2023-05-19T12:28:04.211642Z","iopub.status.idle":"2023-05-19T12:28:04.821878Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"table(sapply(train, function(x) sum(is.na(x))))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:04.824623Z","iopub.execute_input":"2023-05-19T12:28:04.826212Z","iopub.status.idle":"2023-05-19T12:28:04.859492Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train %>% glimpse","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:04.864702Z","iopub.execute_input":"2023-05-19T12:28:04.868495Z","iopub.status.idle":"2023-05-19T12:28:04.926707Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Relative Frequency of Multiple Variables\n\n# train_data %>%\n#   group_by(elapsed_time,room_coor_x ) %>%\n#   summarise(n = n()) %>%\n#   mutate(freq = n / sum(n))\n\ntrain %>%\n  group_by(elapsed_time,screen_coor_x) %>%\n  summarise(n = n()) %>%\n  mutate(freq = paste0(round(100 * n/sum(n), 0), '%'))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:04.931922Z","iopub.execute_input":"2023-05-19T12:28:04.944626Z","iopub.status.idle":"2023-05-19T12:28:06.037202Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ggstatsplot::ggcorrmat(\n  data = train,\n  cor.vars = level:room_coor_x,\n  corr.method = \"robust\",\n  output = \"p-values\"\n)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:06.044098Z","iopub.execute_input":"2023-05-19T12:28:06.050307Z","iopub.status.idle":"2023-05-19T12:28:07.179128Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# calculate 3-day rolling average\nlibrary(zoo)\ntrain %>%\n  mutate(rolling_avg = rollmean(room_coor_x, k=3, fill=NA, align='right'))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:07.182272Z","iopub.execute_input":"2023-05-19T12:28:07.183954Z","iopub.status.idle":"2023-05-19T12:28:08.310912Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#calculate 3-day and 4-day rolling average of elaspsed_time\ntrain %>%\n  mutate(avg_sales3 = rollmean(elapsed_time, k=3, fill=NA, align='right'),\n         avg_sales4 = rollmean(elapsed_time, k=4, fill=NA, align='right'))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:08.316069Z","iopub.execute_input":"2023-05-19T12:28:08.319495Z","iopub.status.idle":"2023-05-19T12:28:09.499676Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"with(train, table(level))\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:09.502066Z","iopub.execute_input":"2023-05-19T12:28:09.513978Z","iopub.status.idle":"2023-05-19T12:28:09.555673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(DataExplorer)\nplot_histogram(train)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:09.558415Z","iopub.execute_input":"2023-05-19T12:28:09.559946Z","iopub.status.idle":"2023-05-19T12:28:11.940869Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_boxplot(train, by = \"level\", ncol = 2L)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:11.943711Z","iopub.execute_input":"2023-05-19T12:28:11.945737Z","iopub.status.idle":"2023-05-19T12:28:14.989689Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# ggstatsplot::ggbetweenstats(\n#   data = train_data, \n#   x = screen_coor_x, \n#   y = room_coor_x,\n#   messages = FALSE\n# )","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:14.992180Z","iopub.execute_input":"2023-05-19T12:28:14.994225Z","iopub.status.idle":"2023-05-19T12:28:15.006285Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_corr <- subset(train, select=c(\"session_id\", \"elapsed_time\", \"level\",\"room_coor_x\",\n                                  \"room_coor_y\",\"screen_coor_x\",\"screen_coor_y\"))\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:15.008856Z","iopub.execute_input":"2023-05-19T12:28:15.010426Z","iopub.status.idle":"2023-05-19T12:28:15.025803Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(ggcorrplot)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:15.028333Z","iopub.execute_input":"2023-05-19T12:28:15.029932Z","iopub.status.idle":"2023-05-19T12:28:15.066472Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corr <- round(cor(train_corr), 1)\ncorr","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:15.068993Z","iopub.execute_input":"2023-05-19T12:28:15.070514Z","iopub.status.idle":"2023-05-19T12:28:15.098177Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Compute a matrix of correlation p-values\ncorr_mat <- cor_pmat(train_corr)\ncorr_mat","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:15.100545Z","iopub.execute_input":"2023-05-19T12:28:15.101998Z","iopub.status.idle":"2023-05-19T12:28:15.154202Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(ggblanket)\nlibrary(magrittr)\ntrain_corr %>%\n  gg_point(\n    x = elapsed_time,\n    y = room_coor_x,\n    col = level)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:15.156660Z","iopub.execute_input":"2023-05-19T12:28:15.158126Z","iopub.status.idle":"2023-05-19T12:28:16.934015Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(ggblanket)\nlibrary(magrittr)\ntrain_corr %>%\n  gg_jitter(\n    x = room_coor_x\t,\n    y = room_coor_y,\n    col = room_coor_x,\n    col_continuous = \"steps\",\n    y_include = 0,\n    y_trans = \"sqrt\",\n    y_breaks = scales::breaks_width(1500), \n    y_labels = scales::label_number())","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:16.936586Z","iopub.execute_input":"2023-05-19T12:28:16.938146Z","iopub.status.idle":"2023-05-19T12:28:17.811625Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Correlation Plot\nlibrary(ggplot2)\nlibrary(reshape2)\n\nggplot(data = melt(cor(train_corr)), aes(x = Var1, y = Var2, fill = value)) +\n  geom_tile() +\n  scale_fill_gradient2(low = \"blue\", high = \"red\", mid = \"white\", midpoint = 0, limit = c(-1,1), space = \"Lab\", name=\"Pearson\\nCorrelation\") +\n  theme_minimal() +\n  theme(axis.text.x = element_text(angle = 45, vjust = 1, size = 12, hjust = 1),\n        axis.text.y = element_text(size = 12),\n        axis.title.x = element_blank(),\n        axis.title.y = element_blank(),\n        panel.grid.major = element_blank(),\n        panel.border = element_blank(),\n        panel.background = element_blank(),\n        axis.ticks = element_blank(),\n        legend.justification = c(1, 0),\n        legend.position = c(0.6, 0.7),\n        legend.direction = \"horizontal\") +\n  coord_fixed()","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:17.814107Z","iopub.execute_input":"2023-05-19T12:28:17.815596Z","iopub.status.idle":"2023-05-19T12:28:18.124618Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(ggcorrplot)\nggcorrplot(corr)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:18.127079Z","iopub.execute_input":"2023-05-19T12:28:18.128564Z","iopub.status.idle":"2023-05-19T12:28:18.448784Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# train_eda = as.data.frame(table(unlist(train_corr)))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:18.451959Z","iopub.execute_input":"2023-05-19T12:28:18.453497Z","iopub.status.idle":"2023-05-19T12:28:18.464745Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"eda <- function(data)\n{\n  glimpse(data)\n  print(status(data))\n  freq(data) \n  print(profiling_num(data))\n  plot_num(data)\n  describe(data)\n}","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:18.467143Z","iopub.execute_input":"2023-05-19T12:28:18.468559Z","iopub.status.idle":"2023-05-19T12:28:18.480801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"eda(train_corr)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:18.483282Z","iopub.execute_input":"2023-05-19T12:28:18.484725Z","iopub.status.idle":"2023-05-19T12:28:20.492031Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Overlay multiple histograms in the same plot,use geom_freqpoly()\nggplot(data = train, mapping = aes(x = screen_coor_x, colour = level)) +\n  geom_freqpoly(binwidth = 0.1)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:20.494652Z","iopub.execute_input":"2023-05-19T12:28:20.496248Z","iopub.status.idle":"2023-05-19T12:28:21.126259Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# ggplot(train_corr) + \n#   geom_histogram(mapping = aes(x = y), binwidth = 0.5) +\n#   coord_cartesian(ylim = c(0, 50))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:21.128953Z","iopub.execute_input":"2023-05-19T12:28:21.130608Z","iopub.status.idle":"2023-05-19T12:28:21.142041Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"p <- ggplot(train_corr, aes(room_coor_x, room_coor_y)) +\n  geom_point() +\n  geom_smooth()\np + coord_cartesian(xlim = c(325, 500), expand = FALSE)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:21.144559Z","iopub.execute_input":"2023-05-19T12:28:21.145991Z","iopub.status.idle":"2023-05-19T12:28:22.367982Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"d <- ggplot(train_corr, aes(screen_coor_x , screen_coor_y)) +\n  stat_bin2d(bins = 25, colour = \"white\")\nd","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:22.370704Z","iopub.execute_input":"2023-05-19T12:28:22.372326Z","iopub.status.idle":"2023-05-19T12:28:22.762380Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#  Counts labels\nggplot(train_corr, aes(x = elapsed_time, y = level)) +\n  geom_bin2d(binwidth = 1) + \n  stat_bin2d(geom = \"text\", aes(label = ..count..), binwidth = 1) +\n  scale_fill_gradient(low = \"white\", high = \"red\") +\n  xlim(-4, 4) +\n  ylim(-4, 4) +\n  coord_equal()","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:22.765100Z","iopub.execute_input":"2023-05-19T12:28:22.766743Z","iopub.status.idle":"2023-05-19T12:28:23.250565Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data <- train[, colSums(is.na(train)) == 0]\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.253235Z","iopub.execute_input":"2023-05-19T12:28:23.254847Z","iopub.status.idle":"2023-05-19T12:28:23.270351Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sapply(train_data, function(x) sum(is.na(x)))","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.272964Z","iopub.execute_input":"2023-05-19T12:28:23.274579Z","iopub.status.idle":"2023-05-19T12:28:23.297405Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Random Search\n# control <- trainControl(method=\"repeatedcv\", number=10, repeats=3, search=\"random\")\n# mtry <- sqrt(ncol(train))\n# rf_random <- train(elapsed_time~., data=train, method=\"rf\", tuneLength=15, trControl=control)\n# print(rf_random)\n# plot(rf_random)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.300087Z","iopub.execute_input":"2023-05-19T12:28:23.301711Z","iopub.status.idle":"2023-05-19T12:28:23.313400Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test <- as_tibble(read.csv(\"/kaggle/input/predict-student-performance-from-game-play/test.csv\", \n                    stringsAsFactors=T, header=T,nrow=20000))\nstr(test)","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:28:23.316056Z","iopub.execute_input":"2023-05-19T12:28:23.317641Z","iopub.status.idle":"2023-05-19T12:28:23.398601Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data2 <- subset(train, select = c(\"hover_duration\",\"elapsed_time\", \"level\",\"room_coor_x\",\"room_coor_y\",\"fullscreen\",\"hq\",\"music\"))\n\ntest <- as_tibble(read.csv(\"/kaggle/input/predict-student-performance-from-game-play/test.csv\", \n                    stringsAsFactors=T, header=T,nrow=20000))\n\ntest_data2 <- subset(test, select = c(\"hover_duration\",\"elapsed_time\", \"level\",\"room_coor_x\",\"room_coor_y\",\"fullscreen\",\"hq\",\"music\"))\n\n\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.401236Z","iopub.execute_input":"2023-05-19T12:28:23.402817Z","iopub.status.idle":"2023-05-19T12:28:23.461679Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Classification Tree\nlibrary(rpart)\nlibrary(rpart.plot)\ntree1 <- rpart(level ~., data = train_data2)\nrpart.plot(tree1)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.464373Z","iopub.execute_input":"2023-05-19T12:28:23.465966Z","iopub.status.idle":"2023-05-19T12:28:23.921838Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(\"rpart.plot\")\ntree2 <- rpart(hover_duration ~., data = train_data2)\nrpart.plot(tree2)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:23.924518Z","iopub.execute_input":"2023-05-19T12:28:23.926140Z","iopub.status.idle":"2023-05-19T12:28:24.191364Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tree3 <- rpart(room_coor_x ~., data = train_data2)\nrpart.plot(tree3)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.193969Z","iopub.execute_input":"2023-05-19T12:28:24.195542Z","iopub.status.idle":"2023-05-19T12:28:24.679558Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"printcp(tree3)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.682099Z","iopub.execute_input":"2023-05-19T12:28:24.683613Z","iopub.status.idle":"2023-05-19T12:28:24.700505Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"rpart.rules(tree3)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.702905Z","iopub.execute_input":"2023-05-19T12:28:24.704373Z","iopub.status.idle":"2023-05-19T12:28:24.818197Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plotcp(tree3)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.820563Z","iopub.execute_input":"2023-05-19T12:28:24.822020Z","iopub.status.idle":"2023-05-19T12:28:24.903020Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\n#  type = c(\"vector\", \"prob\", \"class\", \"matrix\"),\n# Confusion matrix\np <- predict(tree3, train_data2, type = 'matrix')\nhead(p)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.905523Z","iopub.execute_input":"2023-05-19T12:28:24.906978Z","iopub.status.idle":"2023-05-19T12:28:24.979275Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"confusionMatrix(\n  factor(p, levels = 1:20),\n  factor(train_data2$hover_duration, levels = 1:20)\n)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:24.981880Z","iopub.execute_input":"2023-05-19T12:28:24.983485Z","iopub.status.idle":"2023-05-19T12:28:25.110315Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# p1 <- predict(tree2, test_data2, type = 'matrix')\n# p1 <- p1[,-3]\n# r <- multiclass.roc(train_data2$hover_duration, p1, percent = TRUE)\n# roc <- r[['rocs']]\n# r1 <- roc[[1]]\n# plot.roc(r1,\n#          print.auc=TRUE,\n#          auc.polygon=TRUE,\n#          grid=c(0.1, 0.2),\n#          grid.col=c(\"green\", \"red\"),\n#          max.auc.polygon=TRUE,\n#          auc.polygon.col=\"lightblue\",\n#          print.thres=TRUE,\n#          main= 'ROC Curve')","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:25.112786Z","iopub.execute_input":"2023-05-19T12:28:25.114269Z","iopub.status.idle":"2023-05-19T12:28:25.125687Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Imputer missing values with median\nlibrary(missMethods)\ndf <- impute_median(train_data2)\ntest_data2 <- impute_median(test_data2)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:25.128057Z","iopub.execute_input":"2023-05-19T12:28:25.129563Z","iopub.status.idle":"2023-05-19T12:28:25.176556Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# NaiveBayes\nlibrary(\"e1071\")\nmodel <- naiveBayes(as.factor(hover_duration) ~ ., data=df)\nsummary(model)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:25.179020Z","iopub.execute_input":"2023-05-19T12:28:25.180491Z","iopub.status.idle":"2023-05-19T12:28:25.446154Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred <- predict(model, newdata = test_data2)\ncm <- table(test_data2$hover_duration, pred)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:25.448681Z","iopub.execute_input":"2023-05-19T12:28:25.450220Z","iopub.status.idle":"2023-05-19T12:28:42.347989Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Simple logistic regression\n","metadata":{}},{"cell_type":"code","source":"missing_variables(df)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:42.350833Z","iopub.execute_input":"2023-05-19T12:28:42.352526Z","iopub.status.idle":"2023-05-19T12:28:42.381458Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"as.factor(df$hover_duration)\n# Train the model\nlogistic_model <- glm(hover_duration ~., family = binomial, data = df,method = \"model.frame\")\nsummary(logistic_model)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:42.384709Z","iopub.execute_input":"2023-05-19T12:28:42.386515Z","iopub.status.idle":"2023-05-19T12:28:42.503408Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot(logistic_model)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:28:42.506130Z","iopub.execute_input":"2023-05-19T12:28:42.507881Z","iopub.status.idle":"2023-05-19T12:29:17.676865Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Linear Regression\nlibrary(\"stats\")\n\nmodel <- list()\ntarget <- c(\"room_coor_x\", \"room_coor_y\", \"elapsed_time\")\nfor (i in target) {\n  temp <- df[!is.na(df[[i]]),]\n  X <- df$hover_duration\n  y <- temp[[i]]\n  trained <- lm(y ~ X,na.action=na.exclude)\n  model[[i]] <- trained\n}\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:17.679620Z","iopub.execute_input":"2023-05-19T12:29:17.681448Z","iopub.status.idle":"2023-05-19T12:29:17.730251Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred <- predict(model[[i]], newdata = test)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:17.732721Z","iopub.execute_input":"2023-05-19T12:29:17.734165Z","iopub.status.idle":"2023-05-19T12:29:17.753121Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot(pred)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:17.755563Z","iopub.execute_input":"2023-05-19T12:29:17.757034Z","iopub.status.idle":"2023-05-19T12:29:18.615483Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Installed packages list\npackage_list <- installed.packages()\nwrite.csv(package_list, \"package_list.csv\")\n\nrownames(package_list)","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-05-19T12:29:18.617942Z","iopub.execute_input":"2023-05-19T12:29:18.619452Z","iopub.status.idle":"2023-05-19T12:29:24.414047Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# devtools::install_github(repo = \"https://github.com/hrue/r-inla\", ref = \"stable\", subdir = \"rinla\", build = FALSE)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:24.416863Z","iopub.execute_input":"2023-05-19T12:29:24.418580Z","iopub.status.idle":"2023-05-19T12:29:24.430458Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# ncol(df)\nwhich(colnames(df) == \"hover_duration\")","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:24.433169Z","iopub.execute_input":"2023-05-19T12:29:24.434858Z","iopub.status.idle":"2023-05-19T12:29:24.452605Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Support Vector Machine?\n\n- The main idea of support vector machine is to find the optimal hyperplane (line in 2D, plane in 3D and hyperplane in more than 3 dimensions) which maximizes the margin between two classes. In this case, two classes are red and blue balls. In layman's term, it is finding the optimal separating boundary to separate two classes (events and non-events).\n![image.png](attachment:2f8d28b7-7f24-4218-ae8f-e9cd8d8e85b9.png)![image.png](attachment:e98cfbcf-422a-41e8-bbe6-8b3e634d06c6.png)\n- In the image, filled red and blue boxes and circles are support vectors.\n\n### Hyperplane\n- Hyperplane is just a line in 2D and plane in 3D. In higher dimensions (more than 3D), it's called hyperplane. SVM help us to find a hyperplane (or separating boundary) that can separate two classes (red and blue dots).\n\n### Kernel\n - In simple words, it is a method to make SVM run in case of non-linear separable data points. The kernel function transforms the data into a higher dimensional feature space to make it possible to perform the linear separation.\n \n ### Kernels\n- linear: u'*v\n- polynomial: (gamma*u'*v + coef0)^degree\n- radial basis (RBF) : exp(-gamma*|u-v|^2)\n- sigmoid : tanh(gamma*u'*v + coef0)\n\n### SVM process\n- Choose an optimal hyperplane which maximize margin\n- Applies penalty for misclassification (cost 'c' tuning parameter).\n- If non-linearly separable data points, transform data to high dimensional space where it is easier to classify with linear decision surfaces (Kernel trick)\n\n\n### Support Vector Machine - Regression\n - upport Vector Machine can also be used for regression problem wherein dependent or target variable is continuous.\n- The goal of SVM regression is same as classification problem i.e. to find maximum margin. Here, it means minimize error. In the case of regression, a margin of tolerance (epsilon) is set in approximation to the SVM. The primary goal is to minimize error, individualizing the hyperplane which maximizes the margin, keeping in mind that part of the error is tolerated.\n\n","metadata":{},"attachments":{"2f8d28b7-7f24-4218-ae8f-e9cd8d8e85b9.png":{"image/png":"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"},"e98cfbcf-422a-41e8-bbe6-8b3e634d06c6.png":{"image/png":"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"}}},{"cell_type":"code","source":"# library(e1071)\n# svm_model<- svm(hover_duration ~ ., \n#                 data = df, \n#                 type = \"C-classification\", \n#                 kernel = \"linear\", \n#                 scale = FALSE)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:24.455379Z","iopub.execute_input":"2023-05-19T12:29:24.457058Z","iopub.status.idle":"2023-05-19T12:29:24.468959Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"svm_model <- svm(hover_duration ~ ., data = df)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:24.471599Z","iopub.execute_input":"2023-05-19T12:29:24.473151Z","iopub.status.idle":"2023-05-19T12:29:28.840612Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Components of model\nnames(svm_model)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:28.843218Z","iopub.execute_input":"2023-05-19T12:29:28.844697Z","iopub.status.idle":"2023-05-19T12:29:28.862925Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#list values of the SV, index and rho\nhead(svm_model$SV)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:28.865485Z","iopub.execute_input":"2023-05-19T12:29:28.866996Z","iopub.status.idle":"2023-05-19T12:29:28.892883Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"svm_model$index","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:28.895491Z","iopub.execute_input":"2023-05-19T12:29:28.897078Z","iopub.status.idle":"2023-05-19T12:29:28.919922Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"svm_model$rho","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:28.922450Z","iopub.execute_input":"2023-05-19T12:29:28.923985Z","iopub.status.idle":"2023-05-19T12:29:28.940551Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(svm_model)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:28.943042Z","iopub.execute_input":"2023-05-19T12:29:28.944513Z","iopub.status.idle":"2023-05-19T12:29:29.011692Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x <- subset(df, select = -hover_duration)\npred <- predict(svm_model, x)\n","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:29.014184Z","iopub.execute_input":"2023-05-19T12:29:29.015732Z","iopub.status.idle":"2023-05-19T12:29:30.258058Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot(pred)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:30.260613Z","iopub.execute_input":"2023-05-19T12:29:30.262098Z","iopub.status.idle":"2023-05-19T12:29:31.272304Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(df)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:31.275141Z","iopub.execute_input":"2023-05-19T12:29:31.277952Z","iopub.status.idle":"2023-05-19T12:29:31.310320Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# library(randomForest)\n# random_model <- randomForest(elapsed_time ~ hover_duration+room_coor_x, data=df, importance=TRUE,\n#                         proximity=TRUE)\n# print(random_model)","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:29:31.313131Z","iopub.execute_input":"2023-05-19T12:29:31.314686Z","iopub.status.idle":"2023-05-19T12:29:31.326174Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"library(ggplot2)\nlibrary(hrbrthemes)\nlibrary(viridis)\n\n# plot\nggplot(df, aes(fill=level, y=hover_duration, x=elapsed_time)) + \n  geom_bar(position=\"stack\", stat=\"identity\") + \n  scale_fill_viridis(name=\"\") + scale_x_continuous() + theme_ipsum() ","metadata":{"execution":{"iopub.status.busy":"2023-05-19T12:33:57.490847Z","iopub.execute_input":"2023-05-19T12:33:57.494986Z","iopub.status.idle":"2023-05-19T12:34:02.770823Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}