Classifying Gene Mutations
Classifying gene mutations from medical literature in a Kaggle challenge. TF-IDF, word embeddings, and several classifiers were tested. The word clouds did not help with interpreting the articles.
Entry in the Kaggle competition MSK Redefining Cancer Treatment (NIPS 2017 competition track): classify gene mutations by their clinical effect from the text of medical articles.
Approach
Natural language processing turns each article into features; several classifiers are compared on them.
- Features: TF-IDF; continuous bag of words; word embeddings from n-gram models; Bi-LSTM with a conditional random field layer.
- Classifiers: random forest, XGBoost.
- Stack: NumPy, pandas, scikit-learn, PyTorch, NLTK, Stanford CoreNLP.
Observations
- Word clouds of the TF-IDF output did not help to classify an article by eye.
- Stanford CoreNLP performed better in Java but was impractical to combine with the 4 GB data set in Python. NLTK handled lemmatization and stemming.
- PyTorch's documentation and its natural language processing examples made it the framework of choice.
Possible extensions
Transformer models and attention for long medical texts; custom stop words and domain-specific tokenization; model interpretability with SHAP or LIME; cross-validation and metrics beyond log loss, such as sensitivity, specificity and ROC AUC.