**Unleash the true potential of R to unlock the hidden layers of data**

*Are you looking to gain in-depth knowledge of machine learning and deep learning?* If yes, then this Learning Path just right for you.

Packtâ€™s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

R is one of the leading technologies in the field of data science. Starting out at a basic level, this Learning Path will teach you how to **develop and implement machine learning and deep learning algorithms **using R in real-world scenarios.

The Learning Path begins with covering some basic concepts of R to refresh your knowledge of R before we deep-dive into the advanced techniques. You will start with setting up the environment and then perform data ETL in R. You will then learn important **machine learning topics**, including data classification, regression, clustering, association rule mining, and dimensionality reduction. Next, you will understand the basics of deep learning and artificial neural networks and then move on to exploring topics such as **ANNs, RNNs**, and **CNNs**. Finally, you will learn about the applications of deep learning in various fields and understand the practical implementations of scalability, HPC, and feature engineering.

By the end of the Learning Path, you will have a **solid knowledge of all these algorithms and techniques and be able to implement them efficiently in your data science projects.**

Do not worry if this seems too far-fetched right now; we have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:

is a data scientist with a large e-commerce organization. In his 7 years of experience in data science, he has tackled complex real-world data science problems and delivered production-grade solutions for top multinational companies.*Selva Prabhakaran*is the founder of LargitData, a startup company that mainly focuses on providing Big Data and machine learning products. He has previously worked for Trend Micro as a software engineer, where he was responsible for building Big Data platforms for business intelligence and customer relationship management systems. In addition to being a startup entrepreneur and data scientist, he specializes in using Spark and Hadoop to process Big Data and apply data mining techniques for data analysis.*Yu-Wei, Chiu (David Chiu)*is a deep learning PhD student at the University of Bologna and founder of ContinuousAI, an open source project aiming to connect people and reorganize resources in the context of continuous learning and AI. He is also the PhD students' representative at the Department of Computer Science of Engineering (DISI) and teaching assistant of the courses machine learning and computer architectures in the same department.*Vincenzo Lomonaco*

- Basic knowledge of R would be beneficial
- Knowledge of linear algebra and statistics is required

- Develop R packages and extend the functionality of your model
- Perform pre-model building steps
- Understand the working behind core machine learning algorithms
- Build recommendation engines using multiple algorithms
- Incorporate R and Hadoop to solve machine learning problems on Big Data
- Understand advanced strategies that help speed up your R code
- Learn the basics of deep learning and artificial neural networks
- Learn the intermediate and advanced concepts of artificial and recurrent neural networks

In this video, we will take a look at how to perform univariate analysis.

- Learn the use of univariate analysis on continuous variables and what the metrics are
- Understand how to perform univariate analysis on categorical variables
- See how to compute the metrics in R

The goal of this video is to perform bivariate analysis in R using three cases.

- Perform bivariate analysis using correlation analysis
- Perform bivariate analysis using ANOVA
- Perform bivariate analysis using the Chi-Sq statistic

In this video, we will see how to detect and treat outliers.

- Check out how to detect outliers in a continuous variable
- Get to know the ways to treat outliers
- See how to code in R

The goal of this video is to see how to treat missing values in R.

- Understand the different types of missing values
- Look at the ways to treat missing values
- Check out how to code in R

In this video we'll see what is linear regression, its purpose, when to use it, and how to implement in R.

- The purpose of linear regression and the concept
- How to build regression model in R
- How to predict and compute accuracy measures.

We'll see how to interpret regression results and Interaction effects in this video

- Explain the summary of regression results
- Explain the various terms
- Add interaction term to the model

In this video we will discuss what is residual analysis and detect multivariate outliers using Cook's Distance

- Explain the meaning behind residual plots and its interpretation
- Explain Cook's Distance, its meaning and significance
- Implement them in R

The goal of this video is to understand how to do model selection and comparison using best subsets, stepwise regression and ANOVA.

- Explain Best subsets and do it in R
- Stepwise regression
- Compare models using ANOVA

In this video we will see how to do k-fold cross validation in R.

- Explain the concept
- Show how to implement it in R

The goal of this video is check out how to build non-linear regression models using Splines and GAMs.

- Explain the concept behind splines
- Implement splines in R
- Explain and implement GAMS

Our goal in this video would be to understand logistic regression, evaluation metrics of binary classification problems, and interpretation of the ROC curve.

- Explain the concept behind logistic regression
- Understand the evaluation metrics and interpretation of the ROC curve
- Implement in R

In this video, we will understand the concept and working of naÃ¯ve Bayes classifier and how to implement the R code.

- Understand the concept and implementation of naÃ¯ve Bayes by learning conditional probability and Bayes rule
- Solve a mathematical example
- Implement in R

In this video, we will look at what k-nearest neighbors algorithms, how does it works and how to implement it in T.

- Explain the concepts
- Show how it works
- How to implement it in R

The goal of this video is to understand how decision trees work, what they are used for, and how to implement then.

- Explain how decision trees work and their usage
- Show the concepts of cTree, rpart and C5.0
- Implement in R

The goal of this video is know what the various features of the caret package are and how to build predictive models.

- Explain the workflow
- Show preprocessing, model tuning, control parameters, and parallelization
- Implement in R

The goal of this video is to know how to do feature selection before building predictive models.

- Explain the concepts behind RFE, Boruta and variable importance
- Show the references for variable importance
- Implement in R

In this video, we will look at how support vector machines work.

- Explain kernel trick, hyper places, linearly non-separable case
- Show how to tune with various kernels
- Implement in R

In this video, we will look at the concept behind bagging and random forests and how to implement it to solve problems.

- How does bagging work
- How does random forests work
- Understand the implementation in R

Let's understand what boosting is and how stochastic gradient boosting works with GBM.

- Explain boosting and how the algorithm works
- How to tune it
- Show how to implement in R

In this video, we will look at what regularization is, ridge and lasso regression, and how to implement it.

