<!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>Species Recommendation using Machine Learning - GeoLifeCLEF 2019</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nanda H Krishna</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Praveen Kumar R</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ram Kaushik R</string-name>
          <email>ramkaushik17125g@cse.ssn.edu.in</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>P Mirunalini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chandrabose Aravindan</string-name>
          <email>aravindancg@ssn.edu.in</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S M Jaisakthi</string-name>
          <email>jaisakthi.murugaiyan@vit.ac.in</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science and Engineering, SSN College of Engineering</institution>
          ,
          <addr-line>Kalavakkam, Chennai</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computer Science and Engineering, VIT University</institution>
          ,
          <addr-line>Vellore</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Prediction of the species present at a location is useful for understanding biodiversity and for the purpose of conservation. The objective of the GeoLifeCLEF 2019 Challenge is to build a species recommendation system based on location and Environmental Variables (EVs). In this paper, we discuss di erent approaches to predict the most probable species based on location and EV values, using Machine Learning. We rst developed purely spatial models which took only the spatial coordinates as inputs. We then built models that took both the spatial coordinates and EV values as inputs. For our runs, we mainly used Articial Neural Networks and the XGBoost framework. Our team achieved a maximum Top30 score of 0.1342 in the test phase, with an XGBoostbased model.</p>
      </abstract>
      <kwd-group>
        <kwd>Species Recommendation</kwd>
        <kwd>Environmental Variables chine Learning</kwd>
        <kwd>XGBoost</kwd>
        <kwd>ANN</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>MaThe prediction of the species present at a location based on spatial and
environmental parameters is of great use in understanding biodiversity. It greatly
reduces e orts required to collect and analyse data, and allows for more research
on the e ects of climate change, species invasion and other phenomena on the
biodiversity of a region.</p>
      <p>
        With the goal of setting up robust information systems relying on automatic
