返回列表

22th place solution

378. University of Liverpool - Ion Switching | liverpool-ion-switching

开始: 2020-02-24 结束: 2020-05-25 药物研发 数据算法赛
第22名解决方案

第22名解决方案

作者: fkubota
排名: 第22名

我的第一枚银牌!

而且我成为了 Kaggle Expert!

非常感谢大家!!!!!

我发布解决方案的时间有点晚了,很抱歉。

我尝试了一些想法,但我想特别强调那个对我的分数提升最有效的想法。
我其他的想法肯定其他人也都在尝试。

我深受这个 notebook (https://www.kaggle.com/jt120lz/open-channel-clear-plot) 的影响。谢谢你,liuze!!!!

训练数据

下图显示了按 openchannels 平均值替换后的信号。例如,Batch5 中的红线表示 Batch5 中 openchannels = 5 的信号平均值。

训练数据图1

如你所见,Batch4 和 Batch9 的行为明显与其他批次不同。
我修正了这种差异。这是对训练数据所做的唯一处理。

训练数据图2

测试数据

组的定义如下。

测试数据分组

问题在于测试数据。测试数据没有 open_channels 信息,所以无法使用上述方法。

然而,只要看一下 kde 图,需要做什么就一目了然了。比较测试数据(group4)与修正后的训练数据(group4)。

KDE图对比

很明显我们需要做点什么。只需修正上述的错位。

修正后的图

这就很好了。

代码

你只需要处理以下代码!谢谢!!

# --- train ---
off_set_4 = 0.952472 - (-1.766044)
off_set_9 = 0.952472 - (-1.770441)
# batch4
idxs = df_tr['batch'] == 4
df_tr['signal'][idxs] = df_tr['signal'].values + off_set_4
# batch9
idxs = df_tr['batch'] == 9
df_tr['signal'][idxs] = df_tr['signal'].values + off_set_9

# --- test ---
off_set_test = 2.750
df_te['signal'] = df_te['signal'].values
idxs = df_te['group'] == 4
df_te['signal'][idxs] = df_te['signal'][idxs].values + off_set_test
同比赛其他方案