- Learn the concept of regularization and shrinkage methods
- Understand Ridge and Lasso regression, and how are they different
- Implement in R using the glmnet package

Let's look at how XG Boost works and how to implement it in this video.

- Understand the driving principle behind XG Boost
- Understand how to the structure of tuning parameters
- Implement in R

Our goal in this video would be to reduce the dimensionality of data with principal components, and understand the concept and how to implement it in R.

- Understand the purpose and concepts behind principal component analysis
- Plot it and interpret the principal components and Biplot
- Implement in R

In this video, we will understand the k-means clustering algorithm and implement it using the principal components.

- Understand k-means
- Perform clustering with principal components
- Implement in R

In this video, we will analyze the clustering tendency of a dataset and identify the ideal number of clusters or groups.

- Explain the Hopkins statistic for clustering tendency
- Explain silhouette width for optimal number of clusters
- Implement in R

The goal of this video is to understand the logic of hierarchical clustering, types, and how to implement it in R.

- Understand the logic
- Understand the linkage methods
- Implement in R

How to use affinity propagation to cluster data points? How is it different from conventional algorithms?

- Explain the general concept behind the working of affinity propagation algorithm
- Show how it is different from k-means and hierarchical clustering
- Implement in R, plot it, and solve a mini challenge

How to build recommendation engines to recommend products/movies to new and existing users?

- Explore the various approaches to make recommendations
- Explain the collaborative filtering algorithm
- Implement it R and solve coding challenges using POPULAR and association mining methods

The goal of this video is to understand what a time series is, how to create time series of various frequencies, and the enhanced facilities available in the xts package.

- Create a time series and understand its components
- Get an overview of the xts package
- Implement in R

The goal of this video is to understand the characteristics of a time series: stationarity and how to de-trend and de-seasonalize a time series.

- How to make a time series?
- How to de-trend and de-seasonalize
- Implement in R

In this video, we will introduce the characteristics of time series such as ACF, PACF, and CCF; why they matter; and how to interpret them.

- Explain lags, ACF, PACF, and CCF
- Interpret the meaning
- Implement in R

Our goal in this video would be to understand moving average and exponential smoothing and use it to forecast.

- Explain moving average
- Explain exponential smoothing
- Implement in R

In this video, we will understand how double exponential smoothing and holt winter forecasting works, when to use them, and how to implement them in R.

- How double exponential smoothing works and how it is different from holt winters
- Understand the calculations
- Implement in R

Let's look at what ARIMA forecasting is, understand the concepts, and learn how ARIMA modelling works in this video.

- Understand the full form and components of the ARIMA model
- Explain how ARIMA works, its orders and configurations, and how to choose the p,d and q
- Implement auto.arima() in R

In this video, we'll take a look at how to scrape data from web pages and how to clean and process raw web and other textual data.

- Show a web scraping example with rvest
- Explain the structure of a typical webpage and basics of HTML and extract selector paths
- Process and clean text data

Our goal in this video is to know how to process texts using tm package and understand the significance of TF-IDF and its implementation. Finally, we see how to draw a word cloud in R.

- Explain the features of tm package
- Explain TF-IDF and itsuse
- Draw a word cloud from a text document

Let's see how to use cosine similarity and latent semantic analysis to find and map similar documents.

- Explain the concept behind cosine similarity
- Explain LSA
- Implementation in R with challenge

In this video, we will see how to extract the underlying topics in a document, the keywords related to each topic and the proportion of topics in each document.

- Explain the concept behind LDA
- Show a real application to extract topics from wiki docs
- Show implementation and interpretation in R

Let's check out how to perform sentiment analysis and scoring in R.

- Show facilities in the tidytext package, the workflow and lexicons
- Show a Syuzhet application
- Implement in R

How to classify texts with machine learning algorithms using the RTextTools package?

- Explain the general workflow
- Explain facilities in RTextTools
- Implement in R

The goal of this videos is to understand what is the basic structure of to make charts with ggplot, how to customize the aesthetics, and manipulate the theme elements.

- Explain the structure of ggplot and how it is different from base graphics
- Modify the aesthetics and theme
- Implement in R and solve a challenge

In this video, we will see how to manipulate the legend the way we want and how to add texts and annotation in ggplot.

- Show the syntax to manipulate the legend
- Add texts using geom_text and add annotations using grob
- Implement in R

The goal of this video is to understand how to plot multiple plots in the same chart and how to change the layouts of ggplot.

- Show how to use facet_wrap and facet_grid to make multiple charts for various levels of one or two variables
- Show how to change the layout of a ggplot using the gridExtra package
- Implement in R and solve a challenge on what was covered

How to make various types of plots in ggplot such as bar chart, time series, boxplot, ribbon chart,and so on.

- Explain the syntax for various plots
- Learn Scatterplot, Jitter, Counts plot, Bar chart, Histogram, Box plot, Violin plot, Time series chart, Multiple Time Series, and Ribbon Area
- Implement in R and practice with a mini challenge

In this video, we will understand what the popular ggplot extensions are, and where to find them, and their applications.

- Show where to find the ggplot extensions
- Show the usage of ggfortify, ggthemes, ggrepel and so on
- Show how to implement in R

We will discuss the best practices that should be followed to minimize code runtime in this video.

- Show various practices like vectorization, pre-allocation, and reducing condition checks inside for loops
- Understand the smart usage of the which() function, and also the use of ifelse, apply family, and byte code compilation
- Show how to implement in R with working examples

Let's tackle the implementation of parallel computing in R.

- Show how to register the cores for parallel processing
- Show how to implement parallel loops with foreach
- Show how to implement in R

The goal of this video is understand how to work with DplyR and pipes.

- Explain how pipes work and their applications
- Explain the data manipulation verbs of DplyR
- Implement and demonstrate in R

In this video, we will discuss how to manipulate data with the data.table package, how to achieve maximum speed, and what the various features of data.table are.

