基于船舶档案、气象数据及历史通航数据,构建智能预测模型,精准预判船舶在锚地的等待时长

在全球供应链体系中,港口作为核心节点,其作业效率直接影响物流成本与贸易周期。然而,受恶劣天气、船舶集中到港以及码头调度复杂性影响,"船舶排队拥堵"已成为行业常态。船舶在锚地长时间等待,不仅造成巨大的船期损失,更会导致大量燃油浪费和碳排放。
实现"等泊时长"的精准预测,是推动航运业"准时到港(Just-In-Time Arrival)"模式的关键。本次挑战赛旨在利用船舶档案、气象数据及历史通航数据,构建智能预测模型,精准预判船舶在锚地的等待时长,从而辅助船东优化航速、协助港口优化调度,推动绿色航运发展。
参赛者需要利用提供的船舶港口挂靠历史数据集(源自 AIS 数据清洗)、气象环境数据集及船舶静态档案,构建模型预测船舶的等泊时长(即从船舶进入锚地到靠泊开始作业之间的时间差)。
选手需要自行进行特征工程,充分挖掘气象因素(风、浪)、船舶属性(大小、吃水)与排队时长之间的关系,可以用时间区间多分类或者回归方法对等泊时长进行预测。
本赛题为多分类和回归任务。评分标准如下:
为了兼顾各类别的预测准确性(平衡样本不均衡问题),比赛采用 MacroF1-Score(宏平均 F1 分数)作为核心评价指标。
假设共有 K 个类别(0,1,……,K-1),针对第 k 个类别的 Precision(查准率)记为 Pk,Recall(查全率)记为 Rk。
第 k 类的 F1-Score 计算如下:
最终的 MacroF1-Score 为所有类别 F1-Score 的算术平均值:
最终得分换算公式(满分 100 分):
注:MacroF1 指标能够有效避免模型只倾向于预测"大多数样本"(如短时等待),而忽略了"少数关键样本"(如长时严重拥堵)的情况,要求模型在长尾区间也有较好的表现。
对于回归模型,请采用均方误差来衡量模型预测的准确性。公式如下:
其中,n 是样本的总数量;yi 是第 i 个样本的真实值;ŷi 是第 i 个样本的预测值。
| 列名 | 类型 | 说明 |
|---|---|---|
| leg_start_port_code | str | 起始港编码 |
| leg_end_port_code | str | 目的港编码 |
| start_postime | str | 开始靠泊时间,格式 YYYY-MM-dd HH:MM:SS |
| end_postime | str | 靠泊结束时间,格式 YYYY-MM-dd HH:MM:SS |
| leg_start_postime | str | 航次开始时间(以青岛港-洋山港为例,该时间为青岛港的出发时间) |
| arrival_time | str | 到港时间,若先锚后靠,则该时间为进入锚地的时间(开始排队);若直接靠泊,则该时间为开始靠泊时间。格式 YYYY-MM-dd HH:MM:SS |
| utc_date | str | 日期,关联港口气象使用。格式 YYYY/MM/dd |
| berth_duration | float | 泊位停留时间(小时) |
| moor_duration_port | float | 等待泊位时间(小时) |
| berth_uuid | str | 泊位编号 |
| mmsi | str | 船舶唯一标识码 |
| flag_ctry | str | 船旗 |
| dwt | int | 载重吨,单位吨 |
| grt | int | 总吨,单位吨 |
| net | int | 净吨,单位吨 |
| teu | int | 船舶最多可承载的箱量 |
| liquid | int | 船舶最多可承载的液体重量,单位吨 |
| gas | int | 船舶最多可承载的气体,单位立方米 |
| length | int | 船长,单位米 |
| width | int | 船宽,单位米 |
| height | int | 船高,单位米 |
| draught | int | 设计吃水,单位米 |
| operator_body | str | 运营公司 |
| 列名 | 类型 | 说明 |
|---|---|---|
| port_code | str | 港口代码 |
| utc_date | str | 日期,用于跟港口历史挂靠表关联 |
| temperature | float | 温度 |
| pressure | int | 气压 |
| humidity | int | 湿度 |
| dew_point | float | 露点 |
| clouds | int | 云量 |
| visibility | int | 能见度 |
| wind_speed | float | 风速 |
| wind_deg | int | 风向 |
| rain | dict | 雨量 |
| daily_temp_max | float | 日最高温度 |
| daily_temp_min | float | 日最低温度 |
| daily_rain | float | 日降水量 |
| daily_humidity | int | 日均湿度 |
| weather_id | int | 无实际意义 |
| weather_icon | 气象编码 | 无实际意义 |
| weather_main | str | 主要天气状况 |
| weather_description | str | 天气描述 |
| 列名 | 类型 | 说明 |
|---|---|---|
| berth_type | int | 泊位种类 |
| load_type | str | 1为装,0为卸。其余为异常 |
| cargo-type | str | 货物种类 |
| name_cn | str | 泊位名称 |
| berth_length | float | 泊位长度(米) |
| terminal_id | int | 码头 id |
| terminal_uuid | str | 码头编号 |
| terminal_length | float | 码头长度(米) |
4. 待预测进港数据测试集:为 arrival_time 为 2026 年的数据,与上述字段相同,berth_uuid、berth_duration、moor_duration 为空。
参赛队伍需提交一个包含模型代码和预测结果的压缩文件,预测结果需包含测试集中的原始字段和预测结果。
最终的排名根据参赛者选择的方法和官方计算的精度共同决定。