Disclaimer: Fate and love are ultimately determined by God. This project is educational and explores how AI can analyze patterns of compatibility and relationship dynamics. It is not a verdict on human relationships and must be used responsibly.
This repository demonstrates the AI development workflow applied to a creative real-world problem: predicting the likelihood that a couple will marry based on quantified relationship features. It follows the CRISP-DM framework and includes ethical considerations, model evaluation, and reproducible notebooks.
ai-marriage-likelihood/
├── data/
│ ├── raw/
│ └── processed/ # marriage_data.csv
├── models/ # saved model artifact (marriage_model.pkl)
├── notebooks/
│ ├── 00-generate-data.ipynb
│ ├── 01-data-exploration.ipynb
│ ├── 02-model-training.ipynb
│ └── 03-evaluation.ipynb
├── src/
│ ├── data/preprocess.py
│ ├── models/train_model.py
│ ├── eval/evaluate.py
│ └── app/app.py
├── reports/
│ └── final_report.md
├── requirements.txt
├── Dockerfile
└── README.md
git clone https://github.com/<your-username>/ai-marriage-likelihood.git
cd ai-marriage-likelihood
python -m venv venv
# Activate:
# Windows (Git Bash): source venv/Scripts/activate
# Windows (PowerShell): .
env\Scripts\Activate.ps1
# macOS / Linux: source venv/bin/activate
pip install -r requirements.txt- Generate synthetic data: open and run
notebooks/00-generate-data.ipynb. - Explore data: run
notebooks/01-data-exploration.ipynb. - Train model: run
notebooks/02-model-training.ipynborpython src/models/train_model.py. - Evaluate: run
notebooks/03-evaluation.ipynborpython src/eval/evaluate.py. - Sample prediction:
python src/app/app.py(loadsmodels/marriage_model.pkl).
Example classification results from a final test run (see notebooks/03-evaluation):
accuracy: 0.52
precision (low): 0.50, recall (low): 0.90
precision (high): 0.62, recall (high): 0.16
Interpretation: model is good at detecting couples unlikely to marry but weak at identifying true positives; further data balancing and richer features are recommended.
- Use only anonymized, consensual data.
- Clearly explain limitations and uncertainties to users.
- Avoid making life-changing decisions solely based on model outputs.
- Include opt-out and human review mechanisms in any future product.
Bikila Keneni — AI for Software Engineering (2025)