返回列表

37th Solution

670. NeurIPS - Ariel Data Challenge 2025 | ariel-data-challenge-2025

开始: 2025-06-26 结束: 2025-09-24 物理与天文 数据算法赛
第 37 名解决方案 - ARIEL Data Challenge 2025

第 37 名解决方案

基于局部线段的凌日相位检测、漂移感知拟合及通过相对标准差进行的 Sigma 估计

作者: @ihiratch, @prgckwb, @itachicom615, @nashisandesu
发布日期: 2025-09-27
竞赛排名: 37

引言

我们(@ihiratch, @prgckwb, @itachicom615, @nashisandesu)想向竞赛组织者表达感谢。这是一个非常有趣且富有洞察力的挑战,我们期待再次参与。

我们的方法包含以下步骤:

  • 预处理
  • 凌日相位检测
  • 凌日深度估计
  • Sigma 估计
  • 后处理
  • 集成

我们主要使用数学建模而不是机器学习方法。我们的预测侧重于平均凌日深度和 sigma 值。我们没有对凌日深度或 sigma 使用依赖于波长的预测。

预处理

对于预处理,我们依赖这个优秀的公开笔记本:
( https://www.kaggle.com/code/vitalykudelya/neurips-non-ml-transit-curve-fitting )。我们非常感谢 @vitalykudelya 分享它。
我们做出的主要修改是使用 Numba 加速了线性校正步骤。这将预处理时间从大约 6 小时减少到大约 2 小时。

凌日相位检测

我们使用白光光变曲线(即所有波长平均后的光变曲线)来检测凌日相位。

方法概述

我们用直线近似入凌(ingress)和出凌(egress)区域。边界(入凌开始、入凌结束、出凌开始、出凌结束)可以估计为白光光变曲线开始偏离这些线的点(见下图)。

Transit Detection Diagram

细节

  • 我们首先获取对应于白光光变曲线差值的最大值和最小值的索引。
  • 最小差值大致对应于入凌过渡的中间。
  • 最大差值大致对应于出凌过渡的中间。
  • 在这些索引周围,我们构建局部线性拟合(“局部线”)。
  • 然后我们计算局部线与白光光变曲线之间的残差。
  • 残差开始偏离零的点被视为凌日相位边界。当残差超过 std(白光光变曲线) × THRESH_RATIO(超参数)时,我们检测到偏离。

凌日深度估计

我们使用数学模型预测每个行星的平均凌日深度。该模型是去年第一名数学模型的简化版本。(链接)非常感谢 @cnumber 和 @daiwakun 分享他们的优秀解决方案!

其思想是通过拟合提升凌日内(IT)通量,使其与凌日外(OOT)通量平滑连接。预测是针对每个行星的平均凌日深度进行的。我们没有预测依赖于波长的凌日深度(我们尝试过,但性能下降)。

模型:

$$ y(t) = s \,(1 + d(t)), \quad t \in \text{OOT} $$ $$ y(t) = r \cdot s \,(1 + d(t)), \quad t \in \text{IT} $$

优化:

$$ \min_{s,\,r,\,d} \;\; \sum_{t \in \mathrm{IT}} \frac{1}{n_{\mathrm{it}}}\,\bigl(y_{\text{true}}(t)-y(t)\bigr)^2 \;+\; \sum_{t \in \mathrm{OOT}} \frac{1}{n_{\mathrm{oot}}}\,\bigl(y_{\text{true}}(t)-y(t)\bigr)^2 \quad \text{s.t.} \quad \frac{1}{\,n_{\mathrm{it}}+n_{\mathrm{oot}}\,}\sum_{t} d(t) = 0 $$

这里:

  • s: 每个行星的平均通量水平
  • d(t): 传感器漂移项,建模为三次多项式
  • r: 凌日阶段通量的相对下降
  • y_true: 真实白光光变曲线
  • n_it, n_oot: 凌日内 (IT) 和凌日外 (OOT) 阶段的样本数

该约束强制漂移项的平均值为零,确保关于 s 的可识别性。我们独立地为每个行星求解此优化。每个行星的预测凌日深度计算为 1 − r

对于受临边昏暗(limb darkening)影响的行星,我们没有使用上述模型和优化。相反,我们将凌日深度估计为:1 − y_true.min() / y_true.max()。我们分析了具有临边昏暗的行星的光变曲线和凌日深度,得出结论认为这种近似是一个不错的估计(见下图)。

Light Curve Limb Darkening

Sigma 估计

我们根据光变曲线在时间和波长方向上的相对标准差估计每个行星的平均 sigma。我们没有预测依赖于波长的 sigma;相反,只预测了平均 sigma。

从光变曲线中,我们计算 sigma_t(时间方向相对标准差)和 sigma_w(波长方向相对标准差),然后计算每个行星的组合不确定性:

$$ \sigma_{\mathrm{combined}} = \sqrt{\,w_t \,\sigma_t^2 + w_w \,\sigma_w^2\,} $$

其中 w_t 和 w_w 是超参数。然后我们定义 k,代表每个行星的相对不确定性:

$$ k = \frac{\sigma_{\mathrm{combined}}}{\mathrm{Med}} $$

这里,Med 是所有行星中 sigma_combined 的中位数。每个行星的预测 sigma 由下式给出:

$$ \sigma_{\mathrm{pred}} = k \cdot \sigma_{\mathrm{base}} $$

其中 sigma_base 是代表基线 sigma 的超参数。这确保了具有较大整体不确定性的行星被分配较大的 sigma 值,而具有较小不确定性的行星接收较小的值。

sigma_t 和 sigma_w 的估计方法如下所述。

sigma_t 的估计

对于这部分,我们参考了优秀的公开笔记本:
(https://www.kaggle.com/code/antonsibilev/very-fast-with-hot-pixels-enabled) 我们真诚地感谢 @antonsibilev 分享它。

时间方向相对标准差 sigma_t 计算如下:

$$ \sigma_{t} = \frac{1}{\bar y^{\text{oot}}}\, \sqrt{ \frac{\operatorname{Var}(y^{\text{oot}})}{n_{\text{oot}}} + \frac{\operatorname{Var}(y^{\text{it}})}{n_{\text{it}}} } $$

其中 y_bar_oot 是凌日外 (OOT) 白光光变曲线的均值。sigma_t 是为每个行星计算的。sigma_t 可以解释为信号固有噪声的度量。

sigma_w 的估计

对于每个波长通道 c = 1,…,283,我们计算凌日内和凌日外的平均通量:

$$ \mu_{\mathrm{it},c} = \frac{1}{n_{\mathrm{it}}}\sum_{t=1}^{n_{\mathrm{it}}} y_{t,c} $$ $$ \mu_{\mathrm{oot},c} = \frac{1}{n_{\mathrm{oot}}}\sum_{t=1}^{n_{\mathrm{oot}}} y_{t,c} $$

波长 c 处的凌日深度粗略估计量为:

$$ \delta_c = 1 - \frac{\mu_{\mathrm{it},c}}{\mu_{\mathrm{oot},c}} $$

使用 Savitzky–Golay 滤波器平滑 delta_c 后,波长方向相对标准差 sigma_w 计算为:

$$ \sigma_w = \mathrm{STD}(\delta_c) $$

这允许我们估计跨波长的凌日深度变异性。

后处理

对于具有异常光变曲线形状或凌日相位检测失败的行星,我们应用了回退程序。在这些情况下,凌日深度估计为:1 − y_true.min() / y_true.max()。此外,我们将预测的 sigma 乘以大约三倍以防止性能下降。

集成

我们准备了 100 种不同的超参数配置并对它们的预测进行了集成。超参数配置是使用 Optuna 和 TPE 采样器探索的。我们将数据分为训练集和验证集,在训练集上搜索超参数,然后选择在训练集和验证集上都取得良好分数的候选配置。

集成 100 个预测略微提高了本地分数(从 0.437 到 0.440),但在公共或私人排行榜上没有提供任何增益。

无效的方法

预测依赖于波长的凌日深度效果不佳。仅使用平均凌日深度 consistently yielded 更好的性能。

同比赛其他方案