- Show the general syntax of the data.table package
- Show how to do basic data manipulation operations, functionality of keys, and dcast.data.table
- Show how to implement in R

Our main focus in this video is to understand how to write C++ code and make it work in R. Also leverage the speed of C++ in R, interface Rcpp with R, and write Rcpp code.

- Show how to interface Rcpp with R
- Show the features of Rcpp and learn by doing easy and hard examples
- Implement in R

We'll take a look at the components of an R package in this video.

- See the mandatory components such as R, Description and Namespace
- See the optional components
- Understand the purpose of each component and what goes inside them

In this video, we will look at how to create an R Package so that it can be submitted to CRAN.

- Understand the steps to build an R package
- Document it
- Check it and host on GitHub

We will understand the mandatory checks and common problems faced by developers when creating R packages in this video.

- Understand the important checks
- Learn the common problems and how to work around them
- Show it in R

The goal of this video is to show how to submit an R package to CRAN.

- See how to submit and how to do resubmissions
- Verify the details and submit the package
- Confirm submission

This is give you brief information about the course.

R must be first installed on your system to work on it.

- Download R according to the system
- Install R
- Downloading and Installing R

RStudio makes the process of development with R easier.

- Download RStudio
- Install Rstudio
- Downloading and Installing RStudio

R packages are an essential part of R as they are required in all our programs. Let's learn to do that.

- Download packages
- Install them
- Installing and Loading Packages

You must know how to give data to R to work with data. You will learn that here.

- Load the dataset iris package
- Use the read.table and write.table functions to read and write data
- Reading and Writing Data

Data manipulation is time consuming and hence needs to be done with the help of built-in R functions.

- Load the dataset
- Select and subset data according to conditions
- Using R to Manipulate Data

R is widely used for statistical applications. Hence it is necessary to learn about the built in functions of R.

- Load the dataset
- Observe the format of data
- Applying Basic Statistics

To communicate information effectively and make data easier to comprehend we need graphical representation. You will learn to plot figures in this section.

- Calculate the frequency of the species
- Plot a histogram, boxplot and scatter plot
- Visualizing Data

Because of some limitations, it is a good practice to get data from external repositories. You will be able to do just that after this video.

- Access the UCI machine repository
- Download iris.data or use read.csv
- Getting a Dataset for Machine Learning

Reading a dataset is the first and foremost step in data exploration. We need to learn to how to do that.

- Download the train dataset
- Use read.csv and the str function to load and display the dataset respectively.

In R, since nominal, ordinal, interval, and ratio variable are treated differently in statistical modeling, we have to convert a nominal variable from a character into a factor.

- Display the structure of the data using str
- Find the attribute name, data type, and values contained in each attribute
- Use the factor function to transform data from character to factor

Missing values affect the inference of a dataset. Thus it is important to detect them.

- Sum up all the NA values
- Divide the sum by the number of values in each attribute
- Apply the calculation to all attributes using sapply

After detecting missing values, we need to impute them as their absence may affect the conclusion.

- Produce statistics using a table
- Sort the table. Use str_match to find the title with missing values
- Assign the missing value with the mean value

After imputing the missing values, you should perform an exploratory analysis to summarize the data characteristics.

- Generate a bar plot and histogram of each attribute
- Examine the relation between all attributes, two at a time

The exploratory analysis helps users gain insights into how single or multiple variables may affect the survival rate. However, it does not determine what combinations may generate a prediction model. We need to use a decision tree for that.

- Construct a data split function
- Split data according to the need
- Generate the prediction model and plot the tree

After constructing the prediction model, it is important to validate how the model performs while predicting the labels.

- Predict the survival of the testing set
- Generate the statistics of the output matrix using a confusion matrix.

Another way of measuring performance is the ROC curve.

- Create the prediction object from the probabilities matrix
- Prepare the ROCR performance object for the ROC curve
- Use the plot function to draw the ROC curve

When there are huge datasets, we can find the characteristics of the entire dataset with a part or sample of the data. Hence data sampling is essential.

- Use a sample function with different attributes to generate the required samples

Probability distribution and statistics are interdependent. To provide a justification to the statistical information, we need probability.

- Use dnorm to get characteristics. Plot the curve
- Use pnorm, qnorm and hist in the same way
- Test the normality

Univariate statistics deals with a single variable and hence is very simple.

- Load data into a data frame. Compute the length of the variable
- Obtain mean, median, standard deviation and variance
- Obtain IQR, quantile, maxima, minima, and so on. Plot a histogram.

To analyze the relation among more than two variables, multivariate analysis is done.

- Get the co-variance matrix
- Obtain the correlation matrix

Assessing the relation between dependent and independent variables is carried out through linear regression.

- Fit variables into a model
- Create an analysis of a variance table
- Plot the regression line

To validate that the experiment results are significant, hypothesis testing is done.

- Conduct an exact binomial test

To compare means of two different groups, one- and two-sample t-tests are conducted.

- Visualize the attributes
- Perform the statistical procedure

Comparing a sample with a reference probability or comparing cumulative distributions of two data sets calls for a Kolmogorov- Smirnov test.

- Check a normal distribution with one sample Kolmogrov-Smirnov test.
- Generate uniformly distributed sample data.
- Plot the ecdf of two samples. Apply a two-sample Kolmogrov-Smirnov test.

The Wilcoxon Test is a non-parametric test for null hypothesis.

- Plot data with boxplot
- Perform a Wilcoxon Rank Sum test

To check the distribution of categorical variables of two groups, Pearson's chi-squared test is used.

- Use the contingency table to make the counting table
- Plot the mosaic plot
- Perform Pearson's Chi-squared test.

To examine the relation between categorical independent variables and continuous dependent variables, Anova is used. When there is a single variable, one-way ANOVA is used.

- Visualize the data with a boxplot
- Conduct a one-way ANOVA and perform ANOVA analysis
- Plot the differences in mean level.

When there are two categorical values to be compared, two-way ANOVA is used.

