Challenge Overview
Problem Statement | |||||||||||||
Prize Distribution
Requirements to Win a PrizeIn order to receive a prize, you must do all the following:
BackgroundWe wish to identify the type of fishing being performed by a vessel, based on AIS broadcast reports and contextual data. In this second round of the challenge, we will be building upon the first round a bit, by now attempting to further classify based upon the type of fishing taking place. ObjectiveCreate an algorithm to effectively identify if a vessel is fishing--and if so, the type of fishing taking place--based on observable behavior and any additional data such as weather, known fishing grounds, etc. regardless of vessel type or declared purpose. Your algorithm shall utilize AIS positional data, and combined oceanographic data as provided in the downloadable data set. Your algorithm should then detect vessels that match the profile of behaviors of vessels engaged in fishing. You must identify what type of fishing each vessel is involved in during each of the tracks in the data set. Data DescriptionThe data is provided as a set of CSV files, one for each vessel track, as well as a ground truth file (for the training data) indicating the type of fishing being performed on each track. The vessel track data contains the following fields:
The ground truth file for training data will contain the following fields:
The fishing type will not be included for the testing data.
FunctionsDuring the contest, only your results will be submitted. You will submit code which implements only one function, getAnswerURL(). Your function will return a String corresponding to the URL of your answer .csv file. You may upload your .csv file to a cloud hosting service (such as Dropbox) which can provide a direct link to your .csv file. To create a direct sharing link in Dropbox, right click on the uploaded file and select share. You should be able to copy a link to this specific file which ends with the tag "?dl=0". This URL will point directly to your file if you change this tag to "?dl=1". You can then use this link in your getAnswerURL() function. Your complete code that generates these results will be tested at the end of the contest before prize distribution. The answer CSV file should contain several rows, each of the form ���Track#, FishingType, Prob���. The probability for any combination of track number and fishing type not specified in the answer CSV will be assumed to be 0.0. Any value greater than 1.0 will be treated as 1.0, and values less than 0.0 will be treated as 0.0. ScoringYour predictions will be scored against the ground truth using the area under the receiver operating characteristic (ROC). Some of the records in the test set will be used for provisional scoring, and others for system test scoring. (You will not know which records belong to which set.) The ROC curve will be determined and the score will be determined from the area under the ROC curve using the following method:
ResourcesThe following links are included, as they were all listed with the previous "Fishing for Fishermen" contest. Though they are not all strictly necessary or directly useful in this iteration, we have left them included for anyone with general interest in subject. Useful site for the entire AIS message (each line of data to be provided is an AIS "sentence"): http://catb.org/gpsd/AIVDM.html#_aivdm_aivdo_sentence_layer ITU document describing ���payload��� field (field 6 of each message): https://www.itu.int/rec/R-REC-M.1371/en How to calculate the NMEA checksum: https://rietman.wordpress.com/2008/09/25/how-to-calculate-the-nmea-checksum/ The distance between 2 points, given their longitude and latitude, can be calculated using the Haversine formula. ReportYour report must be at least 2 pages long, contain at least the following sections, and use the section and bullet names below. Your InformationThis section must contain at least the following:
Approach UsedPlease describe your algorithm so that we know what you did even before seeing your code. Use line references to refer to specific portions of your code. This section must contain at least the following:
| |||||||||||||
Definition | |||||||||||||
| |||||||||||||
Examples | |||||||||||||
0) | |||||||||||||
| |||||||||||||
1) | |||||||||||||
| |||||||||||||
2) | |||||||||||||
|
This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2020, TopCoder, Inc. All rights reserved.