# Model Building and Assessment

When you build a high-quality regression model, it is important to select the right features (or predictors), tune hyperparameters (model parameters not fit to the data), and assess model assumptions through residual diagnostics.

You can tune hyperparameters by iterating between choosing values for them and cross-validating a model using your choices. This process yields multiple models, and the best model among them might be the one that minimizes the estimated generalization error. For example, to tune an SVM model, choose a set of box constraints and kernel scales, cross-validate a model for each pair of values, and then compare their 10-fold, cross-validated, mean squared error estimates.

To engineer new features before training a regression model, use `genrfeatures`

.

To build and assess regression models interactively, use the **Regression Learner** app.

To automatically select a model with tuned hyperparameters, use `fitrauto`

. The function tries a selection of regression model
types with different hyperparameter values and returns a final model that is
expected to perform well. Use `fitrauto`

when you are
uncertain which regression model types best suit your data.

Certain nonparametric regression functions in Statistics and Machine Learning Toolbox™ offer automatic hyperparameter tuning through Bayesian
optimization, grid search, or random search. `bayesopt`

, the main function for
implementing Bayesian optimization, is flexible enough for many other
applications as well. For more details, see Bayesian Optimization Workflow.

To interpret a regression model, you can use `lime`

,
`shapley`

, and `plotPartialDependence`

.

## Apps

Regression Learner | Train regression models to predict data using supervised machine learning |

## Functions

## Objects

## Topics

### Regression Learner App Workflow

**Train Regression Models in Regression Learner App**

Workflow for training, comparing and improving regression models, including automated, manual, and parallel training.

**Choose Regression Model Options**

In Regression Learner, automatically train a selection of models, or compare and tune options of linear regression models, regression trees, support vector machines, Gaussian process regression models, ensembles of regression trees, and regression neural networks.

**Feature Selection and Feature Transformation Using Regression Learner App**

Identify useful predictors using plots, manually select features to include, and transform features using PCA in Regression Learner.

**Assess Model Performance in Regression Learner**

Compare model statistics and visualize results.

### Feature Selection

**Introduction to Feature Selection**

Learn about feature selection algorithms and explore the functions available for feature selection.

This topic introduces to sequential feature selection and provides an example that selects features sequentially using a custom criterion and the `sequentialfs`

function.

**Neighborhood Component Analysis (NCA) Feature Selection**

Neighborhood component analysis (NCA) is a non-parametric method for selecting features with the goal of maximizing prediction accuracy of regression and classification algorithms.

**Robust Feature Selection Using NCA for Regression**

Perform feature selection that is robust to outliers using a custom robust loss function in NCA.

**Select Predictors for Random Forests**

Select split-predictors for random forests using interaction test algorithm.

### Feature Engineering

**Automated Feature Engineering for Regression**

Use `genrfeatures`

to engineer new features before training a
regression model. Before making predictions on new data, apply the same feature
transformations to the new data set.

### Automated Model Selection

**Automated Regression Model Selection with Bayesian and ASHA Optimization**

Use `fitrauto`

to automatically try a selection of regression model types with different hyperparameter values, given training predictor and response data.

### Hyperparameter Optimization

**Bayesian Optimization Workflow**

Perform Bayesian optimization using a fit function
or by calling `bayesopt`

directly.

**Variables for a Bayesian Optimization**

Create variables for Bayesian optimization.

**Bayesian Optimization Objective Functions**

Create the objective function for Bayesian optimization.

**Constraints in Bayesian Optimization**

Set different types of constraints for Bayesian optimization.

**Optimize a Boosted Regression Ensemble**

Minimize cross-validation loss of a regression ensemble.

**Bayesian Optimization Plot Functions**

Visually monitor a Bayesian optimization.

**Bayesian Optimization Output Functions**

Monitor a Bayesian optimization.

**Bayesian Optimization Algorithm**

Understand the underlying algorithms for Bayesian optimization.

**Parallel Bayesian Optimization**

How Bayesian optimization works in parallel.

### Model Interpretation

**Interpret Machine Learning Models**

Explain model predictions using `lime`

, `shapley`

, and
`plotPartialDependence`

.

**Shapley Values for Machine Learning Model**

Compute Shapley values for a machine learning model using two algorithms: kernelSHAP and the extension to kernelSHAP.

### Cross-Validation

**Implement Cross-Validation Using Parallel Computing**

Speed up cross-validation using parallel computing.

### Linear Model Diagnostics

**Interpret Linear Regression Results**

Display and interpret linear regression output statistics.

Fit a linear regression model and examine the result.

**Linear Regression with Interaction Effects**

Construct and analyze a linear regression model with interaction effects and interpret the results.

**Summary of Output and Diagnostic Statistics**

Evaluate a fitted model by using model properties and object functions.

In linear regression, the *F*-statistic is the test statistic for the analysis of variance (ANOVA) approach to test the significance of the model or the components in the model. The *t*-statistic is useful for making inferences about the regression coefficients.

**Coefficient of Determination (R-Squared)**

Coefficient of determination (R-squared) indicates the proportionate amount of variation in the response variable *y* explained by the independent variables *X* in the linear regression model.

**Coefficient Standard Errors and Confidence Intervals**

Estimated coefficient variances and covariances capture the precision of regression coefficient estimates.

Residuals are useful for detecting outlying *y* values and checking the linear regression assumptions with respect to the error term in the regression model.

The Durbin-Watson test assesses whether or not there is autocorrelation among the residuals of time series data.

Cook's distance is useful for identifying outliers in the *X* values (observations for predictor variables).

The hat matrix provides a measure of leverage.

Delete-1 change in covariance (`CovRatio`

) identifies the
observations that are influential in the regression fit.

### Generalized Linear Model Diagnostics

Generalized linear models use linear methods to describe a potentially nonlinear relationship between predictor terms and a response variable.

### Nonlinear Model Diagnostics

Parametric nonlinear models represent the relationship between a continuous response variable and one or more continuous predictor variables.