- Plot the two boxplots
- Use an interaction plot
- Perform two-way ANOVA. Plot the differences in mean level.

Linear regression is the simplest model in regression and can be used when there is one predictor value.

- Prepare data with a linear relationship between predictor and response variables
- Generate the regression line
- Plot the regression line

To obtain summarized information of a fitted model, we need to learn how to summarize linear model fits.

- Compute the summary using summary function

It would be really convenient for us if we could predict unknown values. You can do that using linear regression.

- Build a linear fitted model
- Compute the prediction result using confidence interval
- Compute the prediction result using prediction interval

To check if the fitted model adequately represents the data, we perform diagnostics.

- Generate a diagnostic plot

In the case of a non-linear relationship between predictor and response variables, a polynomial regression model is formed. We need to fit the model. This video will enable you to do that.

- Illustrate the polynomial regression model in formula

An outlier will cause diversion from the slope of the regression line. In order to avoid that, we need to fit a robust linear regression model.

- Generate the scatter plot
- Apply the rlm function
- Visualize the fitted line

We will perform linear regression on a real-life example, the SLID dataset.

- Load the SLID data. Fit all attributes
- Generate the diagnostic plot
- Test multi-colinearity and heteroscedasticity

GLM generalizes linear regression by allowing the linear model to be related to the response variable via a link function and by allowing the magnitude of the variance of each measurement to be a function of its predicted value.

- Input the independent and dependent variables
- Fit variables to a model
- Compare the fitted models with ANOVA function

GLM allows response variables with error distribution other than a normal distribution. We apply the Poisson model to see how that is done.

- Load a sample count data
- Apply the glm function
- View the fitted log-linear model

When a variable is binary, we apply the binomial model.

- Load the binary dependent variable
- Fit the model into the binary data
- Obtain a description using summary

GAM has the ability to deal with non-linear relationships between dependent and independent variables. We learn to fit a regression using GAM.

- Load the Boston dataset
- Generate a fitted model
- Summarize the GAM fit

Visualizing a GAM helps it to understand better.

- Generate a scatter plot
- Add regression line
- Visualize the fitted regression lines

You can also diagnose a GAM model to analyze it.

- Produce the smoothing parameter estimation convergence information
- View the four diagnostic plots

Training and testing datasets are both essential for building a classification model.

- Preprocess the dataset. Remove attributes which are unimportant
- Split the data into training and testing sets
- Generate a sequence accordingly and interpret the output

A partitioning tree works on the basis of split condition starting from the base node to the terminal node.

- Load the rpart package. Build a classification model
- Display the tree node details
- Generate the information graphic

Plotting the classification tree will make analyzing the data easier. You will learn to do this now.

- Plot the classification tree
- Specify parameters to adjust the layout

Before making a prediction, it is essential to compute the prediction performance of the model.

- Generate a predicted label and classification table for the testing dataset
- Generate a confusion matrix

There can be parts in a dataset which are not essential for classification. In order to remove these parts, we have to prune the dataset.

- Locate the record with minimum cross validation errors
- Extract the CP of the record and assign the value to churn
- Prune the classification tree

Conditional inference trees are better than traditional classification trees because they adapt the test procedures for selecting the output.

- Build the classification model
- Examine the built tree model

Visualizing a conditional inference tree will make it easier to extract and analyze data from the dataset.

- Plot the built classification model

Like the prediction performance of a traditional classification tree, we can also evaluate the performance of a conditional inference tree.

- Predict the category of the testing dataset
- Generate a classification table
- Determine the performance measurements

ï»¿k-nearest neighbor classifier is a non parametric lazy learning method. Thus it has the advantages of both the types of methods.

- Build a classification model
- Generate a classification table. Generate a confusion matrix from it
- Examine the sensitivity and specificity

Classification in logistic regression is done based one or more features. It is more robust and doesn't have as many conditions as the traditional classification model.

- Generate a logistic regression model. Generate the model's summary
- Predict the categorical dependent variable of the testing dataset
- Generate the confusion matrix

The NaÃ¯ve Bayes classifier is based on applying Bayes' theorem with a strong independent assumption.

- Specify the variables as first input parameters and churn label as the second input parameter in the function call
- Assign the classification model to the classifier variable
- Use a confusion matrix to calculate the performance measurement

Support vector machines are better at classification because they can capture complex relations between data points and provide both linear and non-linear classifications

- Train a support vector machine
- Use different functions and arguments as desired for the output
- Obtain a summary of the built support vector machine

To control our training errors and margins, we use the cost function. The SVM classifier is affected by the cost.

- Create an iris subset
- Use SVM with small cost and large cost and see its effect

To visualize the SVM fit, we can use the plot function.

- Train SVM and use plot to visualize the fitted SVM
- Specify appropriate parameters while generating the scatter plot.

We can use the trained SVM to predict labels on a model.

- Obtain the predicted labels of the testing dataset
- Generate the classification table. Compute co-efficients of a contingency table
- Use a confusion matrix to measure performance

According to the desired output, you may need to generate different combinations of gamma and cost to train different SVMs. This is called tuning.

- Generate a set of parameters
- Obtain the best parameters. Train a new SVM.
- Obtain a classification table. Compare the two models.

A neural network is used in classification, clustering and prediction. Its efficiency depends on how well you train it. Let's learn to do that.

- Split the dataset into training and testing datasets
- Add the required columns. Train the network model.
- Configure the hidden neurons. Examine the information of the neural network model.

We can use the trained SVM to predict labels on a model.

- Visualizing a neural network would make understanding the process easier for you.
- Visualize the trained neural network using plot.
- View the generalized weights using gwplot.

Similar to other classification models, we can predict labels using neural networks and also validate performance using confusion matrix.

- Create an output probability matrix. Convert the probability matrix to class labels.
- Generate a classification matrix based on the labels obtained.
- Employ a confusion matrix to measure the prediction performance of the built neural network.

Nnet provides the functionality to train feed-forward neural networks with backpropagation.

