基于时间的回归:训练用更接近离港的快照是否构成数据泄露?
渡轮航线最终预订车辆数回归模型构建与数据泄露疑问
项目背景
我正在构建一个回归模型,用于预测渡轮航线的最终预订车辆数。每条训练数据代表某条航线离港N天前的预订状态。
数据集示例
| Days to departure | Departure Date | Line | Company | Cumulative bookings | Number of clicks | Final bookings |
|---|---|---|---|---|---|---|
| 100.0 | 2023-01-01 | VB | C2 | 4.0 | 1.0 | 211.0 |
| 99.0 | 2023-01-01 | VB | C2 | 4.0 | 7.0 | 211.0 |
| 98.0 | 2023-01-01 | VB | C2 | 6.0 | 14.0 | 211.0 |
| 97.0 | 2023-01-01 | VB | C2 | 6.0 | 5.0 | 211.0 |
| 96.0 | 2023-01-01 | VB | C2 | 7.0 | 1.0 | 211.0 |
可通过Python Pandas读取更大样本数据的代码:
url = "https://drive.google.com/file/d/1g5-IY7VuztZ6cVD2LAYikmyMy9iaksPc/view?usp=sharing" url = "https://drive.google.com/uc?id=" + url.split('/')[-2] df = pd.read_csv(url)
列说明
- Days to departure:航线离港剩余天数,例如2025年11月12日预测11月30日离港的航线,该值为18
- Date of departure:航线离港日期,示例中为2025年11月30日
- Line:标识航线两端港口的代码(RA:从R到A,VB:从V到B)
- Company:多条航线所属的集团(RA属于C1,VB属于C2)
- Cumulative Bookings:指定日期(离港前N天)该航线累计预订车辆数
- Number of clicks:指定日期该航线预订页面的点击量
- Final Bookings:该航线最终预订车辆数(目标变量)
训练数据覆盖2023年1月至2024年12月离港的所有航线,包含所有快照日(T-100、T-99……T-1)。
需求场景
假设当前为2025年11月12日,需预测2025年11月30日离港的航线(离港前18天)的最终预订量,输入数据如下:
| Days to departure | Departure Date | Line | Company | Cumulative bookings | Number of clicks |
|---|---|---|---|---|---|
| 18.0 | 2025-11-30 | RA | C1 | 15.0 | 20.0 |
数据泄露疑问
训练时模型已接触T-15、T-10、T-5等更接近离港的快照数据,例如:
| Days to departure | Departure Date | Line | Company | Cumulative bookings | Number of clicks | Final bookings |
|---|---|---|---|---|---|---|
| 15.0 | 2024-12-15 | RA | C1 | 10.0 | 25.0 | 150.0 |
| 10.0 | 2024-12-20 | VB | C1 | 12.0 | 30.0 | 150.0 |
| 5.0 | 2024-12-25 | VB | C1 | 14.0 | 18.0 | 150.0 |
使用这类数据训练模型后,对新航线在T-18时做预测是否属于数据泄露?
换而言之:
- 模型训练使用了比预测时更接近离港的快照,这是否存在问题?
- 还是只要特征仅包含快照时刻可用的信息,该训练设置就是完全有效的?
内容的提问来源于Stack Exchange,提问作者vpvinc
相关产品推荐
相关产品推荐

