Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JeanBertinR/shinyML
shinyML is a R package that use h2o and Spark frameworks to easily compare supervised machine learning models on regression or classification tasks (published on CRAN in July 2019)
https://github.com/JeanBertinR/shinyML
Last synced: 8 days ago
JSON representation
shinyML is a R package that use h2o and Spark frameworks to easily compare supervised machine learning models on regression or classification tasks (published on CRAN in July 2019)
- Host: GitHub
- URL: https://github.com/JeanBertinR/shinyML
- Owner: JeanBertinR
- License: other
- Created: 2018-10-26T16:23:06.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-24T16:37:07.000Z (almost 4 years ago)
- Last Synced: 2024-08-13T07:15:32.776Z (4 months ago)
- Language: R
- Homepage: https://jeanbertinr.github.io/shinyMLpackage/
- Size: 52.5 MB
- Stars: 56
- Watchers: 4
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE.note
Awesome Lists containing this project
- jimsghstars - JeanBertinR/shinyML - shinyML is a R package that use h2o and Spark frameworks to easily compare supervised machine learning models on regression or classification tasks (published on CRAN in July 2019) (R)
README
---
title: "Compare Supervised Machine Learning Models Using Shiny App"
output: github_document
---```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)```
[![CRAN Status Badge](http://www.r-pkg.org/badges/version/shinyML)](https://CRAN.R-project.org/package=shinyML)
[![CRAN Downloads Badge](https://cranlogs.r-pkg.org/badges/shinyML)](https://CRAN.R-project.org/package=shinyML)
[![CRAN Downloads Badge](https://cranlogs.r-pkg.org/badges/grand-total/shinyML)](https://CRAN.R-project.org/package=shinyML)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-red.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Travis-CI Build Status](https://travis-ci.org/JeanBertinR/shinyML.svg?branch=master)](https://travis-ci.org/JeanBertinR/shinyML)
[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/github/JeanBertinR/shinyML?branch=master&svg=true)](https://ci.appveyor.com/project/JeanBertinR/shinyML)
[![Lifecycle Status](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html)# shinyML
Implement in one line of code a shareable web app to compare **supervised machine learning models** for regression and classification tasks!
With `shinyML`, you can compare your favorite regression or classification models issued from **H2O** or **Spark** frameworks without any effort.
### Installation
The package can be installed from **CRAN**:
```{r eval=FALSE}
install.packages("shinyML")
```You can also install the latest development version from **github**:
```{r eval=FALSE}
devtools::install_github("JeanBertinR/shinyML")
```### Getting started: create the shinyML web app in just one list of code
This is a basic examples which shows you how to run the app:
```{r classic example, eval=FALSE, message=FALSE, out.width=600, out.height=400}
library(shinyML)
# An example of regression task
shinyML_regression(data = iris,y = "Petal.Width",framework = "h2o")# An example of classification task
shinyML_classification(data = iris,y = "Species",framework = "h2o")
```Please note that `shinyML_regression` and `shinyML_classification` will automatically detect if you input dataset contains time-based column: in that case, train/test splitting will be adapted to time-series forecasting.
```{r time-series example, eval=FALSE, message=FALSE, out.width=600, out.height=400}
# An example of time-series forecasting
longley2 <- longley %>% mutate(Year = as.Date(as.character(Year),format = "%Y"))
shinyML_regression(data = longley2,y = "Population",framework = "h2o")```
### Explore input dataset before running the models...
Before running machine learning models, it can be useful to inspect the **distribution of each variable** and to have an insight of **dependencies between explanatory variables**. Both`shinyML_regression` and `shinyML_classification` functions allows to check **classes of explanatory variables**, plot **histograms** of each distribution and show **correlation matrix** between all variables. This tabs can be used to determine if some variable are strongly correlated to another and eventually removed from the training phase.You can also plot variation of every variable as a function of another using the **"Explore dataset"** tab.
### Test different machine learning techniques and hyper-parameters configurations with just a few clicks
To test supervised machine learning models on `shinyML` package, the first step consist in **separating train and test period** from your dataset: this can be done in one second using slider button on the right shinyML app side.
You can also remove variables from your initial selection directly from app just simply using "Input variable" textbox.
You are then free to **select hyper-parameters configuration** for your favorite machine learning model.
Note that hidden layers of deep learning technique can be set inside the corresponding text box: the default c(200,200) configuration corresponds to a two hidden-layers neural network, with 200 neurons for each layer.
### Run at the same time all machine learning techniques to compare variable importances and error metrics
You can easily use `shinyML` package to compare **different machine learning techniques with your own hyper-parameters configuration**.
For that, you will just need to use shiny app buttons corresponding to your parameters and click then to **"Run tuned models !"**
You will see a **validation message box** once all models have been trained: at that point, you can have an overview of your results comparing variables importances and error metrics like **MAPE** or *RMSE**.
### Run autoML algorithm to find automatically configure the best machine learning regression model associated to your dataset
`AutoML` algorithm will **automatically find the best algorithm** to suit your regression or classification task: the user will be informed of the **machine learning model** that has been selected and know **which hyper-parameters** have been chosen.
The only setting that must be adjusted by the user is the **maximum time authorized for searching**.
For more information take a look at the [package vignette](https://github.com/JeanBertinR/shinyML/blob/master/vignettes/vignettes.Rmd).