- Use nnet to train the neural network. Set different parameters in the function.
- Use summary function to obtain information about the built neural network.

As we have already trained the neural network using nnet, we can use the model to predict labels.

- Generate the predicted labels based on a testing dataset.
- Generate a classification table based on predicted labels.
- Employ a confusion matrix to measure the prediction performance of the trained neural network.

The k-fold cross-validation technique is a common technique used to estimate the performance of a classifier as it overcomes the problem of over-fitting. In this video we will illustrate how to perform a k-fold cross-validation.

- Generate an index with 10 folds with the cut function
- Use a for loop to perform a 10-fold cross-validation
- Generate average accuracies with the mean function

In this video, we will illustrate how to use tune.svm to perform 10-fold cross-validation and obtain the optimum classification model.

- Apply tune.svm to the training dataset
- Obtain the summary information of the model
- Access the performance details of the tuned model
- Generate a classification table

In this video we will demonstrate how to perform k-fold cross validation using the caret package.

- Set up the control parameter
- Train the classification model on telecom churn data
- Examine the output of the generated model

This video will show you how to rank the variable importance with the caret package.

- Estimate the variable importance
- Generate the variable importance plot

In this video, we will illustrate how to use rminer to obtain the variable importance of a fitted model.

- Install and load the rminer package
- Fit the svm model with the training set
- Obtain the variable importance and plot it

In this video we will show how to find highly correlated features using the caret package.

- Remove the features that are not coded in numeric characters
- Obtain the correlation of each attribute
- Obtain the names of highly correlated attributes

In this video, we will demonstrate how to use the caret package to perform feature selection.

- Transform the features of the training set
- Plot the selection result
- Calculate the performance across resamples

To measure the performance of a regression model, we can calculate the distance from the predicted output and the actual output as a quantifier of the performance of the model. In this video we will illustrate how to compute these measurements from a built regression model.

- Load the dataset
- Calculate the root mean square error, relative square error and R-Square value

In this video we will demonstrate how to retrieve a confusion matrix using the caret package.

- Train an svm model using the training dataset
- Predict labels using the fitted model
- Generate a classification table and a confusion matrix

In this video, we will demonstrate how to illustrate an ROC curve and calculate the AUC to measure the performance of a classification model.

- Install and load the ROCR package
- Visualize the ROC curve using the plot function

In this video we will use the function provided by the caret package to compare different algorithm-trained models on the same dataset.

- Install and load the pROC library
- Generate the ROC curve of each model, and plot the curve

In this video we will see how to measure performance differences between fitted models with the caret package.

- Resample the three generated models and obtain its summary
- Plot the re-sampling result in the ROC metric or box-whisker plot

The adabag package implements both boosting and bagging methods. For the bagging method, the package first generates multiple versions of classifiers, and then obtains an aggregated classifier. Let's learn the bagging method from adabag to generate a classification model.

- Install the adabag package and use the bagging function
- Generate the classification model
- Obtain a classification table and average error

To assess the prediction power of a classifier, you can run a cross validation method to test the robustness of the classification model. This video will show how to use bagging.cv to perform cross validation with the bagging method.

- Use bagging.cv to perform cross-validation
- Obtain the confusion matrix
- Retrieve the minimum estimation error

Boosting starts with a simple or weak classifier and gradually improves it by reweighting the misclassified samples. Thus, the new classifier can learn from previous classifiers. One can use the boosting method to perform ensemble learning. Let's see how to use the boosting method to classify the telecom churn dataset.

- Use the boosting function from the adabag package
- Make a prediction based on the boosted model and testing dataset
- Retrieve the classification table and obtain average errors

Similar to the bagging function, adabag provides a cross validation function for the boosting method, named boosting.cv. In this video, we will learn how to perform cross-validation using boosting.cv.

- Use boosting.cv to cross-validate the training dataset
- Obtain the confusion matrix
- Retrieve the average errors

Gradient boosting creates a new base learner that maximally correlates with the negative gradient of the loss function. One may apply this method on either regression or classification problems. But first, we need to learn how to use gbm.

- Install the gbm package and use the gbm function to train a training dataset
- Use cross-validation and plot the ROC curve
- Use the coords function and obtain a classification table from the predicted results

A margin is a measure of certainty of a classification. It calculates the difference between the support of a correct class and the maximum support of an incorrect class. This video will show us how to calculate the margins of the generated classifiers.

- Use the margins function
- Use the plot function to plot a marginal cumulative distribution graph
- Compute the percentage of negative margin

The adabag package provides the errorevol function for a user to estimate the ensemble method errors in accordance with the number of iterations. Let's explore how to use errorevol to show the evolution of errors of each ensemble classifier.

- Use the errorevol function for error evolution of boosting classifiers
- Use the errorevol function for error evolution of bagging classifiers

Random forest grows multiple decision trees which will output their own prediction results. The forest will use the voting mechanism to select the most voted class as the prediction result. In this video, we illustrate how to classify data using the randomForest package.

- Install and load the randomForest package
- Plot the mean square error of the forest object
- Use the varImpPlot function, the margin function, hist, and boxplot

At the beginning of this section, we discussed why we use ensemble learning and how it can improve the prediction performance. Let's now validate whether the ensemble model performs better than a single decision tree by comparing the performance of each method.

- Estimate the error rate of the bagging model
- Estimate the error rate of the boosting method
- Estimate the error rate of the random forest model
- Use churn.predict and estimate the error rate of single decision tree

Hierarchical clustering adopts either an agglomerative or a divisive method to build a hierarchy of clusters. This video shows us how to cluster data with the help of hierarchical clustering.

- Load the data and save it
- Examine the dataset structure
- Use agglomerative hierarchical clustering to cluster data

In this video we demonstrate how to use the cutree function to separate the data into a given number of clusters.

- Categorize the data and examine its cluster labels
- Count the number of data within each cluster
- Visualize how data is clustered

In this video, we will demonstrate how to perform k-means clustering on the customer dataset.

