---
title: "Assignment_3"
output:
flexdashboard::flex_dashboard:
orientation: rows
vertical_layout: scroll
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidymodels)
library(vip)
library(tidyverse)
library(plotly)
library(readxl)
library(broom)
library(car)
library(ggfortify)
library(GGally)
library(performance)
library(corrr)
library(caret)
library(bslib)
library(cowplot)
library(reshape2)
library(htmltools)
library(DT)
```
```{r Data, include=FALSE}
games <- read_excel("C:/Users/aland/OneDrive/Desktop/HGEN612/Projects/Assignment_3/Data-Games/board_games_clean.xlsx")
games_data <- games %>%
as_tibble() %>%
mutate(Game_ID = row_number(),
Category_1 = factor (Category_1),
Category_2 = factor (Category_2),
Category_3 = factor (Category_3),
Mechanic_1 = factor (Mechanic_1),
Mechanic_2 = factor (Mechanic_2),
Mechanic_3 = factor (Mechanic_3),
Publisher_1 = factor (Publisher_1),
Publisher_2 = factor (Publisher_2),
Publisher_3 = factor (Publisher_3),
Expansion = factor(games$Expansion),
Average_rating = as.numeric(games$Average_rating)) %>%
slice(1:1000)
games_cor <- games_data %>%
as_tibble() %>%
select(where(is.numeric)) %>%
correlate()
games_cor %>%
rearrange() %>%
fashion() %>%
knitr::kable()
```
```{r Data Splitting, include=FALSE}
set.seed(123)
splits <- initial_split(games_data, strata = Average_rating)
games_other <- training(splits)
games_test <- testing(splits)
games_boot <- bootstraps(games_test)
set.seed(234)
prop.validation <- .20
val_set <- validation_split(games_other,
strata = Average_rating,
prop = (1-prop.validation))
lambda_grid <- grid_regular(penalty(), levels = 50)
```
```{r Model-glmnet, include=FALSE}
log_mod <-
logistic_reg(mixture = 1, penalty = tune()) %>%
set_engine("glmnet")
```
```{r Cat_Recipe and Workflow, include=FALSE}
cat_recipe <-
recipe(Average_rating ~ ., data = games_other) %>%
update_role(NAME, new_role = "ID") %>%
step_unknown(Category_2, new_level = "NA") %>%
step_unknown(Category_3, new_level = "NA") %>%
step_unknown(Mechanic_2, new_level = "NA") %>%
step_unknown(Mechanic_3, new_level = "NA") %>%
step_unknown(Publisher_2, new_level = "NA") %>%
step_unknown(Publisher_3, new_level = "NA") %>%
step_zv(all_predictors()) %>%
step_normalize(all_numeric_predictors())
cat_workflow <-
workflow() %>%
add_model(log_mod) %>%
add_recipe(cat_recipe)
```
```{r Model-lm, include=FALSE}
lm_mod <-
linear_reg() %>%
set_engine("lm")
```
```{r Num_Recipe and Workflow, include=FALSE}
num_recipe <-
recipe(Average_rating ~ ., data = games_other) %>%
update_role(NAME, new_role = "ID") %>%
step_unknown(all_nominal_predictors()) %>%
step_dummy(all_nominal_predictors()) %>%
step_zv(all_predictors()) %>%
step_normalize(all_numeric_predictors())
num_workflow <-
workflow() %>%
add_model(lm_mod) %>%
add_recipe(num_recipe)
games_fit <-
fit(num_workflow , data = games_data)
```
Page 1
=====================================================
Row 1
-----
```{r}
games %>%
slice(1:100) %>%
datatable(options = list(searching = FALSE,
pageLength = 50,
lengthMenu = c(50, 100),
scrollY = '300px',
scrollX = '300px'),
style = "default")
```
Row 2
-------------
```{r}
games_data %>%
ggplot(aes(Average_rating)) +
geom_histogram(bins = 30)
```
```{r Linear Evaluation}
games_fit %>%
augment(new_data = games_data) %>%
ggplot(aes(x = .pred, y = Average_rating)) +
geom_point()
```
Page 2
=====================================================
```{r}
```