<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards a Software Product Line for Machine Learning Workflows: Focus on Supporting Evolution</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Frédéric Precioso precioso@i</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>s.unice.fr</string-name>
          <email>blay@i3s.unice.fr</email>
          <email>camillie@i3s.unice.fr</email>
          <email>parisi@i3s.unice.fr</email>
          <email>riveill@i3s.unice.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Cécile Camillieri</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Joël Cancela Vaz</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Michel Riveill</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Mireille Blay-Fornarino</institution>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Université Côte d'Azur</institution>
          ,
          <addr-line>CNRS, I3S Bat Templier, 930 Route des Colles Sophia Antipolis</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>65</fpage>
      <lpage>70</lpage>
      <abstract>
        <p>The purpose of the ROCKFlows project is to lay the foundations of a Software Product Line (SPL) that helps the construction of machine learning work ows. Based on her data and objectives, the end user, who is not necessarily an expert, should be presented with work ows that address her needs in the "best possible way". To make such a platform durable, data scientists should be able to integrate new algorithms that can be compared to existing ones in the system, thus allowing to grow the space of available solutions. While comparing the algorithms is challenging in itself, Machine Learning, as a constantly evolving, extremely complex and broad domain, requires the de nition of speci c and exible evolution mechanisms. In this paper, we focus on mechanisms based on meta-modelling techniques to automatically enrich a SPL while ensuring its consistency.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        The answer to the question "What Machine Learning (ML)