- Use k-means to cluster the data
- Inspect the center of each cluster
- Draw a scatter plot of data and color the points

We will now illustrate how to create a bivariate cluster plot.

- Install and load the cluster package
- Draw a bivariate cluster plot

In this video we will see how to compare different clustering methods using cluster.stat from the fpc package.

- Install and load the fpc package
- Use different clustering methods
- Generate the cluster statistics of each clustering method

In this video we will see how to compute silhouette information.

- Use k-means to generate a k-means object
- Compute and plot the silhouette information

In this video we will discuss how to find the optimum number of clusters for the k-means clustering method.

- Calculate the withinss of different numbers of clusters and plot them
- Calculate the average silhouette and plot it

In this video, we will demonstrate how to use DBSCAN to perform density-based clustering.

- Install and load the fpc and mlbench packages
- Cluster data with regard to its density measurement

In this video, we will demonstrate how to use the model-based method to determine the most likely number of clusters.

- Install and load the mclust library
- Perform model-based clustering on the customer dataset

A dissimilarity matrix can be used as a measurement for the quality of a cluster. In this video, we will discuss some techniques that are useful to visualize a dissimilarity matrix.

- Install and load the seriation package
- Visualize the dissimilarity matrix

In this video, we will demonstrate how clustering methods differ with regard to data with known clusters.

- Install and load the package png
- Perform kmeans and the dbscan clustering method on the handwriting digits

Before starting with a mining association rule, you need to transform the data into transactions. This video will show how to transform any of a list, matrix, or data frame into transactions.

- Install and load the arule package
- Use the as function
- Transform the matrix-format data and data-frame-format dataset into transactions

The arule package uses its own transactions class to store transaction data. As such, we must use the generic function provided by arule to display transactions and association rules. Let's see how to display transactions and association rules via various functions in the arule package.

- Obtain a LIST representation and use the summary function
- Use the inspect function and filter transactions by size
- Use the image function and itemFrequenctPlot

Association mining is a technique that can discover interesting relationships hidden in transaction datasets. This approach first finds all frequent itemsets and then generates strong association rules from frequent itemsets. In this video, we see how to perform association analysis using the apriori rule.

- Load the Groceries dataset and examine the summary
- Use itemFrequencyPlot and apriori
- Inspect the first few rules

Among the generated rules, we sometimes find repeated or redundant rules (for example, one rule is the subset of another rule). Let's explore how to prune (or remove) repeated or redundant rules.

- Find redundant rules
- Remove redundant rules

Besides listing rules as text, you can visualize association rules, making it easier to find the relationship between itemsets. In this video, we will learn how to use the aruleViz package to visualize the association rules.

- Install and load the arulesViz package
- Make a scatter plot from the pruned rules and add jitter to it
- Plot soda_rule in a graph plot and a ballon plot

An apriori algorithm performs a breadth-first search to scan the database. So, support counting becomes time consuming. Alternatively, if the database fits into the memory, you can use the Eclat algorithm, which performs a depth-first search to count the supports. Let's see how to use the Eclat algorithm.

- Use the eclat function to generate a frequent itemset
- Obtain the summary information
- Examine the top ten support frequent itemsets

In addition to mining interesting associations within the transaction database, we can mine interesting sequential patterns using transactions with temporal information. This video demonstrates how to create transactions with temporal information.

- Install and load the arulesSequences package
- Turn the list into transactions and use the inspect function
- Obtain summary information and read transaction data in basket format

In contrast to association mining, we should explore patterns shared among transactions where a set of itemsets occurs sequentially. One of the most famous frequent sequential pattern mining algorithms is the **Sequential Pattern Discovery using Equivalence classes (SPADE)** algorithm. Let's see how to use SPADE to mine frequent sequential patterns.

- Use the cspade function to generate frequent sequential patterns
- Examine the summary of the frequent sequential patterns
- Transform a generated sequence format data back to the data frame

This video will give you an introduction on how to perform feature selection with the FSelector package.

- Install and load the FSelector package
- Make an evaluator select the feature subsets
- Find the optimum feature subset using a hill climbing search

Principal component analysis (PCA) is the most widely used linear method in dealing with dimension reduction problems. This video will show you how to use it.

- Load the swiss dataset
- Obtain a summary from the PCA results
- Use the predict function

This video demonstrates how to determine the number of principal components using a scree plot. Let's have a look at it.

- Generate a bar plot using screeplot
- Generate a line plot using screeplot

This video will show you how to determine the number of principal components using the Kaiser method.

- Obtain the standard deviation and variance from swiss.pca
- Use the scree plot to select components with a variance above 1

Let's see how to use biplot to plot both variables and data.

- Create a scatter plot using component 1 and 2
- Create a biplot using the generated principal component object

In MDS, you can either use a metric or a nonmetric solution. This video illustrates how to perform MDS on the swiss dataset.

- Perform metric MDS with a maximum of two dimensions
- Plot the swiss data in a two-dimension scatter plot

You may require several times, reducing the dimension of matrices while working on datasets. Let us see how we could do this with SVD.

- Perform svd on the swiss dataset
- Plot the percentage of variance and the cumulative variance
- Reconstruct the data with only one singular vector

Let's see how to perform SVD on the classic image processing material, Lenna.

- Compress an image with SVD
- Perform SVD on the read numeric matrix
- Use 18 vectors to reconstruct the image

This video will show you how to perform a nonlinear dimension reduction with ISOMAP. This is one of the approaches to manifold learning and generalizes linear frameworks to nonlinear data structures.

- Install and load the RnavGraphImageData and vegan packages
- Use isomap to perform dimension reduction

This video will give you a short introduction of how to use LLE on an s-curve data.

- Install and load the lle package
- Use plot_lle to plot the LLE result

In order to prepare the RHadoop environment we need to download the Cloudera and QuickStart VM.

- Download VM from the download site
- Open the built image with VMware, VirtualBox or KVM
- Check if R and Hadoop are working

