返回列表

3rd place solution - Polynomial fitting + PCA

626. NeurIPS - Ariel Data Challenge 2024 | ariel-data-challenge-2024

开始: 2024-08-01 结束: 2024-10-31 物理与天文 数据算法赛
第三名解决方案 - 多项式拟合 + PCA

第三名解决方案 - 多项式拟合 + PCA

作者: Skril, Vincent Debout

竞赛: Ariel Data Challenge 2024

发布时间: 2024-12-08

排名: 第 3 名

非常感谢组织者举办这场真正鼓舞人心的竞赛!我们祝愿 Ariel 任务及其团队一切顺利!

我们的解决方案分为四个主要阶段:

  1. 数据预处理
  2. 原始光谱值提取
  3. 光谱后处理和 sigma 估计
  4. 使用 PCA 进行最终光谱细化

相应代码可在此 Notebook 中找到:https://www.kaggle.com/code/skril31/adc-2024-space-coders

每个阶段将在下面详细描述。在测试集上的总计算时间约为 1.5 小时,使用 4 个 CPU 进程。

1. 数据预处理

校准和空间求和

这一步主要反映了组织者提出的校准过程(校准 Notebook),并进行了一些旨在提高信噪比 (SNR) 的修改:

  • 保留热像素 (Hot pixels) 以防止潜在的信息丢失,假设它们的信号在暗电流校正后仍然有价值。
  • 仅考虑强度值最高的前 50% 像素,这有助于将噪声降低约 4%。
  • AIRS-CH0 的 Binning 减少到 12(FGS1 为 144)。

加权和死像素缓解

对数据进行加权,以便在光谱轴平均期间优先考虑具有较高 SNR 的波长。对于每个波长,权重计算为出凌 (out-of-transit) 信号均值与其方差的比率。

权重图示

此外,为了减轻死像素对凌日深度重建的影响,当存在死像素时,我们对 AIRS 波长的权重应用惩罚因子。惩罚因子根据死像素的位置而变化,对更可能影响凌日深度的中心像素应用更大的惩罚。
我们曾尝试对热像素也应用惩罚因子,但这降低了性能。

2. 原始光谱值提取

此阶段侧重于从预处理数据中估计每个波长的 (Rp/Rs)² 比率。

去趋势和凌日深度估计

凌日深度的计算基于时间信号的多项式拟合(最高 5 度),排除入凌 (ingress) 和出凌 (egress) 过渡,并对凌日部分应用乘法移位。
我们使用 scipy.optimize.curve_fit 以及以下模型函数,并在过渡区域使用较高的不确定性 sigma

def fit_fn(ts, transit_depth, *trending_coeffs): 
    return Polynomial(trending_coeffs)(ts)* (1. - transit_mask * transit_depth)

波长平均

为了减少噪声,优化应用于 AIRS neighboring 波长 [k - N, k + N] 上加权信号的平均值(包括 282 个目标之外的额外波长)。作为噪声减少与因光谱平均导致的精度损失之间的妥协,我们对于前 200 个波长选择 N = 8,对于 SNR 非常低且光谱动态显然较低的最后一个波长选择 N = 20。

入凌和出凌过渡的确定

通过与高斯函数的前两个导数进行卷积来检测过渡:

  • 中心被识别为与高斯一阶导数卷积的极值。
  • 边缘近似为与高斯二阶导数卷积的周围极值。
过渡检测图示

光谱提取的改进

  • 度数选择:
    我们依次评估 2、4 和 5 度,选择具有最佳 RMS 误差的度数,并用度数的平方进行惩罚。对过渡外的每个段应用 savgol 滤波器以确保代表性的 RMS 差异。
    这种度数选择降低了在凌日区域过拟合噪声的风险,否则会降低凌日深度估计。
    此外,将最大度数限制为首次整体信号评估所选的度数被证明是有用的。

  • 全局去趋势和窄波长范围估计:
    最后几天让我们在排行榜 (LB) 上超过 0.700 的精度和分数提升,在于首先在更宽的波长范围(每侧最多 100 个)上评估更可靠的去趋势多项式,并在后续优化中保留该多项式,仅针对初始范围使用 3 个参数:偏移量、幅度因子和研究的凌日深度。
    对于星体 0 和 1(CH4 峰值)周围的波长 183,也考虑了更窄的 N = 5 范围,而不是 N = 8。

拟合图示

3. 光谱后处理和 sigma 估计

此阶段涉及经验启发式和基于规则的调整。

光谱动态考虑

使我们能够达到 LB 0.65 的主要特征是根据光谱的动态分离光谱的后处理和 sigma 估计。

  • 对于低动态(75% 的凌日),应用平均预测线。
  • 对于高动态,保留原始光谱但进行调整。

我们最初基于 (Rp/Rs)² 比率的范围来确定动态。然后我们切换到与训练集标签的最佳相关性评估。在最终提交中,我们包含了具有随机化学成分的额外 Taurex 生成样本(私人 LB +0.005)。
为了提高分数,我们进行的另一个修改是稍微将平均线向原始光谱方向扭曲(与相关性程度成正比)。

偏移校正

随后我们通过在平均 Rp/Rs 比率的基础上稍微增加光谱值,达到了 LB 0.68。我们最初假设这是为了抵消临边昏暗 (limb darkening) 的影响,但这最有可能是为了抵消过渡开始和结束的代表性不足(检测步骤未能捕捉到行星开始进入或离开星体边缘时的早期斜率变化)。
[编辑:这确实可能与 @cnumber 在 此处 展示的前景添加有关]

光谱适应

应用 savgol 滤波器和偏移校正后,执行额外的调整:

  • 裁剪包络线,例如,光谱中间 -1. * std。
  • 除星体 0 外,将最后一部分替换为线性斜坡。

Sigma 估计

Sigma 随波长变化。它是经验构建的,考虑更深的凌日和远离均值的值具有更高的 sigma。根据识别的光谱动态(低/高)使用两组不同的参数。

4. 使用 PCA 进行最终光谱细化

一旦完成每颗行星的处理,就应用主成分分析 (PCA) 来细化光谱,去除残留噪声和伪影。此步骤按星体应用,保留前 5 个分量进行重新投影,将训练集上的 RMSE 从 4.3e-5 降低到 3.3e-5,并将 LB 分数提高 0.015。

PCA 图示

无效的方法:

  • 在曲线拟合期间直接建模入凌/出凌过渡。
  • 结合二次临边昏暗。
  • 使用全局去趋势多项式,这在某些光谱中引入了线性漂移。
  • 使用机器学习基于原始和最终光谱估计 sigma。
同比赛其他方案