arjun10g commited on
Commit
fe46112
·
verified ·
1 Parent(s): 2bcf1e7

v1 :: seniority classifier (eval={'eval_accuracy': 0.8897, 'eval_f1_macro': 0.8311, 'eval_f1_weighted': 0.8925, 'eval_f1_macro_ci95': [0.7805, 0.8698]})

Browse files
Files changed (1) hide show
  1. README.md +25 -0
README.md CHANGED
@@ -123,6 +123,31 @@ clf = SeniorityClassifier.load_from_hub()
123
  clf.predict(["Senior ML Engineer at Stripe"])
124
  ```
125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  ## Citation
127
 
128
  > Ghumman, A. (2026). _na-tech-jobs seniority classifier v1._
 
123
  clf.predict(["Senior ML Engineer at Stripe"])
124
  ```
125
 
126
+
127
+
128
+ ## Independent-labeler eval (preliminary, pre-human-review)
129
+
130
+ To check the classifier didn't just memorize the regex, we sampled 230
131
+ diverse rows and had Claude (an independent labeler) propose labels in
132
+ parallel. The classifier was scored against those proposals on the
133
+ subset of rows where Claude's label is one the classifier was trained
134
+ to predict (`117/230` rows
135
+ — the rest were the regex-default labels we drop from training,
136
+ mostly `mid`).
137
+
138
+ | Metric | All in-vocab proposals | LLM high-confidence subset |
139
+ |---|---|---|
140
+ | n | 117 | 96 |
141
+ | accuracy | 0.7949 | 0.9062 |
142
+ | f1_macro | **0.7975** (95% CI [0.7233, 0.8612]) | **0.8995** |
143
+
144
+ These numbers come from a *different labeler* than the training data, so
145
+ they're a stronger signal of generalization than the regex-agreement
146
+ metric above. Caveats: Claude's labels are themselves not gold, and the
147
+ in-vocab filter excludes the regex-default rows. A hand-reviewed gold set
148
+ is the v1.1 task — the LLM-proposed labels are the starting point for that
149
+ review (`scripts/label_classifier --review`).
150
+
151
  ## Citation
152
 
153
  > Ghumman, A. (2026). _na-tech-jobs seniority classifier v1._