Installation of R and the rmr2 package is essential to perform MapReduce, which is used in performing data processing and analysis.

- Open the terminal of the Cloudera QuickStart VM
- Access an R session with root privileges and install dependent R packages
- download rmr-3.3.0 from GitHub to the local filesystem

In order to access HDFS resources you need to install rhdfs on every task node.

- Download rhdfs from GitHub. Install rhdfs
- Configure R with Java support. Access R and configure where HADOOP_CMD and HADOOP_STREAMING are located
- Initialize rhdfs via the rhdfs.init function

You can easily operate HDFS from the R console with the help of rhdfs.

- Initialize rhdfs with hdfs.init()
- Operate HDFS through the functions provided in the rhdfs package

You will understand how rmr2 is used for word count in this video.

- Configure the system environment and load rhdfs and rmr2 into R
- Specify the input of our word count program from the local filesystem into the HDFS directory
- Implement the MapReduce program. Call the function, wordcount and store the output path

Comparing Hadoop and a standard R program can help us decide which language is best suited for our needs.

- Implement two programs with standard R and R MapReduce functions

Since running a MapReduce program will require a considerable amount of time, testing and debugging become very important.

- Introduce the technique to test a MapReduce program in a local mode
- List the content of the variable within the map or reduce function

Plyrmr makes data manipulation operations easy.

- Install the package of libxml2-devel and curl-devel
- Access R and install the dependent packages
- Download the file from GitHub and install plyrmr in R

Writing a MapReduce program can be difficult for non-developers. Hence plyr-like operations can be used to manipulate data.

- Load the plyrmr package into R. Begin the data manipulation with data filtering
- Input the dataset into either the HDFS or local filesystem. Generate a summation of the frequency from the Titanic dataset
- Sum up the frequency by gender and use sample function and Join two datasets

You can perform machine learning operations with RHadoop.

- Fit the data into a linear regression model. Compute the fitted model and obtain the summary of the model
- Rewrite the regression model in a MapReduce fashion
- Derive the coefficient value and compare

Multinode clusters can be deployed with the help of Amazon EMR on RHadoop.

- Access the EMR cluster list and click on Create cluster. Set up the software configuration and choose the Hadoop distribution
- Configure the hardware by specifying the master, core, and task node
- Make a file containing all the start scripts named bootstrapRHadoop, and save the file in the S3 storage

The main objective is to understand the fundamental concepts and key features that make it so special and different from the classical Machine Learning approach.

- Know why Deep Learning is essential nowadays
- Understand the Deep Learning definition and its key features
- Learn from data as an optimization problem

The goal of this video is to learn more about Artificial Neural Networks and their vast world of variations, explore the basic architectures of ANNs in detail and talk about their possible implementations in R.

- Learn about Artificial Neural Networks and their basic computational unit
- Discover the Multilayer Perceptron algorithm
- Understand R packages for Artificial Neural Networks

Applying what you have learned about the Multilayer Perceptron algorithm to a real-world application, which classifies handwritten digits in images.

- Use the MLP as a classificator
- Discover and use the MNIST dataset and the MLP architecture
- Implement the MLP in R using the "nnet" and "caret" wrapper package

To get probabilistic predictions using Artificial Neural Networks and specifically in the context of a multi-class classification problem.

- Discover why the probabilistic predictions are important
- Class probability normalization and the Softmax function
- Determine how to get probabilistic predictions in R

To add multiple hidden layers to the basic Multilayers Perceptron algorithm in order to build more complex models of the world and increase the accuracy of our predictions.

- Learn about the multiple hidden layers ANN and how it differs from the MLP algorithm
- Discover tips about the best neural architecture suitable for your problem
- Discern the limitations of the multi-hidden-layers ANN

The goal of this video is to learn the best practices for tuning the hyper-parameters of an ANN and being able to generalize well on the data we have never seen before. This would be the latest essential skill to acquire in order to get the best out of our ANN solution.

- Tuning the hyper-parameters: Why is it important?
- Understand the problem of overfitting and how to avoid it.
- Train and validate end test split to accurately evaluate the performance of our model.

The goal of this video is to learn more about Multi-hidden-layer Neural Networks and how to use them in order to solve the practical problem of classifying handwritten digits within the R language.

- Introduction to the H2O package in R
- H2O setup and possible ANN instantiations
- Solve the digits classification task, with a multi-hidden-layer ANN

The goal of this video is to apply what we have learned about Multi-hidden-layer ANNs to a new real-world problem and get more confidence in the use of the H2O package.

- The Breast-Cancer dataset: Identify malign tumor in human breasts
- Learn how to solve the problem using the H2O package
- Tune the hyper-parameters for improving the model performances on the test set

The main objective is to understand the optimization process behind and common to every Deep Learning model with a more formal definition with respect to what was previously introduced.

- Understand what is meant by the Learning process
- Learn about the Loss function and the Score function
- Design the loss function and the regularization term

To explore with more details, the most common algorithm to minimize the loss function called Stochastic Gradient Descent.

- Understand the core concepts of Optimization algorithms
- Learn about Random Search and Local Search
- Discover the Gradient Descent and Stochastic Gradient Descent

The goal of this video is to understand how to actually learn the weights of our Deep Learning model using Stochastic Gradient Descent through Backpropagation, the standard way of computing the gradient for Artificial Neural Networks.

- Introduction to Backpropagation
- The Chain rule: an incremental calculus rule for computing the derivative
- A concrete example: Learn the weights of the Perceptron

To get to tune the hyper-parameters automatically in order to minimize the error on the validation set.

- Comprehend why we can't use SGD for the hyper-parameters optimization
- Learn about Grid Search and Random Search
- Implement the Discrete Random Search in R using H2O

This first video, will be an introduction to the fundamental concepts behind Convolutional Neural Networks. The main objective of this video is to motivate their use highlighting the differences from classical feed-forward neural networks.

- An high-level architectural overview and layers composition
- The heart of ConvNet: the Convolutional Layer
- Down-sampling through Pooling layers

