# Data Protection and Multi-Database Data-Driven Models
## 3 Methodology  
As we have stated in the introduction, our main goal is to evaluate to what extent masking methods affect data-driven models built after data integration. Here, we understand data-driven models as models that have learnt from data using machine learning algorithms. In our analysis, we take two aspects into account. One is about the data integration process itself. That is, we want to analyze whether masking affects the integration process itself. The second aspect relates to data-driven models built from integrated data. That is, we want to analyze the quality of data-driven models built from data after the integration process. In order to assess both the data integration process and the data-driven model, we have used the following methodology. This methodology is based on the one described in our previous paper [9]. As we explain in the next section, in this paper we have a deeper analysis as we compare more masking methods, more machine learning algorithms, and more data sets. This work is based on existing techniques in data protection, data integration and machine learning models. In particular, we analyze data protection strategies on data integration and their corresponding impacts passed on to machine learning models. A detailed step-by-step description of the methodology is given below. We begin with a single database, which we denote \(DB_{0}\). A fraction of the records of this database are vertically partitioned into two different databases. These two databases are not disjoint, but they share some attributes. The purpose of this is to allow us to consider database integration and enable us to analyze the effects of masking methods on database integration. In addition to the database \(DB_{0}\), the methodology also requires a masking method \(\rho\), a machine learning algorithm \(m\), and a database integration method _integrate_. We will denote by \(y\) the dependent attribute in the database, and \(y(x)\) is the value of this attribute for record \(x\) in the database (without the attribute \(y\) itself). Our methodology is as follows:  
1. Partition \(DB_{0}\) horizontally into two parts, one for testing and the other for training. We call the training part \(DB\) and the testing part \(DB_{t}\). 2. Take \(DB\) and partition it vertically into two databases, \(DB_{1}\) and \(DB_{2}\). These two databases will share some attributes. We denote by \(nC\) the number of attributes that are shared by both databases. 3. Let \(\rho\) be a masking method. Independently mask the two databases \(DB_{1}\) and \(DB_{2}\). In this way, we produce two masked databases as follows: \(DB_{1}^{\prime}=\rho(DB_{1})\) and \(DB_{2}^{\prime}=\rho(DB_{2})\). 4. Integrate \(DB_{1}^{\prime}\) and \(DB_{2}^{\prime}\) using the \(nC\) common attributes of these databases. We denote by \(DB^{\prime}\) the resulting database. That is, \(DB^{\prime}=\textit{integrate}(DB_{1}^{\prime},DB_{2}^{\prime})\) where _integrate_ is an integration mechanism for databases. 5. Let \(m\) denote a machine learning algorithm. Compute a data-driven model for \(DB\) and another data-driven model for \(DB^{\prime}\) using the same machine learning algorithm. We denote by \(m(DB)\) and \(m(DB^{\prime})\) these two different data-driven models. We use \(m(DB)(x)\) to denote the application of this model to a record \(x\) from \(DB\) (not including the attribute \(y\)). 6. Evaluate the integration of the two databases (that is, the resulting database \(DB^{\prime}\)) using \(DB\). 7. Evaluate the performance of the models \(m(DB)\) and \(m(DB^{\prime})\) using the test database \(DB_{t}\). In order to make this process concrete, some steps need further clarification. We will describe them below. First, the database integration process: for this purpose we have used distance-based record linkage [18; 19]. This is one of the most effective algorithms, and at the same time, it is simple to apply. Given a record \(r_{1}\) in \(DB_{1}^{\prime}\), we compute its distance to each record \(r_{2}\) in \(DB_{2}^{\prime}\).