class: center, middle, inverse, title-slide .title[ # WhoseEgg ] .subtitle[ ## .white[A Shiny App for Identifying Invasive Carp Using Random Forests and Fish Egg Characteristics] ] .author[ ###
] .author[ ### .white[Katherine Goode] ] .author[ ### .white[Joint work with]
Dr. Mike Weber
.white[and]
Dr. Philip Dixon
] .author[ ### .white[Presented at ISU Graphics Group] ] .date[ ### .white[February 25, 2021]
.medium[.white[Code for slide generation found
here
]] ] --- <style type="text/css"> .tiny{font-size: 30%} .small{font-size: 50%} .medium{font-size: 75%} .left-code { color: #777; width: 37%; height: 92%; float: left; } .right-plot { width: 60%; float: right; padding-left: 1%; } </style> # Overview .pull-left[ <br> - Background on invasive carp <br> - Random forest approach to fish egg identification <br> - Shiny app ] .pull-right[ ![](figures/fishy.gif) ] --- class: inverse, middle, center # Background on Invasive Carp --- # Invasive Carp .pull-left[ Information from [National Park Service](https://www.nps.gov/miss/learn/nature/ascarpover.htm): - Native to Europe and Asia - Brought to US in 1970's "to control algae, weed, and parasite growth in aquatic farms, weeds in canal systems, and as one form of sewage treatment" - Escaped into wild - Become a problem in Mississippi River basin: - Threaten native fish populations - May lower water quality - Possible danger to boaters ] .pull-right[ <center> ![](figures/large-carp.JPG) <center/> ] --- # Jumping Carp <iframe width="900" height="510" src="https://www.youtube.com/embed/pJ6WH28RvQU" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> --- # More Jumping Carp <iframe width="900" height="510" src="https://www.youtube.com/embed/yC-PSvlbogg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> --- # Management of Carp - Federal and state agencies monitor and try to manage invasive carp populations to: - Control population - Keep out of new aquatic ecosystems (include Great Lakes) - Management practices from [USGS](https://www.usgs.gov/ecosystems/invasive-species-program/science/asian-carp?qt-science_center_objects=0#qt-science_center_objects) <img src="figures/management-practices.png" width="90%" style="display: block; margin: auto;" /> --- # Egg Collection <br> - One method for monitoring carp is to collect eggs - Common practice is to have eggs identified using genetic analysis - Both expensive and timely - Led Camacho et al (2019) to try using machine learning to classify fish eggs <br> .center[ <img src="figures/egg1.png" width="30%" /><img src="figures/egg2.png" width="30%" /><img src="figures/egg5.png" width="30%" /> ] --- class: inverse, middle, center # Random Forest Approach to Egg Classification --- # Overview of Random Forests .pull-left[ **[Camacho et al. (2019)](https://afspubs.onlinelibrary.wiley.com/doi/abs/10.1002/nafm.10380)** - Trained random forests - Predictor variables: egg characteristics - Responses: taxonomy levels (family, genus, species) - Models showed promise for identifying invasive carp ] .pull-right[ **[Goode et al. (submitted manuscript)](https://github.com/goodekat/carp-egg-rf-validation)** - Validated models using a new year of data - Trained new models with all years of data <br> ![](figures/large-carp2.JPG) ] --- # Sampling Site and Years Three years of collection <img src="figures/map.png" width="70%" style="display: block; margin: auto;" /> --- # Egg Collection Collected eggs were taken to the lab for measurements and genetic identification <img src="figures/Larval_Tow_Eggs.jpg" width="45%" style="display: block; margin: auto;" /> --- # Predictor Variables .left-code[ **Egg characteristics: ** - Month - Julian day - Water temperature - Water conductivity - Deflated? - Pigment? - Compact or diffuse? - Sticky debris? - Egg stage - Membrane average - Membrane standard deviation - Membrane coefficient of variation - Yolk average - Yolk standard deviation - Yolk coefficient of variation - Yolk to membrane ratio - Larval length ] .right-plot[ <img src="figures/egg-characteristics.png" width="100%" style="display: block; margin: auto;" /> ] --- # Response Variables .pull-left[ **Taxonomy**: - Genus (17 levels) - Species (29 levels) <br> **Taxonomy with invasive carp categorized as on class**: - Family (8 levels) - Genus (16 levels) - Species (27 levels) ] .pull-right[ ![](figures/carp.png) <br> <small> Image source: https://www.watershedcouncil.org/asian-carp.html </small> ] --- # Results: Metrics on Training Data Models trained with 2014-2015 and 2014-2016 data <img src="figures/train-res.png" width="95%" style="display: block; margin: auto;" /> --- # Results: Validation of Original Models Metrics computed using 2014-2015 model on 2016 data <img src="figures/val-res.png" width="2700" /> --- class: inverse, middle, center # Shiny App --- # WhoseEgg **Goal** - Provide a tool for easily predicting the identification of fish eggs using the random forests - Used to help identify areas where invasive carp are reproducing <br> **Audience** - Scientists and natural resource management organization employees - Many non-R users - Users in upper Mississippi River basin (possibly other regions) <br> **Models used** - Random forests for predicting family, genus, and species with invasive carp grouped --- # Feedback from Audience **Current version:** - Version 1 of app (almost complete) - Have ideas for improvement - Would be great to hear thoughts! <br> **For example:** - Suggestions to make more user friendly - Data input process? - What else to look at with predictions within the app? - Advice for instructions? - Organizing help page? --- # App Demonstration <img src="figures/app.png" width="90%" style="display: block; margin: auto;" /> --- # Plans for Adding to the App Version 2: - Add visualizations of input data compared to training data - Include prediction intervals <br> Version 3: - Add visualizations relating to explainability for individual predictions - Add video showing how to use the app - Add image during loading of swimming fish --- class: inverse, center # Thank you! <img src="figures/Skunk River larval AC.jpg" width="85%" /> --- class: inverse, center, middle # Additional Figures --- # Metrics on New/Old Sites <img src="figures/res-diff-sites.png" width="80%" style="display: block; margin: auto;" /> --- # Feature Importance <img src="figures/feature-imp.png" width="100%" style="display: block; margin: auto;" /> --- # Partial Dependence Plots <img src="figures/pdps.png" width="100%" style="display: block; margin: auto;" /> --- # Correlation Between Features <img src="figures/correlation.png" width="80%" style="display: block; margin: auto;" />