## 4 Validation and Implementation  
Regarding the validation and the implementation of the proposed prediction approach, various paths can be followed. About the implementation that has been done in this work, the following have been conducted in each step:  
Step 1. Identify attributes and relative datasets  
To begin with, to implement step 1, two datasets have been spotted and used for performing experiments. The first dataset is the Avazu ([[https://www.kaggle.com/c/avazu-ctr-prediction/overview](https://www.kaggle.com/c/avazu-ctr-prediction/overview)]([https://www.kaggle.com/c/avazu-ctr-prediction/overview](https://www.kaggle.com/c/avazu-ctr-prediction/overview))) (accessed on 22 September 2021) dataset and the second is the DIGIX ([[https://www.kaggle.com/louischen7/2020-digix-advertisement-ctr-prediction](https://www.kaggle.com/louischen7/2020-digix-advertisement-ctr-prediction)]([https://www.kaggle.com/louischen7/2020-digix-advertisement-ctr-prediction](https://www.kaggle.com/louischen7/2020-digix-advertisement-ctr-prediction))). (accessed on 23 September 2021) These two datasets were selected because they were suitable for testing the approach and conducting the experiments. Furthermore, both datasets are widely accepted by the scientific community and many researchers have used them to conduct experiments and test their models [26]. Beginning with the Avazu dataset, it contains nearly 1.1 M records/rows and 23 discrete attributes/columns. The attributes that were selected (based on the criteria that are described above) as input to a model from this dataset are the following:  
* Time (time period)
* Application and site category and domain
* Application name and id
* Advertisement position (where the advertisement will be displayed)
* Device type and model
* Connection type  
All the above variables are categorical, and the task was to predict the 'click' variable (0 or 1 possible values). The second dataset is DIGIX, which contains over 40 M records/rows and 36 different attributes/columns. The attributes that were selected as input to a model from this dataset are the following:  
* Time period
* Application and site category
* Display form of an ad material
* App level 1 category of an ad task
* App level 2 category of an ad task
* Application ID of an ad task
* Application tag of an ad task
* Application score/rating
* Device name and size
* Model release time
* Connection type  
All the above variables are categorical, and the task was to predict the 'label' variable (0 or 1 possible values). Step 2. Conduct offline experiments and check models' performances/validation  
The next step was to perform offline experiments to explore the performance of the state-of-the-art approaches when limited attributes are available. Being more specific, the objectives of these experiments are (a) to check if they perform better than traditional/baseline models when limited attributes are available, and (b) if the results with limited attributes are close enough with the results that they achieve when all the attributes are available (to verify that they perform satisfactorily). To begin with, the following models have been examined. * Traditional/baseline models such as:
* GradientBoost--Gradient boosting is a machine learning technique for regression, classification and other tasks, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees. Gradient boosting involves three elements: (a) A loss function to be optimized, (b) a weak learner to make predictions, and (c) an additive model to add weak learners to minimize the loss function [31]. * CatBoost--is an algorithm for gradient boosting on decision trees. A gradient boosting framework attempts to solve for categorical features using a permutation driven alternative compared to the classical algorithm [32]. * Logistic Regression--a statistical model that uses a logistic function to model a binary dependent variable.