identi cation and understanding of living organisms, the LifeCLEF 2019
challenges [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] were organised. Among these was the GeoLifeCLEF 2019 challenge
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the aim of which was to build a species recommendation system using the
given species occurrences and environmental parameters. Environmental
Variable (EV) values were given as TIF images, from which the patches for a
particular location (latitude and longitude) could be extracted using a Python script [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Multiple datasets of species occurrences were provided for the contest. One
of these was the dataset with trusted occurrences that had an identi cation
con dence score of greater than 0.98, which was derived from the complete
occurrences by applying a lter. This dataset, PL trusted, contained over 230,000
occurrences and over 1300 distinct species. We used this dataset as it provided
the most accurate occurrences with a good con dence score.
      </p>
      <p>The test set for the challenge contained 25000 occurrence IDs for which the
species had to be predicted. There were 844 plant species in the test set
occurrences, which is a subset of those found in the training sets. Thus, some species
present in the training data were non-test species (not present in the test set
occurrences).</p>
      <p>The evaluation metric for the challenge was Top30, which is the mean of the
function scoring 1 if the good species is within the top 30 predicted, or 0
otherwise. The metric is ideal as some tens of plant species usually coexist in the
perimeter of the location uncertainty of the occurrences. The Mean Reciprocal
Rank (MRR) was used as a secondary metric to enable comparison with previous
year results.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Data Preprocessing</title>
      <p>The occurrences dataset PL trusted contained the Latitude, Longitude, Species
ID and some other data. From this, we created three di erent datasets for our
usage in di erent runs, based on the di erent models we had in mind.
2.1</p>
      <p>Spatial Data
We extracted the spatial coordinates and Species ID to create a dataset for
training purely spatial models and also a baseline probability-based model.
2.2</p>
      <p>
        Spatial and EV Data
We rst created a dataset containing the spatial coordinates and the value of the
central pixel for each EV extracted from the EV image patches. Then we created
another dataset, containing the spatial coordinates, and the average value of the
16 central pixels extracted from each EV image patch. The values from the image
patches were extracted using Python scripts [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], as tensors. A sample generated
from the extractor for a few EVs is shown in Fig. 1. The same preprocessing was
also applied to the test set during prediction.
Our main approaches to this challenge were classi ers based on Arti cial Neural
Networks using Keras [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the Random Forest Classi er from scikit-learn [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and
the XGBoost library [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
We created this model for our understanding of the species distribution across
the whole dataset of occurrences, and submitted it as our baseline approach.
We used the occurrences data to obtain the number of occurrences of each
individual species, and thus determined their probabilities. The list of species was
then sorted in descending order of probabilities, and the non-test species were
removed. From this, the top 50 species were chosen. For each test occurrence,
the same list of 50 species was assigned in the submission. This run (26821) had
a Top30 score of 0.0570.
The purely spatial models take only the spatial coordinates, that is, the latitude
and longitude of the occurrences as inputs, and output a list of probabilities of
the species. The predictions for each occurrence were sorted in descending order
of probabilities, following which the non-test species were removed. The top
30 species for each occurrence were chosen for the submission. We built purely
spatial models using XGBoost, ANNs and Random Forest Classi ers.
XGBoost: This model used the XGBoost framework, where we set the
parameter eta to 0.1 and the objective function to XGBoost's multi : sof tprob which
is used for multiclass classi cation. The num round parameter in training was
set to 1. This run (26988) had a Top30 score of 0.1063.
      </p>
      <p>ANN: We used an Arti cial Neural Network developed using the Keras
library (Tensor ow backend) for this model. The Sequential model had 5 hidden
Dense layers with 256 units and the relu activation function. Two Dropout
layers with rate 0.02 were present, one after the rst 2 Dense layers and the
other after the next 2 Dense layers. The nal output layer had the number of
units set to the number of species in PL trusted, with sof tmax activation - to
predict class probabilities. The model was compiled with adam optimizer and
categorical crossentropy loss, for 10 epochs and a batch size of 2000. The Top30
score for this run (26875) was 0.0844. The summary of the model is shown in
Fig. 2.
Random Forest: This model was built using the in-built
RandomForestClassier in the scikit-learn framework, with n estimators set to 10. The Top30 score
of this run (27102) was 0.0834.
3.3</p>
      <p>Models Based on Spatial Coordinates and EV Values
These models had the spatial coordinates and the extracted EV values as their
inputs, and were trained to predict species probabilities. We made 8 submissions
based on these data, using XGBoost, a Multiple ANNs model and an ANN taking
selected features as inputs. In each approach, the non-test species were removed
from the list of predictions, and the top 30 species based on probability were
chosen to be submitted for each test occurrence.</p>
      <p>XGBoost: We made 4 submissions (26996, 26997, 27012, 27013) using the
XGBoost library. The di erences between these runs was the value of the max depth
parameter of the model, and the dataset used in training. All EV values were
used in three runs (26997, 27012, 27013) while all EV values except the
categorical feature clc were used in one run (26996). The value of parameter eta was set
to 0.1, the objective was set to multi : sof tprob and the num round parameter
during training was set to 1 in all these runs. The details of the models can be
found in Table 1. It is to be noted that our top scoring submission was achieved
with this method (26997), with a Top30 score of 0.1342.</p>
      <p>Run
26996
26997
27012
27013</p>
      <p>Extracted EV Values</p>
      <p>Single Central
Average of 16 Central
Average of 16 Central</p>
      <p>Single Central
Multiple ANNs: We developed a unique model which consisted of 5 di erent
ANNs. We split the features - spatial coordinates and EV values - into 5 di erent
mutually exclusive and exhaustive groups, each of which was the input to an
ANN. The outputs of each ANN were the probabilities of the various species.
The output vectors of each ANN, containing the probabilities, were averaged to
get the nal probability for each species. The architecture of all 5 ANNs was the
same as used earlier (refer Fig. 2). The only di erence is the input dimension,
which is based on the group of features sent as inputs to the ANNs. Also, the
feature clc was integer encoded before being passed to the ANNs. The features
sent to each ANN can be found in Table 2.</p>
      <p>We made 2 submissions using the Multiple ANNs model (27064, 27067). The rst
submission (27064) was made based on the dataset with EV values extracted
from the central pixel of the patches, and it obtained a Top30 score of 0.1198.
The second submission (27067) was made based on the dataset with EV values
extracted by averaging the central 16 pixel values, and it obtained a Top30 score
of 0.1135.</p>
      <p>Selected Features ANN: Another approach we tried was an ANN with
selected important features as inputs. The ANN used has an architecture similar
to that of the ones used earlier (refer Fig. 2) but with di erent input dimension.</p>
      <p>ANN 1
Latitude
Longitude</p>
      <p>alti
awc top
bs top
cec top
chbio 1</p>
      <p>ANN 2
chbio 10
chbio 11
chbio 12
chbio 13
chbio 14
chbio 15
chbio 16</p>
      <p>ANN 3
chbio 17
chbio 18
chbio 19
chbio 2
chbio 3
chbio 4
chbio 5</p>
      <p>ANN 4
chbio 6
chbio 7
chbio 8
chbio 9
crusting
dgh
dimp</p>
      <p>ANN 5
erodi
etp
oc top
pd top
proxi eau fast
text
clc
We selected what we identi ed as important features based on data observation
and geological knowledge. Thus the features selected as inputs to the ANN were
Latitude, Longitude, alti, awc top, bs top, chbio 1, chbio 10, chbio 11, chbio 17,
chbio 18, chbio 19, chbio 2, chbio 3, erodi and etp.</p>
      <p>Of the 2 submissions made using the Selected Features ANN, one (27069) used
the dataset with EV values extracted by averaging the central 16 pixel values
of the patches, while the other used the dataset with EV values extracted from
the central pixel alone. The Top30 scores of these submissions were 0.1227 and
0.1268 respectively.
3.4</p>
      <p>Other Unsubmitted Methods
Initially, we had tried to use more advanced methods to approach this problem
such as ResNet and Convolutional Neural Networks. We did this because of
the great reputation of these Networks to problems such as image classi cation.
However, these runs were highly unsatisfactory and poorer than the rest of our
approaches. Thus, we did not submit these runs for evaluation.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Source Code and Computational Resources</title>
      <p>We have uploaded our source code in the form of Jupyter Notebooks to a public
GitHub repository3. Instructions are provided for installing requirements and
using the Notebooks. The resources we used were a 2.6 GHz Intel i7 CPU and
an NVIDIA 940M GPU. Our unsubmitted models were trained using a Google
Cloud VM instance with 8 CPUs.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Results</title>
      <p>
        In the GeoLifeCLEF 2019 challenge, our team SSN CSE achieved a top
submission rank of 6, with a best Top30 score of 0.1342. Overall, we were ranked 3rd.
The top rankers were team LIRMM with a best Top30 score of 0.1769 and team
3 https://github.com/nandahkrishna/GeoLifeCLEF2019
SaraSi with 0.1687. The overall results can be seen in Fig. 3 and on the challenge
website [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
The overall results of the challenge show the di culty in building species
recommendation systems. We approached this problem using various Machine Learning
techniques and evaluated their performance in this task. We thus learnt a great
deal about the uses and advantages of these methods.
      </p>
      <p>
        Early on, we found that complex models such as ResNet did not perform greatly
in the task. This was shown by the results of last year's edition of the challenge
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The poor predicting power of our unsubmitted models could be attributed
to the curse of dimensionality, vanishing probabilities due to large number of
classes, and also the fact that the EV image patches are very di erent from
the traditional photographic images they are generally used for. Even a simple
probability-based model and purely spatial models outperformed these models.
Purely spatial models did not perform very bad, but models using the EV
values greatly outperformed them. The XGBoost models produced good results
in last year's edition of the challenge and we observe a repeat of that in our
submissions this year, often outperforming ANNs. However, the top submissions
involved species co-occurrence models which would have enhanced the predictive
power and thus performance in the challenge.
      </p>
      <p>In the future, our aim would be to enhance our current models by
hyperparameter tuning and the incorporation of co-occurrence based data. External
data sources and co-occurrence models could help in enhancing the results. We
also aim to explore di erent custom designed Neural Network architectures to
improve performance on this task.
7</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgements</title>
      <p>We thank SSN College of Engineering for allowing us to use the High
Performance Computing Laboratory during our work for this challenge. We thank Dr.
M A Rajamamannan (Government Arts College, Coimbatore) for his help in
identifying the important features for species recommendation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. GeoLifeCLEF 2019 Challenge, https://www.imageclef.org/GeoLifeCLEF2019</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. GLC19 GitHub Repository, https://github.com/maximiliense/GLC19</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Alexis</given-names>
            <surname>Joly</surname>
          </string-name>
          , Herv Goau,
          <string-name>
            <surname>C.B.S.K.M.S.H.G.P.B.W.P.V.R.P.F.R.S.H.M.</surname>
          </string-name>
          <article-title>: Overview of LifeCLEF 2019: Identi cation of Amazonian Plants, South &amp; North American Birds, and Niche Prediction</article-title>
          .
          <source>In: Proceedings of CLEF</source>
          <year>2019</year>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Botella</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Servajean</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bonnet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joly</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Overview of GeoLifeCLEF 2019: plant species prediction using environment and animal occurrences</article-title>
          .
          <source>In: CLEF working notes 2019</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guestrin</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>XGBoost: A Scalable Tree Boosting System</article-title>
          .
          <source>In: Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining</source>
          . pp.
          <volume>785</volume>
          {
          <fpage>794</fpage>
          . KDD '16,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2016</year>
          ). https://doi.org/10.1145/2939672.2939785, http://doi.acm.
          <source>org/10</source>
          .1145/ 2939672.2939785
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Chollet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , et al.: Keras. https://keras.io (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Christophe</given-names>
            <surname>Botella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Pierre</given-names>
            <surname>Bonnet</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.M.P.M.</surname>
          </string-name>
          <article-title>A</article-title>
          .J.:
          <source>Overview of GeoLifeCLEF</source>
          <year>2018</year>
          :
          <article-title>Location-based Species Recommendation (</article-title>
          <year>2018</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>2125</volume>
          / invited_paper_8.pdf
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Pedregosa</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varoquaux</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gramfort</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Michel</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thirion</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grisel</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blondel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prettenhofer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dubourg</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderplas</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Passos</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cournapeau</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brucher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perrot</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duchesnay</surname>
          </string-name>
          , E.:
          <article-title>Scikit-learn: Machine Learning in Python</article-title>
          .
          <source>Journal of Machine Learning Research</source>
          <volume>12</volume>
          ,
          <volume>2825</volume>
          {
          <fpage>2830</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>