本例是对CCF2015 垃圾邮件过滤竞赛的求解。
Linux 或 Mac OS均可。由于使用了一点shell脚本,所以对Windows不支持。但需要时,可以修改。
-
安装Python 2.7.6(2.7.11亦可), https://www.python.org/downloads/
-
安装结巴分词, https://github.com/fxsjy/jieba
-
安装 boost program-options (Vowpal Wabbit用到)
对于Redhat系Linux(CentOS)
yum install boost-devel
对Ubuntu/Debian/Mint
apt-get install libboost-program-options-dev
-
安装Vowpal Wabbit, https://github.com/JohnLangford/vowpal_wabbit
-
设置vw可执行程序的环境变量 vw通常在vowpal wabbit项目的vowpalwabbit目录下。例如:
export VW=/root/work/dl/vowpal_wabbit.8.1.1/vowpalwabbit/vw
所有脚本都在项目的根目录下运行。
如果已经有数据,将测试集和训练集拷贝trian.txt, test.txt拷贝到data目录下。ln -s 建立符号链接亦可。 如果没有,可从此链接下载, 密码: rx93
训练集
python code/convert_feats_seg.py data/train.txt data/train.seg.cnt.vw
测试集,需要加开关 -t
python code/convert_feats_seg.py data/test.txt data/test.seg.cnt.vw -t
python code/split_folds.py data/train.seg.cnt.vw -n 5 --seed 12345
编辑 code/grid_search_vw.py文件。可修改的参数有:
- ngram
- skips
- learning_rate: 学习率
- l1: L1调整
- l2: L2调整
- passes:
- decay_learning_rate
- threshold: 预测概率转换为label(0/1)的阈值
目前代码中保留的,都是最优参数组合。可以任意修改成其它参数,进行试验。
修改shell中的vowpal wabbit参数,执行shell并提交。
./mksub_vw.sh
- 竞赛报告书.pdf
- 技术方案说明.pdf
直接在github网页中打开文档,其中的表格显示不出来。建议下载后阅读。