algorithm should I use?" is always "It depends." It depends
on the size, quality, and nature of the data. It also depends
on what we want to do with the answer [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>The industry of cloud-based machine learning (e.g., IBM's
Watson Analytics, Amazon Machine Learning, Google's
Prediction API) provides tools to learn "from your data"
without having to worry about the cumbersome pre-processing
and ML algorithms. To address such a challenge they
propose fully automated solutions to some classical learning
problems such as classi cation. Some other actors like
Microsoft, with the Azure's Machine Learning platform, allow
users to build much more complex ML work ows, in a
graphical editor that is targeted towards ML experts.</p>
      <p>
        The common point between these solutions is that they
chose to select only a few algorithms, in comparison to the
hundreds that are available. However data scientists know
that the best algorithm will not be the same for each dataset
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Moreover, new algorithms are regularly proposed by
data scientists for dealing with more or less speci c
problems and improving performances and accuracy [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Thus,
in order to help users who want to build ML work ows, we
have to propose a system that can present a large variety
of algorithms to users, while helping them in their choices
based on their data and objectives. At the same time, we
should be able to extend the supported solutions at least
by incorporating new algorithms. The challenge is to hide
the complexity of the choices to the end user and to revise
our knowledge with each addition: an algorithm can become
less e cient compared to a new one, while the introduction
of new pre-processing operations can extend the reach of
algorithms already present.
      </p>
      <p>The contribution of this paper is thus to describe a
toolsupported approach, responding to this challenge: the
ROCKFlows project1.</p>
      <p>The remainder of the paper is organized as follows. We
discuss in the next section challenges we face and some
related works. Section 3 describes the architecture that
supports the project and two usage scenarios focusing each on
a di erent user of ROCKFlows. We detail the evolution
process and the correlated artefacts in Section 4. Section 5
concludes the paper and brie y discusses future work.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>TOWARDS A SPL FOR MACHINE</title>
    </sec>
    <sec id="sec-3">
      <title>LEARNING WORKFLOWS</title>
      <p>The purpose of the ROCKFlows project is to lay the
foundations of a software platform that helps the construction of
ML work ows. This task is highly complex because of the
increasing number and variability of available algorithms and
the di culty in choosing the suitable and parametrized
algorithms and their combinations. The problem is not only on
choosing the proper algorithms, but the proper
transformations to apply on the input data. It is a trade-o between
many requirements (e.g., accuracy, execution and training
time).</p>
      <p>
        Since Software Product Line (SPL) engineering is
concerned with both variability and systematically reusing
development assets in an application domain [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we have based
our project on SPL and model-driven techniques. The SPL
engineering separates two processes: domain engineering for
de ning commonality and the variability of the product line
and application engineering for deriving product line
appli1ROCKFlows stands for Request your Own Convenient
Knowledge Flows.
cations [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Similarly, the ROCKFlows project requires on
one hand to build a consistent SPL, allowing end users to get
reliable work ows, and on the other hand to allow evolution
of this SPL to integrate new algorithms and pre-processing
treatments.
      </p>
      <p>Based on these requirements, we have identi ed the
following challenges, addressing the needs for building and
evolving a SPL in a domain as complex and changing as ML,
ensuring a global consistency of the knowledge and
scalability of the system.</p>
      <sec id="sec-3-1">
        <title>C1: Exploratory project in a complex environment.</title>
        <p>
          Making a selection among the high number of data mining
algorithms is a real challenge: more than hundreds of
algorithms exist that can tackle a single ML problem such as
classi cation. While work exists to try and rank their
performance [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], it only gives an overview of which algorithms
are best in average, not for a given speci c problem and not
according to di erent pre-processing pipelines.
        </p>
        <p>Data scientists often approach new problems with a set
of best practices, acquired through experience. However,
there is few scienti c evidence as to why an algorithm or
pre-processing technique leads to better results than another
and in which case. Thus, one of the biggest challenge for this
project is so to nd a proper way to characterise algorithms
and to compare them, relatively to the very broad spectrum
of user needs and data representations.</p>
        <p>
          Collaboration between SPL developers and data scientists
induces a complex software ecosystem [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] where some
mathematical results may or not nd a correspondence at end
user problem level. Heterogeneity of formalisms induces that
new evolutions are regularly discussed between the di erent
stakeholders.
        </p>
        <p>Given these domain requirements, meta-model driven
engineering provides an e cient and powerful solution to
address the complexity of the ecosystem through support of
separation of concerns and collaborations. In order to
operationalize it, we chose to consider this environment as a set
of components relying on di erent meta-models for which
the evolution mechanisms are exposed through services.</p>
      </sec>
      <sec id="sec-3-2">
        <title>C2: SPL building in a constantly evolving environment.</title>
        <p>While the number of ML algorithms and techniques
constantly grows, the fundamental understanding of ML
internal mechanisms is not stable enough to allow us to set any
knowledge in stone. Both the domain and our understanding
of it evolve quickly, forcing constant evolution of the SPL.</p>
        <p>The line evolves in particular through the addition of
new algorithms and pre-processings. We run experiments
to identify dataset patterns leading to similar behavior of
algorithms on di erent concrete datasets. The high
number of possible combinations (variability of compositions and
algorithms) as well as the frequent changes in ML require
evolution mechanisms that are both incremental and loosely
coupled with the elements presented to the end user.</p>
        <p>As of today, ROCKFlows' SPL contains roughly 300
features, and 5000 constraints, representing 70 di erent ML
algorithms, 5 pre-processing work ows, and is mostly focused
on classi cation problems.</p>
        <p>
          Evolution in SPLs has been a challenge for many years [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
In particular, several works exist on evolution of Feature
Models (FM) [
          <xref ref-type="bibr" rid="ref1 ref8">8, 1</xref>
          ]. They propose di erent mechanisms for
maintaining consistency of evolving FMs. In our case, we
rely on these operations to update our models, but we had
to encapsulate them in business oriented services.
        </p>
        <p>
          Moreover, despite the huge variability of the system, we
have decided to propose the end user only choices that can
lead to a proper result. Hence, it should not be possible
to build a con guration for which we would not be able to
generate a work ow. For instance, it will not be possible for
a user to select, relatively to a given dataset, a performance
value for which we have no algorithm that can reach such
requirements. It is necessary for us to ensure a consistent
con guration process [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>
          Contrary to the works allowing several users to modify
a model in contradictory manners and aiming to reconcile
those [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], here we are in a setting where only consistent
evolutions are possible. Thus we did not have to handle
co-evolution problems. Like the approach used in
SPLEMMA [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], "Maintenance Services" de ne the semantics of
evolution operations on the SPL ensuring its consistency.
However, the analogy between meta-elements manipulated
in ROCKFlows and SPLEMMA is hard to establish,
especially because our solution and problem spaces are in a
constant evolution. Thus the associated meta-models are not
stable, implying intraspatial second degree evolutions [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]
i.e., several spaces and mappings are simultaneously
modi ed; e.g., Adding a non-functional property kind, due to
some improvement of the experiment meta-model, involves
to extend the FM and corresponding end user representation
(problem space) and generation tools to take into account
this new feature.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>C3: User Centered SPL.</title>
        <p>We identify three stakeholders, each leveraging challenges.
- SPL users are the end users of the SPL: it can be a
neophyte who is looking for a solution to extract information
from a dataset as well as an expert who wants to check or
learn dependencies among dataset properties, algorithms,
targeted platforms and user objectives. They want to use
a system helping them to master the variability, i.e., to
express their requirements and get their envisioned ML
workow. Both of these do not know about FMs and may need
complementary information like examples of uses of the
algorithms, details about the algorithm author or
implementation, etc. Thus, the visualization of a FM as in standard
tool is not adapted. Creating a user interface dedicated to
the SPL is also problematic knowing the changing nature of
the system. At the same time, in a agile process, we need to
test the SPL with users in order to align it with their needs,
which are hard to identify a priori.</p>
        <p>
          Some owcharts have been designed to give users a bit of
a rough guide on how to approach ML problems [
          <xref ref-type="bibr" rid="ref14 ref16">16, 14</xref>
          ].
ROCKFlows wants this approach to be operational. So, we
do not aim for the construction of work ows by assembly,
but the automatic production of these work ows, without a
direct contribution of the user in this construction process.
Works such as these are however potential targets for the
generation of the work ows where proposed optimization
could then be used automatically. Moreover, faced with the
multitude of such systems (Clowd ows [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], MLbase [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ],
Weka [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]), it is right to allow the user to select her
execution target(s) so that the production is limited only to the
ML work ows implemented by these platforms.
- External Developer are domain experts who contribute
to the SPL. They do not have all the knowledge of the
system and contribute by adding new algorithms. They have to
be able to contribute separately with minimal interference.
- Internal developers are leaders of the SPL. They have
the knowledge of the global architecture and manage
contributions of external developers to integrate them. They have
to be able to maintain the platform and to ensure the
consistency of all products despite the evolution of the ecosystem.
3.1
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>ARCHITECTURE FOR ROCKFlows</title>
    </sec>
    <sec id="sec-5">
      <title>ROCKFlows Big Picture</title>
      <p>
        A user willing to con gure a new ML work ow will do so
through a web-based con guration interface2. The process
requires at least the following steps, as visible on the left of
gure 1:
(a) The Graphical User Interface (GUI) requests display
metadata on the Feature Model. Metadata associate each
unique feature of the model with descriptions, references
or other artefacts aiming to help non-experts in their
choices. Figure 2 shows a screenshot of our GUI. Here,
user is presented with the choice of its main objective,
in the form of questions.
(b) Once the FM is loaded and displayed properly with the
metadata, the user con gures the underlying FM by
responding to questions. The Feature Model
component in the gure exposes a web-service that allows for
con guration on any FM, through the use of SPLAR's
API [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
(c) Once a valid and complete con guration has been
dened, it is sent to the Workfow component. The con
guration is then transformed into a Platform Independent
work ow model, that can in a second step be used to
generate executable code for di erent target platforms.
(d) The Generator may require access to the base of
algorithms handled by the system in order to be able to
produce the proper code.
      </p>
      <p>Though it is not described here, depending on user's
preference, the generated work ow would either be provided to
the user or directly executed by the target platform.
3.1.2</p>
      <sec id="sec-5-1">
        <title>Scenario 2: Submission of a new algorithm</title>
        <p>We will now focus on the introduction of new ML
algorithms in the SPL. Such an action has impacts on several
parts of the system:
- SPL: At least a new feature representing the algorithm
2The interface is accessible at http://rock ows.i3s.unice.fr
should be added in the FM;
- GUI: Display metadata should be updated to re ect this
new feature in the GUI;
- Generation: If we can execute the algorithm, the
generator should be updated to allow it either through code or a
reference to the corresponding element in target platform(s);
- Experiments should be made with this new algorithm in
order to compare it to the other known algorithms.
Currently, the properties that are considered are accuracy of
the results, execution time of the work ow, and memory
usage. If experiments can be achieved, i.e., Experiments
module has access to algorithm execution and results, the
SPL needs to be updated with performance information for
this algorithm but also for all the algorithms whose ranking
has changed.</p>
        <p>The central component SPLConsistencyManager's role is
to ensure that all required changes are made across the whole
system. Through the present scenario, we describe how this
component handles the impacts mentioned above.
(1) As an External Developer wants to add a new algorithm,
the GUI presents her with proper information that she
needs to provide. Because this information is meant to
change as the system encompasses more possibilities of
Machine Learning, it should be easy to change. Hence,
the SPLConsistencyManager provides the GUI with the
information needed to add a new algorithm in the tool.</p>
        <p>The GUI presents then a generated form to the user.
(2) Once the External Developer has provided all
information on the algorithm, it is sent to the Consistency
Manager and dispatched among the other components.
(3) If the External Developer provided code to execute the
algorithm, the Experiments component is requested to
run tests on the algorithms, in order to nd its
performance. This component is described more precisely in
the next section.
(4) Once experiments are nished, the manager analyses the
results to nd whether any inconsistency was found
between the information provided by the user and the
results. If not, the algorithm can be added both to the
Feature Model and base of currently supported
algorithms.
(5) Finally, once the feature has been added to the FM,
its display metadata can be lled with the information
provided by the expert.
3.2</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Component for experiments on algorithms</title>
      <p>
        As we want even non-expert users to be able to get the
appropriate algorithm for their need, we chose to express
higher level goals such as best accuracy or quickest execution
time in the FM. This representation allows to lter out a
number of algorithms by o ering users with trade-o s over
these goals. In a second step, or a more advanced mode,
using other models such as requirements engineering Goal
Models is considered. In combination with our FM, it could
allow during con guration to present the user with more
precise expected values for her non functional goals [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>To be able to express knowledge such as "best", "average"
or "worst" accuracy, we need an appropriate way to
compare algorithms on a given problem. This ranking among
algorithms is computed by our Experiment module. The
component runs each known algorithm on the available
compatible datasets and stores its performance on the di erent
properties for each dataset. On top of that, it will transform
the datasets with a set of available pre-processing operations
and test again each algorithm with those new sets.</p>
      <p>Algorithms results on similar datasets are then compared
to one another to get a result similar to the one visible on
gure 3. Though it will not be discussed here, we have de ned
an algorithm based on classical ML and statistical methods
to pull o this comparison and regroup datasets in so-called
dataset patterns. This knowledge can then be pushed in
the FM in the form of constraints linking a functional
objective, an algorithm, a dataset pattern and the ranking for
each of the properties, also depending on the possible
preprocessings for this dataset.</p>
      <p>As presented in section 3.1.2, the Experiment component
is driven by the SPL Consistency Manager, that is charged
to start experiments, gather and validate results before
incorporating them in the SPL. As new algorithms are added,
all experiments do not have the need to be executed again,
however the ranking of the algorithms must be updated to
take in account the newest algorithm.
4.</p>
    </sec>
    <sec id="sec-7">
      <title>ARTEFACTS TO SUPPORT EVOLUTION</title>
      <p>This section discusses how we allow users to provide
information about new algorithms, how we use it to update
the system, and how we can ensure consistency despite the
multiple impacts of these changes.
4.1</p>
    </sec>
    <sec id="sec-8">
      <title>Meta-models</title>
      <p>In order to make the system as accessible as possible,
additional information on features must be set, such as
descriptions or examples, as well as closed questions that will be
asked to the end user during con guration. This metadata
on the practical features is handled in a dedicated
metamodel AlgorithmDescriptionMM and used to build the GUIs
that are presented to the end users and external developers.
The model is brie y described in subsection 4.2.
4.1.3</p>
      <sec id="sec-8-1">
        <title>Handling the results of Experiments</title>
        <p>Information such as the accuracy ranking of algorithms
according to dataset patterns is managed by the Experiment
component. The expected format of this data is designed in
a dedicated meta-model ExperimentPropertyMM. It evolves
as we gain knowledge and experience.
3http://ec2-52-32-1-180.us-west-2.compute.amazonaws.
com:8080/SPLOT/sxfm.html
4An excerpt of the meta-model used for both FM and
con guration de nition in the library, can be found
in https://github.com/FMTools/sxfm-ecore/blob/master/
plugins/sxfm/model/sxfm.png</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Metadata on Algorithms</title>
      <p>Data scientists adding their algorithms in the system need
to provide at least:
- The high level ML objective the algorithm can be used
for: classi cation of data, prediction of numerical values
(regression), anomaly detection, etc.;
- Properties of the algorithm in regards to input data:
which data types the algorithm supports, can the algorithm
handle missing values in the data, etc.;
- A description of the algorithm, examples of its use,
references to publications or web pages describing the algorithm.
As described in section 4.1.2, those will be displayed in the
con guration interface;
- If possible, code that will allow us to run the algorithm
in our tool, so that we can both compare it to the others
algorithms and provide executable work ows to end users.</p>
      <p>
        Through the de nition of theses elements in the
AlgorithmDescriptionMM meta-model, a form is automatically
generated and presented to the domain expert. Thus, the
model can be extended to add new properties for the
algorithms and will be automatically handled by the GUI.
However the impact of such changes on the FM still has to
be handled by the SPL manager. We do not know if tools
such as the one described in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] could help because those
changes mostly impact code.
4.3
      </p>
    </sec>
    <sec id="sec-10">
      <title>Domain driven tooled approach to manage Feature Model evolution</title>
      <p>Even though we have de ned a single FM for
ROCKFlows, we put a focus on separating concerns in it. The
tree is currently separated in 4 sub-trees handling: input
data description, user objectives, the processing algorithms,
and expected properties of the generated work ow. This
separation of concerns provides a rst level of modularity
for the model.</p>
      <p>Linking Domain artefact and FM structure. Metadata
external to the FM itself de nes particular points in the FM
where feature can be inserted. Only the sub-trees that need
to be modi ed are considered. In our example, we add all
algorithms responding to the classi cation problem in the
same sub-tree. This mechanism enables us to extend the
model cleanly, and abstract ourselves from the exact
hierarchy of the features. So, adding new class of algorithms or
modifying the structure of the FM can easily be achieved.
Once the feature for the algorithm has been created,
additional constraints need to be de ned between the algorithm
and other features, in particular those describing input data.</p>
      <p>Generating domain constraints. Only certain types of
constraints must be de ned among those di erent sub-trees.
For instance algorithms can de ne constraints towards input
data, such as "SVM implies Numerical Data" but never the
other way around. However such a constraint only applies in
a work ow if no pre-processing is used. So, this constraint
has to be transformed to express a constraint depending on
the pre-processings that can be applied. The complexity of
these cases, their multitude and the frequency of evolution
lead us to encapsulate the generation of those constraints in
dedicated operators, working on given ensembles (e.g.,
preprocessing set that returns numerical Data). They also
introduce features that are hidden to the end user, allowing
us to tame this complexity.</p>
      <p>It is interesting to note that, depending of the semantics
associated to the features, di erent constraints should be
generated. For instance, if an algorithm cannot deal with
missing values, a constraint "algo excludes missing values"
needs to be generated. In the other case, a constraint "algo
implies missing values" should never be generated because
such an algorithm can still be used even if no missing value is
present in the input data. Like previously, this higher level
knowledge of the features is de ned in our metadata. It
allows us to ensure that all necessary constraints are properly
de ned for all algorithms we add into the SPL.</p>
    </sec>
    <sec id="sec-11">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>In this paper, we have outlined some of the di culties
related to building and evolving a SPL for ML work ows.
To handle the line's complexity and evolution, we have
proposed an architecture organized around a set of meta-models
and transformations encapsulated within services, A large
number of complementary perspectives are considered, both
on mechanisms to build the SPL and on the business
approach of ML.</p>
      <p>
        The complexity we are facing requires an agile and
pragmatic approach in which users are given the opportunity
to provide feedback during the early stages of the project.
The necessity for evolution of the system leads us today to
consider moving towards approaches focused on the reuse of
existing components [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. This would allow for a necessary
control over the system's evolution.
      </p>
      <p>
        The domain of ML is currently booming with propositions
for algorithms, distributivity of execution and the opening to
a larger audience. We consider to extend our approach to
integrate the necessary parameters for distributing work ows'
execution as well as proposing deep learning work ows. A
longer term question is to target Scienti c Work ow
Management systems, allowing so to explore data driven
execution through transformations targeting the speci cation
interchange language called WISP [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>Finally, we wish to allow the end user to express her needs
in business terms, through an approach similar to IBM
Watson Analytics5. It is a question of integrating the state of the
art practices in our modelisation, without losing the power
of our evolutionary approach, driven by experiments.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Acher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Collet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Lahire</surname>
          </string-name>
          , and R. France.
          <article-title>Separation of Concerns in Feature Modeling: Support and Applications</article-title>
          .
          <source>In AOSD'12. ACM</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>O.</given-names>
            <surname>Alam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kienzle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Mussbacher.</surname>
          </string-name>
          Concern-Oriented
          <source>Software Design</source>
          , pages
          <volume>604</volume>
          {
          <fpage>621</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Anwar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ebersold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Coulette</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nassar</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kriouile</surname>
          </string-name>
          .
          <article-title>A Rule-Driven Approach for composing Viewpoint-oriented Models</article-title>
          .
          <source>Journal of Object Technology</source>
          ,
          <volume>9</volume>
          (
          <issue>2</issue>
          ):
          <volume>89</volume>
          {
          <fpage>114</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B. F.</given-names>
            <surname>Bastos</surname>
          </string-name>
          ,
          <string-name>
            <surname>R. M. M. Braga</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. T. A.</given-names>
            <surname>Gomes. WISP</surname>
          </string-name>
          :
          <article-title>A pattern-based approach to the interchange of scienti c work ow speci cations</article-title>
          .
          <source>Concurrency and Computation: Practice and Experience</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Northrop</surname>
          </string-name>
          .
          <source>Software Product Lines : Practices and Patterns</source>
          .
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fernandez-Delgado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Cernadas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Barro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Amorim</surname>
          </string-name>
          .
          <article-title>Do we Need Hundreds of Classi ers to Solve Real World Classi cation Problems?</article-title>
          <source>Journal of Machine Learning Research</source>
          ,
          <volume>15</volume>
          :
          <fpage>3133</fpage>
          {
          <fpage>3181</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Getir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rindt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kehrer</surname>
          </string-name>
          .
          <article-title>A generic framework for analyzing model co-evolution</article-title>
          .
          <source>In Proceedings of the Workshop on Models and Evolution co-located with MoDELS</source>
          <year>2014</year>
          , Valencia, Spain, Sept
          <volume>28</volume>
          ,
          <year>2014</year>
          ., pages
          <volume>12</volume>
          {
          <fpage>21</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          .
          <article-title>Consistency maintenance for evolving feature models</article-title>
          .
          <source>Expert Systems with Applications</source>
          ,
          <volume>39</volume>
          (
          <issue>5</issue>
          ):
          <volume>4987</volume>
          {
          <fpage>4998</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hall</surname>
          </string-name>
          , E. Frank,
          <string-name>
            <given-names>G.</given-names>
            <surname>Holmes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Pfahringer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Reutemann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I. H.</given-names>
            <surname>Witten</surname>
          </string-name>
          .
          <article-title>The weka data mining software: An update</article-title>
          .
          <source>SIGKDD Explor</source>
          . Newsl.,
          <volume>11</volume>
          (
          <issue>1</issue>
          ):
          <volume>10</volume>
          {
          <fpage>18</fpage>
          ,
          <string-name>
            <surname>Nov</surname>
          </string-name>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kranjc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Podpecan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Lavrac</surname>
          </string-name>
          .
          <article-title>Clowd ows: a cloud based scienti c work ow platform</article-title>
          .
          <source>In Machine Learning and Knowledge Discovery in Databases</source>
          , pages
          <volume>816</volume>
          {
          <fpage>819</fpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Talwalkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Duchi</surname>
          </string-name>
          , R. Gri th, M. J.
          <string-name>
            <surname>Franklin</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Jordan</surname>
          </string-name>
          .
          <article-title>MLbase: A Distributed Machine-Learning System</article-title>
          .
          <source>In CIDR</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>M. M. Mendonca</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Branco</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Cowan</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Mendonca. S.P.L.O.T.</surname>
          </string-name>
          :
          <article-title>software product lines online tools</article-title>
          .
          <source>In OOPSLA</source>
          , pages
          <volume>761</volume>
          {
          <fpage>762</fpage>
          . ACM Press,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Claes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Grosjean</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Serebrenik</surname>
          </string-name>
          .
          <source>Studying Evolving Software Ecosystems based on Ecological Models. In Evolving Software Systems</source>
          , pages
          <fpage>297</fpage>
          {
          <fpage>326</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pedregosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Varoquaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gramfort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Thirion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grisel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blondel</surname>
          </string-name>
          , and al.
          <source>Scikit-learn: Machine learning in Python. Journal of Machine Learning Research</source>
          ,
          <volume>12</volume>
          :
          <fpage>2825</fpage>
          {
          <fpage>2830</fpage>
          ,
          <year>2011</year>
          . http: //scikit-learn.org/stable/tutorial/machine learning map/.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Bockle, and</article-title>
          <string-name>
            <given-names>F. J. van der Linden. Software</given-names>
            <surname>Product</surname>
          </string-name>
          Line Engineering: Foundations, Principles and Techniques. Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>B.</given-names>
            <surname>Rohrer</surname>
          </string-name>
          .
          <article-title>Machine learning algorithm cheat sheet for Microsoft Azure Machine Learning Studio</article-title>
          . https://azure.microsoft.com/en-us/documentation/ articles/machine
          <article-title>-learning-algorithm-cheat-sheet/.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Romero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Urli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Quinton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blay-Fornarino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Collet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Duchien</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mosser</surname>
          </string-name>
          .
          <article-title>SPLEMMA: a generic framework for controlled-evolution of software product lines</article-title>
          .
          <source>In International Workshop on Model-driven Approaches in SPL (MAPLE)</source>
          , volume
          <volume>2013</volume>
          , pages
          <fpage>59</fpage>
          {
          <fpage>66</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Scho</surname>
          </string-name>
          <article-title>ttle,</article-title>
          <string-name>
            <surname>O. Alam</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kienzle</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Mussbacher</surname>
          </string-name>
          .
          <article-title>On the modularization provided by concern-oriented reuse</article-title>
          .
          <source>In Proceedings of MODULARITY'16</source>
          , pages
          <fpage>184</fpage>
          {
          <fpage>189</fpage>
          , New York, NY, USA,
          <year>2016</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Heidenreich</surname>
          </string-name>
          ,
          <string-name>
            <surname>U.</surname>
          </string-name>
          <article-title>A mann, and U. A mann. Co-evolution of Models and Feature Mapping in Software Product Lines</article-title>
          .
          <source>In Proceedings of SPLC'12</source>
          , pages
          <fpage>76</fpage>
          {
          <fpage>85</fpage>
          , New York, NY, USA,
          <year>2012</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Urli</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Blay-fornarino, and</article-title>
          <string-name>
            <given-names>P.</given-names>
            <surname>Collet</surname>
          </string-name>
          .
          <article-title>Handling Complex Con gurations in Software Product Lines : a Tooled Approach</article-title>
          . In ACM, editor,
          <source>Proceedings of SPLC'14</source>
          , pages
          <fpage>112</fpage>
          {
          <fpage>121</fpage>
          ,
          <string-name>
            <surname>Florence</surname>
          </string-name>
          , Italy,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>I. H.</given-names>
            <surname>Witten</surname>
          </string-name>
          , E. Frank, and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>a</article-title>
          .
          <source>Hall. Data Mining: Practical Machine Learning Tools and Techniques (Google eBook)</source>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D. H.</given-names>
            <surname>Wolpert</surname>
          </string-name>
          .
          <article-title>The lack of a priori distinctions between learning algorithms</article-title>
          .
          <source>Neural Comput.</source>
          ,
          <volume>8</volume>
          (
          <issue>7</issue>
          ):
          <volume>1341</volume>
          {
          <fpage>1390</fpage>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          .
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>