Home

Awesome

2017知乎看山杯机器学习挑战赛

Koala队伍解决方案

运行环境

基于Python2及PyTorch,需安装:

  1. PyTorch
  2. Numpy
  3. visdom
  4. fire

运行:

cd src; pip2 install -r requirements.txt
python2 -m visdom.server

数据分析

代码在data_analysis文件夹下

数据处理

代码在data_preprocess文件夹下,question_preprocess、label_preprocess、topic_preprocess,分别有对应的notebook和py版本。

单模型训练

代码在src文件夹下,需在其中新建snapshots文件夹,用于存储模型文件

在src下运行:

python2 main.py train --model=RNN --use_word=True --batch_size=256

上述命令后面都是可设置的参数

Boosting模型训练

对于单个模型来说,其所能实现的效果毕竟有限。通过分析数据,我们发现一个模型对于不同类别是具有偏向性的,即有的类可能会全部预测错,而另一个类则会全部预测对,这种类别之间的差异性对预测性能会有很大的影响 因此,我们针对这种偏差,借鉴Boost提升的思想,提出了一个新颖的做法,对结果进行修复性训练多层并累加。

在src下运行:

python2 main.py train --model=RNN --use_word=True --batch_size=256 --boost=True --base_layer=0

将base_layer依次改为1、2、3...,可逐层训练,训练的累加结果保存在与模型同目录

各模型结果

线下结果,线上可高2个多千分点

word结果

单模型:

Boosting模型:

char结果比word低约1个百分点,但融合后会涨3个千分点左右

测试

细节