如何使用匿名缩放数值预测器来处理 numer.ai 竞赛?

数据挖掘 机器学习 深度学习 交叉验证 预处理 比赛
2021-09-26 09:58:59

Numer.ai已经存在了一段时间,在网络上似乎只有很少的帖子或其他讨论。

系统不时更改,今天的设置如下:

  1. 训练 (N=96K) 和测试 (N=33K) 具有 21 个特征的数据,这些特征具有 [0,1] 中的连续值和二元目标。
  2. 数据是干净的(没有缺失值)并且每 2 周更新一次。您可以上传您的预测(在测试集上)并查看日志损失。部分测试数据甚至是实时数据,您可以通过良好的预测获得报酬。

我想讨论的内容:

由于这些特征是完全匿名的,我认为我们可以做的特征工程不多。所以我的方法非常机械:

  1. 受此启发,我使用分类算法过滤掉那些最适合我的测试数据的训练数据。
  2. 找出一些不错的预处理
  3. 训练好的分类算法
  4. 构建它们的集合(堆叠,..)。

具体问题:

关于第 1 步:您有使用这种方法的经验吗?假设我命令训练样本属于测试的概率(通常低于 0.5),然后我取最大的 K 概率。你会如何选择K?我尝试使用 15K .. 但主要是有一个小的训练数据集,以加快步骤 3 中的训练。

关于第 2 步:数据已经在 0,1 范围内。如果我应用任何(类似 PCA 的)线性变换,那么我会打破这个比例。如果你有这样的数字数据并且不知道这实际上是什么,你会在预处理中尝试什么。

PS:我知道因为 numer.ai 向讨论这个问题的人付费可以帮助我赚钱。但由于这是公开的,这将帮助那里的任何人......

PPS:今天的排行榜有一个有趣的模式:前两名的 logloss 为 0.64xx,然后排名第三的为 0.66xx,然后大多数预测变量达到 0.6888x。

因此,似乎有一个非常小的顶级领域和许多中等成功的人(包括我)。

1个回答

我已经研究过这种方法,我会通过尝试一个范围来选择 K,即 5k、10k、15k 等,然后探索最佳结果所在的范围,比如最好是 15k,然后我可能会做 13、14、 15、16、17 等等。

到目前为止,我还没有发现任何有效的预处理。

回复评论:

我尝试过使用 LogisticRegression、SVM、神经网络、随机森林、多项式 NB、额外树。使用 sklearn 中的实现的神经网络除外。神经网络的 PyBrain。