技巧1:快速读取数据
现在很多Kaggle比赛,数据集都比较大,大于3GB是非常常见的事情。在读取数据集时,可能会遇到一些困难。
你可以尝试以下的方法加速数据读取:
在
pandas
读取时手动设置变量类型使用
cudf
代替pandas
完成读取转为
parquet
或feather
再进行读取
技巧2:扩充数据集
当比赛数据集非常小时,外部数据集就非常关键了。此时可以寻找相似的外部数据集来完成预训练。
例如对于QA任务,可以选择以下的数据完成预训练。
https://rajpurkar.github.io/SQuAD-explorer/
http://nlpprogress.com/english/question_answering.html
当然也可以从伪标签
和数据扩增
和回译
来增加数据样本。
技巧3:深入文本数据
文本分析
EDA
有助于更好地理解数据。在开始开发机器学习模型之前,应该阅读/做大量的数据文本,这有助于特征工程和数据清洗。
文本长度规律
语种规律
标点符号规律
特殊字符规律
文本清洗
文本清理是NLP赛题中的重要组成部分。文本数据总是需要一些预处理和清理,然后我们才能用合适的形式表示它。
Remove HTML tags
Remove extra whitespaces
Convert accented characters to ASCII characters
Expand contractions
Remove special characters
Lowercase all texts
Convert number words to numeric form
Remove numbers
Remove stopwords
Lemmatization
技巧4:文本表示
文本表示方法影响文本的表示形式,也决定了模型的精度。基础的词向量包括:
Pretrained
Glove
vectorsPretrained
fasttext
vectorsPretrained
word2vec
vectorsPretrained
Paragram
vectorsUniversal Sentence Encoder
也可以考虑组合上述词向量以减少OOV的情况,当然同一个单词也可以拼接或平均多种词向量。
也可以直接考虑直接使用高阶嵌入方法:
Bert
Roberta Bert
XLNET
技巧5:模型构建
损失函数
二分类
Binary cross-entropy
多分类
Categorical cross-entropy
二分类
Focal loss
多分类
Weighted focal loss
多分类
Weighted kappa
优化器
SGD
RMSprop
Adagrad
Adam
Adam with warmup
Callback
Model checkpoint
Learning rate scheduler
Early Stopping
往期精彩回顾
适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码