Datasets and Code: Vessel Classification
How we classify vessels
Global Fishing Watch uses a database of vessel records containing registry and automatic identification system (AIS)-based information to identify vessels with a known class. A two-part system — combining a convolutional neural network and a random forest model — is then trained to identify other vessels in the AIS data that exhibit similar behavioral patterns.

Our vessel characterization model assigns every active Maritime Mobile Service Identity (MMSI) number in the AIS dataset to one of the 40 vessel classes distinguished by Global Fishing Watch. The model also estimates vessel characteristics, including length, tonnage, engine power and speed.
How our models work
Since Global Fishing Watch was founded, we have used a convolutional neural network to produce model-based vessel classification outputs. In 2026, we developed and introduced a secondary classifier, based on a random forest, to further improve predictions.
The neural network analyzes AIS positional data to learn vessel movement patterns. The random forest classifier combines the neural network’s outputs with static AIS identity information, self-reported vessel type and features derived from vessel activity. This additional information helps build a more complete picture of each MMSI.
The two models draw from different types of AIS information. The neural network analyzes vessel tracks directly, learning from movement patterns, while the random forest classifier incorporates static AIS attributes and activity-related information. Both models are trained using cleaned vessel classes from registry data as ground-truth labels.
Model performance
We evaluate our classification model using the coarse vessel class and the atomic vessel class against a test set of labeled vessel classes. The performance criteria are conventional metrics to evaluate models: precision, recall, F1 score and error. Both macro and micro scores are calculated, but macro weighted values are taken more seriously, as they weigh classes evenly and do not favor classes with the greatest number of samples. The model achieves a macro F1 of 98.2 percent for general vessel type and 69 percent for specific gear type. Where labeled data is unavailable, experts analyze patterns in global vessel identity data, such as vessel counts and presence for each class, to assess whether the random forest results are plausible. For example, pole-and-line vessel presence in the high seas is unlikely and would be considered a poor result for that class.
Systemic bias
Model predictions depend on the quality and representativeness of the training data. Some fishing classes, such as trawlers and drifting longlines, are much better represented in the training data than others, and gear type is more represented than fishing and non-fishing classes combined. When labeled examples are scarce — for rare classes, understudied fleets or regions with limited registry coverage, for example — the model has less information to learn from. As a result, its predictions may be less reliable or less specific for these vessels.
Statistical bias
Aggregated micro-metrics appear favorable largely because a small number of dominant classes — such as gear and cargo, for which model performance is high — make up the majority of the dataset. These high-volume classes can raise overall scores and obscure lower performance on rarer classes with fewer samples. To address this bias, the evaluation also emphasizes macro-averaged metrics, which weight each class equally rather than averaging all individual vessels.
Model class estimates
Our vessel classification system uses a nested hierarchy of classes, allowing the model to assign a more general classification when confidence in a more specific one is insufficient.
For many fishing vessels, the model has sufficient confidence to assign a specific gear type, such as drifting longline or trawler. For many gear types, including fixed gear and seiners, the model first attempts to assign vessels to more specific categories before defaulting to broader classes.
When available information is incomplete, contradictory or insufficiently reliable, the model may be unable to assign a specific vessel class. In these cases, it assigns the broader “Fishing” class. This is more common for rare vessel classes and fleets.
When the top scoring vessel class for a vessel scores below the 0.35 threshold, the model defaults to the next broader parent class in the hierarchy. For example, a vessel may be classified as a “Fishing” vessel rather than a set gillnet fishing vessel. This approach reduces incorrect fine-grained classifications, but it also removes specificity from some predictions that were correct.
Our vessel classification system does not overwrite model estimates with registry values to avoid using incorrect or outdated registry information. We made this decision based on a review showing that discrepancies between our model and registry values are limited and result from errors in both sources. We will continue to refine our state-of-the-art AI model by incorporating registry information and user feedback more directly to further reduce inaccuracies in our classifications. For vessels with low gear-type specificity, users can gain further insight into potential vessel classifications. Users of the API and packages can access the combinedSourcesInfo.atomicClassSc field, which contains the model’s raw, finest-level prediction before the confidence threshold is applied.
Fishing + non-fishing + gear: 1.00
Other fishing classes
Non-fishing
This interactive widget illustrates how the vessel hierarchy works in practice. As the confidence score increases, the model may assign a more specific gear type. When the score exceeds 0.35, a vessel can be assigned a more specific class in the hierarchy. Confidence scores range from 0 to 1. © 2026 Global Fishing Watch.
Some vessels or fishing gears are defined or interpreted differently across countries and regions. Our vessel classification system does not represent all possible types of vessels around the world, but we are working to better align our vessel types, fishing gears and their nomenclature with those adopted by other institutions, including the Food and Agriculture Organization of the United Nations.
Vessel classes in the platform
The diagram below shows the decision flow for determining the vessel type and gear type fields displayed on our platform and maps.
Note that the models do not always make predictions. In cases where a vessel isn’t sufficiently active (more than 500 points after thinning to five-minute intervals), the model result is NULL and the final vessel type is “Insufficient data.”
Changes to vessel type and gear type classifications can directly affect how users interpret the data and the results of their analyses. Global Fishing Watch is reviewing its manual identity feedback workflow to better inform vessel classification decisions. When robust external evidence indicates that a model-estimated vessel type or gear type is incorrect or overly generic, we may override the model estimate with a manual classification.
For the release of Pipeline version 5, we reviewed 350 vessels and corrected their vessel type and gear type. We are working to develop a more complete and consistent protocol for manual overrides to share.
Caveats and limitations of vessel class estimates
Overclassification of gear
When the model has little information about a vessel, it tends to default to “Gear” class. Because “Gear” is by far the most common class, some MMSIs that do not correspond to gear vessels are mistakenly classified this way. This issue has persisted across multiple versions of the model.
Non-fishing vessels that report as fishing
Some non-fishing vessels report themselves as fishing, causing the model to classify them as fishing. For example, this is a noted issue in the Galapagos exclusive economic zone (EEZ), where some multipurpose vessels engage in fishing, while many others operate in ecotourism. Their activity patterns can resemble those of fishing vessels, leading to misclassification.
Over-generalized classifications
Model predictions are occasionally broad for vessels whose specific gear types are known. This is partly an artifact of the confidence threshold: applying the raw, more specific atomic-class prediction would increase error rates across these vessels. Consequently, generalization balances classification accuracy against specificity loss.
Purse seine confusion, especially in the Peruvian EEZ
There is noticeable model confusion between the “Tuna purse seines,” “Other purse seines,” and the broader “Purse seines” class in the classification hierarchy. Many purse seiners targeting anchovy or mackerel are misclassified as “Tuna purse seines,” while other purse seiners are assigned the broader “Fishing” category. Global Fishing Watch will continue to collect additional training labels and refine the class hierarchy structure in future updates.