378. University of Liverpool - Ion Switching | liverpool-ion-switching
非常感谢大家!!!!!
我发布解决方案的时间有点晚了,很抱歉。
我尝试了一些想法,但我想特别强调那个对我的分数提升最有效的想法。
我其他的想法肯定其他人也都在尝试。
我深受这个 notebook (https://www.kaggle.com/jt120lz/open-channel-clear-plot) 的影响。谢谢你,liuze!!!!
下图显示了按 openchannels 平均值替换后的信号。例如,Batch5 中的红线表示 Batch5 中 openchannels = 5 的信号平均值。
.png?generation=1590758184980770&alt=media)
如你所见,Batch4 和 Batch9 的行为明显与其他批次不同。
我修正了这种差异。这是对训练数据所做的唯一处理。
.png?generation=1590758231124352&alt=media)
组的定义如下。

问题在于测试数据。测试数据没有 open_channels 信息,所以无法使用上述方法。
然而,只要看一下 kde 图,需要做什么就一目了然了。比较测试数据(group4)与修正后的训练数据(group4)。

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

这就很好了。
你只需要处理以下代码!谢谢!!
# --- 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