# Prediction Models

easyPheno includes various phenotype prediction models, both classical genomic selection approaches as well as machine and deep learning-based methods. In the following pages, we will give some details for all of the currently implemented models. We further included a subpage explaining the Bayesian optimization that we use for our automatic hyperparameter search.

We provide both a workflow running easyPheno with a command line interface using Docker and as a pip package, see the following tutorials for more details:

In both cases, you need to select the prediction model you want to run - or also multiple ones within the same optimization run.
A specific prediction model can be selected by giving the name of the *.py* file in which it is implemented (without the *.py* suffix).
For instance, if you want to run a Support Vector Machine implemented in *svm.py*, you need to specify *svm*.

easyPheno automatically chooses based on the selected phenotype whether to use the implementation for a classification (discrete trait) or regression (continuous trait) task. All models except the classical genomic selection approaches (RR-BLUP and Bayesian alphabet models) provide an implementation for both cases.

In the following table, we give the keys for all prediction models as well as links to detailed descriptions and the source code:

Model |
Key in easyPheno |
Description |
Source Code |
Notes |
---|---|---|---|---|

Ridge Regression BLUP |
blup |
|||

Bayes A |
bayesAfromR |
requires Docker workflow |
||

Bayes B |
bayesBfromR |
requires Docker workflow |
||

Bayes C |
bayesCfromR |
requires Docker workflow |
||

L1-regularized Linear / Logistic Regression |
linearregression |
Regularization type in source code adjustable |
||

Elastic Net-regularized Linear / Logistic Regression |
elasticnet |
|||

Support Vector Machine / Regression |
svm |
|||

Random Forest |
randomforest |
|||

XGBoost |
xgboost |
|||

Multilayer Perceptron |
mlp |
|||

Convolutional Neural Network |
cnn |
|||

Local Convolutional Neural Network |
localcnn |

If you are interested in adjusting an existing model or its hyperparameters: HowTo: Adjust existing prediction models and their hyperparameters.

If you want to integrate your own prediction model: HowTo: Integrate your own prediction model.