Logo Lanfrica

benax-rw/RwandaNameGenderModel

Domain:

natural language processing

Record type:

model
Creator:
ben
Host:
A lightweight machine learning model for gender prediction based on Rwandan names using character-level n-gram features and logistic regression. # RwandaNameGenderModel **RwandaNameGenderModel** is a machine learning model that predicts gender based on Rwandan names β€” whether a **first name**, **surname**, or **both in any order**. It uses a character-level n-gram approach with a logistic regression classifier to provide fast, interpretable, and highly accurate predictions β€” achieving **96%+ accuracy** on both validation and test sets. --- ## 🧠 Summary - **Type:** Classic ML (Logistic Regression) - **Input:** Rwandan name (flexible: single or full name) - **Vectorization:** Character-level n-grams (2–3 chars) - **Framework:** scikit-learn - **Training Set:** 66,735 names (out of 83,419) - **Validation/Test Accuracy:** ~96.6% --- ## πŸ“ Project Structure ``` RwandaNameGenderModel/ β”œβ”€β”€ dataset/ β”‚ └── rwandan_names.csv β”œβ”€β”€ model/ β”‚ β”œβ”€β”€ logistic_model.joblib β”‚ └── vectorizer.joblib β”œβ”€β”€ logs/ β”‚ └── metrics_log.txt β”œβ”€β”€ train.py β”œβ”€β”€ inference.py β”œβ”€β”€ README.md └── requirements.txt ``` --- ## πŸš€ Quickstart ### 1. Install requirements ```bash pip install -r requirements.txt ``` ### 2. Train the model ```bash python train.py ``` ### 3. Predict gender from a name using script Run interactive inference with: ```bash python inference.py ``` ### 4. Predict gender from a name using Python code ```python from joblib import load model = load("model/logistic_model.joblib") vectorizer = load("model/vectorizer.joblib") def predict_gender(name): X = vectorizer.transform([name]) return model.predict(X)[0] # Flexible input: first name, surname, or both (any order) predict_gender("Gabriel") # Output: "male" predict_gender("Baziramwabo") # Output: "male" predict_gender("Baziramwabo Gabriel") # Output: "male" predict_gender("Gabriel Baziramwabo") # Output: "male" ``` --- ## πŸ“ˆ Performance | Dataset | Accuracy | Precision | Recall | F1-Score | |------------|----------|-----------|--------|----------| | Validation | 96.72% | 96.90% | 96.53% | 96.72% | | Test | 96 …