The goal of this video is to learn more about Convolutional Neural Networks, concluding our dissertation on the layer-wise structure of a CNN and understand how to design architecture suitable for your specific problem.

- The last fundamental type of layers: Fully-connected Layers
- Design a CNN Architecture to suit your specific task
- Understand and visualize a CNN model after the training

The aim of this video is to understand how to actually implement CNNs in R, and use it to solve real-world problems.

- Introduction to the MxNetR package
- Implement the classical LeNet7 architecture with MxNetR
- Learn how to integrate your R code with CNNs outside R

The goal of this video is to learn about the concept of transfer Learning, and how we can use and exchange DL pre-trained models to solve even new tasks with a very tiny computational overhead.

- Introduce the concept of Transfer Learning
- Pre-trained CNN as a fixed feature extractor or to be fine-tuned
- Practical use-case: Classify complex natural images through pre-trained models in R

The aim of this video is to introduce the fundamental concepts behind Recurrent Neural Networks. The main objective is to underline their main differences from classical feed-forward neural networks and CNNs.

- Explore an Overview on Sequence Learning problems and the RNNs architecture
- Learn how to train RNNs with Back-propagation Trough Time
- Take a look at the Application examples of RNNs

The aim of this video is to learn more about a specific type of Recurrent Neural Networks, called Long Short-Term Memories, a natural extension of classical RNNs for dealing with long-term dependencies.

- Know the problem of long-term dependencies and LSTMs key features
- Explore the LSTM architecture in detail
- Understand and visualize a RNN and LSTM model after the training

The aim of this video is to understand how to actually implement RNNs in R, and use it to solve real-world problems.

- Get introduced to the RNN package
- Implement a simple one hidden layer RNN with the RNN package
- Learn how to integrate your R code with RNNs outside R

The aim of this video is to learn how to train and use an LSTM to solve a complex problem like predicting the next character in a sentence given the occurrences of the previous characters.

- Learn the LSTM architecture for the char-level language model
- Implement the LSTM model with the MxNetR package
- Train and use the LSTM model to generate fake sentences given a random initial character

The aim of this video is to understand the main differences from classical supervised learning and how they can be combined together.

- Explore the basic concepts about unsupervised learning and application examples
- Take a look at the basic concepts about reinforcement learning and application examples
- Combine the three paradigms together that can be essential for smarter solutions

In this video, you will learn more about a specific unsupervised learning algorithm called Autoencoders. This type of Artificial Neural Networks are simple and effective solutions for learning efficient representation of data without any supervision.

- Explore the main idea behind Autoencoders and their basic architecture
- Go through some under-complete and Over-complete Autoencoders and their pros and cons
- Take a look at De-noising Autoencoders and their implementation in R

The aim of this video is to learn about two very important unsupervised Deep Learning algorithms for features hierarchies: Restricted Boltzmann Machines and Deep Belief Networks.

- Get introduced to Generative Models and Boltzmann Machines
- Explore Restricted Boltzmann Machines and how to train them
- Get introduced to Deep belief Networks and how to train them

The aim of this video is to get a quick picture on the main approaches for solving reinforcement learning tasks with Deep Learning.

- Take Q-learning as the traditional approach for solving reinforcement learning tasks
- Explore Deep Q-learning and spot the main differences with the standard Q-learning approach
- Learn the resurgence of Policy Gradient methods for learning the agent policy directly using gradient descent

The aim of this video is to learn how to train and use an Autoencoders in R with the H2O package, for solving a real-world anomaly detection task.

- The problem: Human Activity Recognition Using Smartphones Data
- Take a look at the dataset and the Autoencoder architecture
- Explore the anomalous data in detail and identify their classes

The aim of this video is to spark new inspiration for creatively applying Deep Learning techniques to real-world problems in Computer Vision.

- Understand Deep Learning (DL) impact on Computer Vision (CV)
- Learn about some of the most successful applications of DL in CV
- Consider Dense object recognition as a useful case-study

The aim of this video is to creatively apply Deep Learning techniques to real-world problems in Natural Language Processing (NLP).

- Understand Deep Learning impact on NLP
- Learn about some of the most successful applications of DL in NLP
- Consider Word Embedding as a useful case-study

In this video, we'll creatively apply Deep Learning techniques to real-world problems in ASP.

- Understand the Deep Learning impact on Audio Signal Processing
- Learn about some of the most successful applications of DL in ASP
- Take Deep Generative models for speech synthesis as a useful case-study

The aim of this video is to introduce some of the most successful applications of Deep Learning for complex multimodal tasks.

- Understand the Deep Learning impact on complex multimodal tasks
- Learn about some of the most successful applications in this context
- Take Automatic Image Captioning as a useful case-study

In this video, let's take a look at some of the most successful applications in other fields we didn't mention before.

- Understand the Deep Learning impact on other more specific fields
- Learn about some of the most successful applications of DL in this context
- Take Recommendation systems as a useful case-study

The aim of this first video is to learn how to deal with models which do not behave as they should.

- Know why debugging Machine Learning systems is hard
- Learn why debugging Deep Learning systems is even harder
- Explore useful tips for incrementally debugging your Deep Learning algorithm

In this video, you will learn how to speed-up the training and deploy complex DL models.

- Explore Flynn's taxonomy and the SIMD architecture
- Learn about GPU and specialized hardware
- Learn about "Data parallelism" and "model parallelism" on Multi-GPU environments

The aim of this video is to present a complete overview on every available R package for Deep Learning and Neural Networks.

- Know why we're choosing R for Deep Learning
- Choose the packages depending on your problem
- Explore the general purpose frameworks with GPU and MGPU support

In this video, you will learn about the most interesting research directions and open question for the long-term developments of Deep Learning toward truly intelligent agents.

- Dive through the Context and Attention mechanism in Deep Neural Networks
- Take a look at the Long-term memory in Deep Neural Networks
- Continual Learning with Deep Neural Networks