Instructions to use S12-24/bias-in-bios-profession-classifier with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Scikit-learn
How to use S12-24/bias-in-bios-profession-classifier with Scikit-learn:
from huggingface_hub import hf_hub_download from skops.io import load # make sure model file is in skops format # if model is a pickle file, make sure it's from a source you trust model = load(hf_hub_download("S12-24/bias-in-bios-profession-classifier", "model.skops")) - Notebooks
- Google Colab
- Kaggle
Model description
Multinomial classifier predicting a person's profession (28 classes) from the free-text hard_text biography in the LabHC/bias_in_bios dataset (derived from De-Arteaga et al., Bias in Bios, FAccT 2019, arXiv:1901.09451).
This is an educational / research demo project studying gender bias in automated resume screening. It is NOT intended, tested, or suitable for real hiring or HR decisions.
Intended uses & limitations
Intended use: demonstrating and studying gender bias in text-based occupation classifiers. Out of scope: any real candidate screening, resume filtering, or employment decision. See the 'Bias, Risks and Limitations' section below for the full fairness audit.
Training Procedure
TF-IDF vectorizer + logistic_regression (scikit-learn), tuned with randomized search over clf__C (cv=3, scoring=f1_macro).
Best hyperparameters: {'clf__C': 10.0}.
Hyperparameters
Click to expand
| Hyperparameter | Value |
|---|---|
| memory | |
| steps | [('tfidf', TfidfVectorizer(max_df=0.9, max_features=30000, min_df=2, ngram_range=(1, 2), |
| sublinear_tf=True)), ('clf', LogisticRegression(C=10.0, max_iter=2000, random_state=42))] | |
| verbose | False |
| tfidf | TfidfVectorizer(max_df=0.9, max_features=30000, min_df=2, ngram_range=(1, 2), |
| sublinear_tf=True) | |
| clf | LogisticRegression(C=10.0, max_iter=2000, random_state=42) |
| tfidf__analyzer | word |
| tfidf__binary | False |
| tfidf__decode_error | strict |
| tfidf__dtype | <class 'numpy.float64'> |
| tfidf__encoding | utf-8 |
| tfidf__input | content |
| tfidf__lowercase | True |
| tfidf__max_df | 0.9 |
| tfidf__max_features | 30000 |
| tfidf__min_df | 2 |
| tfidf__ngram_range | (1, 2) |
| tfidf__norm | l2 |
| tfidf__preprocessor | |
| tfidf__smooth_idf | True |
| tfidf__stop_words | |
| tfidf__strip_accents | |
| tfidf__sublinear_tf | True |
| tfidf__token_pattern | (?u)\b\w\w+\b |
| tfidf__tokenizer | |
| tfidf__use_idf | True |
| tfidf__vocabulary | |
| clf__C | 10.0 |
| clf__class_weight | |
| clf__dual | False |
| clf__fit_intercept | True |
| clf__intercept_scaling | 1 |
| clf__l1_ratio | |
| clf__max_iter | 2000 |
| clf__multi_class | deprecated |
| clf__n_jobs | |
| clf__penalty | l2 |
| clf__random_state | 42 |
| clf__solver | lbfgs |
| clf__tol | 0.0001 |
| clf__verbose | 0 |
| clf__warm_start | False |
Model Plot
Pipeline(steps=[('tfidf',TfidfVectorizer(max_df=0.9, max_features=30000, min_df=2,ngram_range=(1, 2), sublinear_tf=True)),('clf',LogisticRegression(C=10.0, max_iter=2000, random_state=42))])In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
Pipeline(steps=[('tfidf',TfidfVectorizer(max_df=0.9, max_features=30000, min_df=2,ngram_range=(1, 2), sublinear_tf=True)),('clf',LogisticRegression(C=10.0, max_iter=2000, random_state=42))])TfidfVectorizer(max_df=0.9, max_features=30000, min_df=2, ngram_range=(1, 2),sublinear_tf=True)
LogisticRegression(C=10.0, max_iter=2000, random_state=42)
Evaluation Results
Metrics computed on the held-out test split of LabHC/bias_in_bios.
| Metric | Value |
|---|---|
| accuracy | 0.7838 |
| f1_macro | 0.6818 |
| n_samples | 9999 |
How to Get Started with the Model
[More Information Needed]
Model Card Authors
This model card is written by following authors:
[More Information Needed]
Model Card Contact
You can contact the model card authors through following channels: [More Information Needed]
Citation
Below you can find information related to citation.
BibTeX:
[More Information Needed]
Bias, Risks, and Limitations
This model was audited for gender bias with fairlearn, using gender as the sensitive feature and the True Positive Rate (TPR) gap β the difference in recall between men and women for a given predicted profession β as the primary fairness metric, following the methodology of De-Arteaga et al., Bias in Bios (FAccT 2019, arXiv:1901.09451).
- Mean absolute TPR gap across all professions: 0.1295
- Largest TPR gap: 0.4056, for profession model
- Professions with the most gender-imbalanced training data: dietitian, rapper, nurse, dj, surgeon, paralegal, software_engineer, composer
See fairness_report.json in this repo for the full per-profession breakdown, and the project README's Bias Dashboard for a visual comparison.
Disclaimer: this is a pedagogical / research project. Do not use this model, or its predictions, to make real hiring, screening, or employment decisions.
Accuracy
Accuracy / recall by gender
fairlearn MetricFrame computed on the test split with gender as the sensitive feature.
Click to expand
| accuracy | recall_macro |
|---|---|
| 0.00626503 | 0.0105893 |
| 0.787156 | 0.594779 |
| 0.780891 | 0.584189 |
| 0.992041 | 0.982196 |
- Downloads last month
- 10