Hybrid Machine Learning + Multi-Modal Deep Neural Network (MM-DNN)
This project predicts whether a drug can treat a specific disease using chemical
structure features, protein targets, and disease identity.
We evaluate traditional machine learning baselines and propose a multi-modal
deep neural network (MM-DNN) that achieves the best performance.
Drug repositioning aims to find new therapeutic uses for existing drugs, offering a faster and more cost-effective alternative to traditional drug development.
This project includes:
- Dataset construction with negative sampling
- Feature engineering for drugs and diseases
- Baseline ML models (LR, RF, XGBoost)
- A Two-Tower MM-DNN for nonlinear drug–disease interaction learning
Source: https://www.kaggle.com/datasets/ariasha/drug-repositioning
| File | Description |
|---|---|
drugsInfo.csv |
Drug SMILES, targets, metadata |
diseasesInfo.csv |
Disease names and categories |
mapping.csv |
Known drug–disease associations |
Dataset size:
- 1410 drugs
- 1573 diseases
- 42,200 positive associations
- Input: Drug Features (Chemical Structure) + Disease Features (ID/Embedding)
- Output:
1: Associated (Effective)0: Not Associated
- Morgan Fingerprints (1024 bits) from SMILES
- Protein Target Multi-Hot Encoding
- Machine Learning models: One-Hot
- MM-DNN: Embedding Layer (learns semantic disease vectors)
The dataset contains only positive associations.
To create a balanced dataset:
- For each drug, sample diseases not associated with it
- Maintain a 1:1 ratio of positive/negative samples
- Prevents trivial predictions (e.g., predicting all 1's)
- Logistic Regression
- Random Forest
- XGBoost
Two-Tower neural architecture:
- Drug Tower: Dense layers on fingerprint + target features
- Disease Tower: Embedding layer
- Fusion Layer: Concatenate + Dense for final prediction
| Model | AUC |
|---|---|
| Logistic Regression | 0.8396 |
| Random Forest | 0.8273 |
| XGBoost | 0.7350 — Lower (struggles with sparse FP) |
| MM-DNN (Ours) | 0.8508 — Best |



