|
Download presentation/reports/error_analysis_test3.md from BuildITSystems/phishing-detector-encoder: direct link, hf CLI and curl.
- Browser
- Download file 18.6 kB
-
https://huggingface.co/BuildITSystems/phishing-detector-encoder/resolve/main/presentation/reports/error_analysis_test3.md
- Command line
-
hf download hf://BuildITSystems/phishing-detector-encoder/presentation/reports/error_analysis_test3.md
-
curl -L -o error_analysis_test3.md https://huggingface.co/BuildITSystems/phishing-detector-encoder/resolve/main/presentation/reports/error_analysis_test3.md
18.6 kB
Error analysis β test3 split (three-way holdout), run ft-focal (2026-10-09 10:46)
All quoted emails are rows of public corpora (source Assassin, CEAS-08, Enron, Nazario, Nigerian_Fraud, TREC-07); nothing here is private mail. Threshold 0.5. Binary positive class = Unwanted (phishing or spam), P(unwanted) = P(phishing) + P(spam).
Counts (binary roll-up)
- rows 3,220 (positives 1,221, 37.9%); label3 counts legit 1,999, phish 521, spam 700
- recall (unwanted) 0.9836 β 20 missed unwanted emails (false negatives) out of 1,221
- precision 0.9893 β 13 false alarms out of 1,214 flagged
- F1 0.9864, accuracy 0.9898, specificity 0.9935
- ROC-AUC 0.9993, PR-AUC 0.9989; recall at 1% FPR 0.9869, at 0.1% FPR 0.8788
- credential-lure slice: 275 rows, 268 positive (97.5% label purity: slice precision cannot exceed what the phrase list selects), recall 1.0000, precision 1.0000, 0 missed
Top-25 false negatives (missed unwanted mail, most confident first)
| # | doc_id | P(unwanted) | tokens (full) | source | label_set | preview (subject β body, 160 chars) |
|---|---|---|---|---|---|---|
| 1 | primary:191966 |
0.0224 | 86 | Enron | spam | re : saturday . here new and β good day : i tried to call your 3 three time but your phone is not available . i think you did a mistake during filling the form ... |
| 2 | primary:148887 |
0.0467 | 1097 | Enron | spam | southern california demographic analysis workshop announcement ( january charset = windows - 1252 " > β analyzing southern california communities : demographic ... |
| 3 | aura:Nazario:000097 |
0.1782 | 39 | Nazario | phish | Oil Payment Approval β Find the attached document via Google secure to view closing statement. All parties have completed Documents. please sign these at your e... |
| 4 | primary:010013 |
0.2112 | 135 | Enron | spam | new birthday calendar β hi i ' m setting up a birthday calendar and need your help . just click the link below and enter your birthday details . ( it ' s quick ... |
| 5 | primary:007176 |
0.2300 | 281 | Assassin | spam | TOMORROW -- Password: Soleil -- TV Casting β Tomorrow will be huge. Password: Soleil has become the premiere Thursday night in New York - with a chill after-wor... |
| 6 | aura:Nazario:000643 |
0.2584 | 368 | Nazario | phish | Phishing Email Corpus β Good Morning, Jose, My name is Michael Kotson, and I am a Cybersecurity researcher at MIT Lincoln Laboratory. I am developing a lecture ... |
| 7 | primary:181246 |
0.2858 | 1051 | Assassin | spam | [ILUG] (no subject) β Suppliers of Computers, Printers, etc. & Consumables Central Data Supplies 24, Middleton Road, Banbury, Oxon, OX16 4QJ. Tel: 01295 271666 ... |
| 8 | primary:095405 |
0.2967 | 40 | Enron | spam | pocket micro scope id : sxo 683 β re : ppql 308243023 not interested , please let us know : powerlinepromo @ yahoo . com |
| 9 | primary:014300 |
0.3203 | 301 | Enron | spam | cecil county networking lunch β networking lunch chesapeake bay golf club in north east wednesday , november 17 th 11 : 15 am smallcompanies . com in conjunctio... |
| 10 | primary:001939 |
0.3348 | 1153 | Assassin | spam | Invite: Content Management Summit, Oct. 10th New York City β 
| # | doc_id | P(unwanted) | tokens (full) | source | label_set | preview (subject β body, 160 chars) |
|---|---|---|---|---|---|---|
| 1 | primary:144048 |
0.9853 | 46 | CEAS-08 | legit | Whiskas Scratching Post β HTML Message - =?windows-1252?B?V2hpc2thcyBTY3JhdGNoaW5nIFBvc3QA?= |
| 2 | primary:199386 |
0.9471 | 2206 | Assassin | legit | Back to School with Buy4Now β This is a multi-part message in MIME format. ------=_NextPart_000_22A2C_01C23F09.09760420 Content-Type: text/plain; charset="iso-8... |
| 3 | primary:091801 |
0.9436 | 66 | CEAS-08 | legit | Lots Of SPAM β Hi List, i have posted my RAW email in http://pastebin.ca/918849 , i'm receiving 1000 to 4000 per day this king of mesages. SA also skipping this... |
| 4 | primary:152763 |
0.8427 | 1228 | CEAS-08 | legit | SAVE 30% on Best Recipe Cookbooks β Untitled Document We don't want you to miss out on our e-mail offers! Please add our e-mail address, arfldpykmjrzc@americast... |
| 5 | primary:165228 |
0.8246 | 4917 | Assassin | legit | United We Fall? β This is a multi-part message in MIME format... ------------=_1029244856-11739-4 Content-Type: text/plain; charset="iso-8859-1" Content-Disposi... |
| 6 | primary:041713 |
0.7668 | 340 | TREC-07 | legit | Electric Transmission Week complimentary trial β 1105_ETW_Trial View this message as a Web page. FREE Trial Offer You're invited to receive a FREE trial subscri... |
| 7 | primary:103927 |
0.7592 | 1587 | CEAS-08 | legit | FREE Shipping on "America's Best Lost Recipes" Cookbook - Plus Free OXO(R) Tongs β Untitled Document We don't want you to miss out on our e-mail offers! Please ... |
| 8 | primary:055965 |
0.7247 | 5197 | Assassin | legit | Brother, Can You Spare a Jet? β This is a multi-part message in MIME format... ------------=_1029157891-23956-4 Content-Type: text/plain; charset="iso-8859-1" C... |
| 9 | primary:170237 |
0.6660 | 88 | CEAS-08 | legit | The jet set β Well, it appears you have all taken an idea and run with it. My point was that "Knocked Up" appeared quite the good film, and the Williams one so ... |
| 10 | primary:117398 |
0.6510 | 5959 | Assassin | legit | AOL Keyword: Fraud Probe β This is a multi-part message in MIME format... ------------=_1033046883-23957-4 Content-Type: text/plain; charset="iso-8859-1" Conten... |
| 11 | primary:168120 |
0.5796 | 268 | TREC-07 | legit | Please confirm your request to join Deficiv β Hello deficient@speedy.uwaterloo.ca, We have received your request to join the Deficiv group hosted by Yahoo! Grou... |
| 12 | primary:057514 |
0.5173 | 809 | CEAS-08 | legit | WIN a $6,000 Cook Islands getaway β HotelClub Newsletter Dear Tony, Subscribe to any free NEWS.com.au newsletter for your chance to WIN a $6,000 Cook Islands ge... |
| 13 | primary:021911 |
0.5051 | 875 | CEAS-08 | legit | It's here. Dell's first tablet PC. β Dell would like to introduce our first tablet PC, the Latitude XT. Part of the trusted Latitude line, the XT gives you all ... |
Three-way (legitimate / phishing / spam)
Decision rule: unwanted iff P(phishing)+P(spam) >= threshold, then kind = argmax(P(phishing), P(spam)); the 3x3 matrix therefore collapses exactly onto the binary confusion matrix. argmax-of-3 reported alongside.
Rows with a full label: 3,220; unwanted-but-unsplit rows (binary roll-up only): 0.
| true \ predicted | Legitimate | Phishing | Spam |
|---|---|---|---|
| Legitimate | 1,986 | 1 | 12 |
| Phishing | 4 | 514 | 3 |
| Spam | 16 | 1 | 683 |
- accuracy 0.9885, macro-F1 0.9867 (over 3 classes; over the 3 present: 0.9867); argmax-of-3 rule: macro-F1 0.9858, 6 rows differ between the rules
| class | precision | recall | F1 | support |
|---|---|---|---|---|
| Legitimate | 0.9900 | 0.9935 | 0.9918 | 1,999 |
| Phishing | 0.9961 | 0.9866 | 0.9913 | 521 |
| Spam | 0.9785 | 0.9757 | 0.9771 | 700 |
Phishing vs spam on the 1,221 true unwanted rows
Kind decision alone (given the row is unwanted, argmax(P(phishing), P(spam))): accuracy 0.9959; phishing read as spam 4, spam read as phishing 1.
| true \ predicted (roll-up rule) | Legitimate (missed) | Phishing | Spam |
|---|---|---|---|
| Phishing | 4 | 514 | 3 |
| Spam | 16 | 1 | 683 |
Per source (three-way rows)
| source | n | Legitimate | Phishing | Spam | accuracy | macro-F1 (present classes) |
|---|---|---|---|---|---|---|
| Assassin | 236 | 164 | 0 | 72 | 0.9534 | 0.9458 |
| CEAS-08 | 736 | 736 | 0 | 0 | 0.9905 | 0.9952 |
| Enron | 628 | 0 | 0 | 628 | 0.9841 | 0.9920 |
| Nazario | 222 | 0 | 222 | 0 | 0.9865 | 0.9932 |
| Nigerian_Fraud | 299 | 0 | 299 | 0 | 0.9866 | 0.9933 |
| TREC-07 | 1,099 | 1,099 | 0 | 0 | 0.9982 | 0.9991 |
Top-25 phishing -> spam confusions (3 total, most confident first)
| # | doc_id | P(legit) | P(phish) | P(spam) | tokens (full) | source | preview (subject β body, 160 chars) |
|---|---|---|---|---|---|---|---|
| 1 | aura:Nigerian_Fraud:001698 |
0.0949 | 0.0320 | 0.8730 | 2061 | Nigerian_Fraud | " Please add me to your mailing list. " β "How to turn 3 into 10,000" This is not a get rich quick scheme, but with a little effort will make a nice little retu... |
| 2 | aura:Nigerian_Fraud:000337 |
0.1620 | 0.3029 | 0.5352 | 330 | Nigerian_Fraud | Dddddddd R. Rrrrr Message from Vasil Nanchev. β Hi, This is Vasil Nanchev. I just wanted to inform you about something which is really time sensitive. For the f... |
| 3 | aura:Nigerian_Fraud:000824 |
0.1349 | 0.3997 | 0.4654 | 1089 | Nigerian_Fraud | Seeking joint-venture partners for ERW oil casing project β Dear Sir or Madam: We are keenly interested in setting up a new factory to produce 120,000 ERW oil c... |
Top-25 spam -> phishing confusions (1 total, most confident first)
| # | doc_id | P(legit) | P(phish) | P(spam) | tokens (full) | source | preview (subject β body, 160 chars) |
|---|---|---|---|---|---|---|---|
| 1 | primary:077835 |
0.0080 | 0.8669 | 0.1251 | 1179 | Assassin | URGENT BUSINESS ASSISTANCE. β --0-1118764524-1030968705=:44128 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit KEVIN GEORGE ABIDJAN... |
Tokens over-represented in phishing read as spam vs phishing read correctly
| token | share of phish->spam docs | share of phish->phish docs | ratio |
|---|---|---|---|
join |
1.000 | 0.019 | 49.00 |
could |
1.000 | 0.076 | 13.03 |
www |
1.000 | 0.150 | 6.64 |
new |
1.000 | 0.160 | 6.24 |
http |
1.000 | 0.193 | 5.17 |
years |
1.000 | 0.196 | 5.07 |
get |
1.000 | 0.202 | 4.92 |
about |
1.000 | 0.239 | 4.17 |
after |
1.000 | 0.278 | 3.59 |
who |
1.000 | 0.317 | 3.15 |
into |
1.000 | 0.323 | 3.09 |
com |
1.000 | 0.339 | 2.95 |
which |
1.000 | 0.362 | 2.76 |
now |
1.000 | 0.379 | 2.63 |
can |
1.000 | 0.467 | 2.14 |
are |
1.000 | 0.562 | 1.78 |
from |
1.000 | 0.644 | 1.55 |
will |
1.000 | 0.714 | 1.40 |
for |
1.000 | 0.800 | 1.25 |
this |
1.000 | 0.815 | 1.23 |
Tokens over-represented in spam read as phishing vs spam read correctly
(too few rows in one of the groups)
Predicted kind of the flagged rows (informational β includes the unsplit rows, which have no kind label)
| group | n | predicted Phishing | predicted Spam |
|---|---|---|---|
| true positives flagged | 1,201 | 515 | 686 |
| false positives flagged | 13 | 1 | 12 |
| missed positives (kind the model would have given) | 20 | 3 | 17 |
Patterns (simple lexical statistics, not a model explanation)
Tokens over-represented in false negatives vs true positives (document frequency, smoothed ratio)
| token | share of FN docs | share of TP docs | ratio |
|---|---|---|---|
invite |
0.250 | 0.002 | 128.94 |
cut |
0.150 | 0.002 | 82.05 |
practical |
0.150 | 0.002 | 82.05 |
networking |
0.200 | 0.002 | 75.36 |
audience |
0.150 | 0.003 | 45.59 |
oct |
0.150 | 0.003 | 45.59 |
innovative |
0.150 | 0.003 | 45.59 |
event |
0.200 | 0.005 | 40.58 |
angeles |
0.150 | 0.004 | 37.30 |
anyway |
0.150 | 0.004 | 37.30 |
feature |
0.150 | 0.005 | 31.56 |
york |
0.150 | 0.005 | 31.56 |
subscription |
0.200 | 0.007 | 27.76 |
technologies |
0.150 | 0.006 | 27.35 |
entertainment |
0.150 | 0.007 | 24.13 |
staff |
0.200 | 0.011 | 19.54 |
association |
0.150 | 0.008 | 19.54 |
markets |
0.150 | 0.009 | 17.84 |
hosting |
0.150 | 0.009 | 17.84 |
mailman |
0.150 | 0.009 | 17.84 |
Tokens over-represented in false positives vs true negatives
| token | share of FP docs | share of TN docs | ratio |
|---|---|---|---|
outlets |
0.231 | 0.001 | 206.01 |
zzz-unspun |
0.231 | 0.001 | 206.01 |
czzz-unspun |
0.231 | 0.001 | 206.01 |
cook |
0.231 | 0.001 | 206.01 |
full-color |
0.385 | 0.002 | 179.85 |
muehlbauer |
0.231 | 0.002 | 147.15 |
vanderkolk |
0.231 | 0.002 | 147.15 |
eletra |
0.231 | 0.002 | 147.15 |
loripatel |
0.231 | 0.002 | 147.15 |
copyedited |
0.231 | 0.002 | 147.15 |
jimduffy86 |
0.231 | 0.002 | 147.15 |
asbrand |
0.231 | 0.002 | 147.15 |
patel |
0.231 | 0.002 | 147.15 |
authoritatively |
0.231 | 0.002 | 147.15 |
four-week |
0.231 | 0.002 | 147.15 |
duffy |
0.231 | 0.002 | 147.15 |
mediaunspun |
0.231 | 0.002 | 147.15 |
savviest |
0.231 | 0.002 | 147.15 |
dasbrand |
0.231 | 0.002 | 147.15 |
sendashtml |
0.231 | 0.002 | 147.15 |
Composition of the error groups (share of rows)
| group | n | mailing-list / digest | HTML-heavy | very short (<20 content tokens) | truncated (>512) | lure phrase |
|---|---|---|---|---|---|---|
| FP | 13 | 46.2% | 0.0% | 0.0% | 61.5% | 0.0% |
| TN | 1,986 | 56.3% | 0.0% | 0.0% | 38.3% | 0.4% |
| FN | 20 | 30.0% | 0.0% | 10.0% | 35.0% | 0.0% |
| TP | 1,201 | 8.3% | 0.0% | 0.6% | 26.6% | 22.3% |
Length confound (RUN_LOG entry 2)
| group | n | mean tokens (full) | mean tokens fed | median (full) | % truncated |
|---|---|---|---|---|---|
| TP | 1,201 | 978.0 | 279.8 | 243 | 26.6 |
| TN | 1,986 | 732.6 | 358.4 | 392 | 38.3 |
| FP | 13 | 1814.3 | 377.2 | 875 | 61.5 |
| FN | 20 | 1807.8 | 284.1 | 291 | 35.0 |
| CORRECT | 3,187 | 825.1 | 328.8 | 339 | 33.9 |
| WRONG | 33 | 1810.4 | 320.8 | 368 | 45.5 |
| all legitimate | 1,999 | 739.7 | 358.6 | 393 | 38.5 |
| all unwanted | 1,221 | 991.6 | 279.9 | 243 | 26.7 |
| all label3=phish | 521 | 1349.4 | 355.1 | 412 | 39.9 |
| all label3=spam | 700 | 725.3 | 223.9 | 159 | 16.9 |
| length bucket (full tokens) | n | positive rate | recall | FPR | accuracy |
|---|---|---|---|---|---|
| <=64 | 129 | 0.767 | 0.9495 | 0.0333 | 0.9535 |
| 65-128 | 427 | 0.590 | 0.9921 | 0.0114 | 0.9906 |
| 129-256 | 699 | 0.395 | 0.9928 | 0.0000 | 0.9971 |
| 257-512 | 870 | 0.308 | 0.9851 | 0.0033 | 0.9931 |
| >512 | 1,095 | 0.298 | 0.9785 | 0.0104 | 0.9863 |
Summary
- The classifier catches 98.36% of unwanted mail (phishing or spam) at threshold 0.5 (20 of 1,221 missed) while flagging 0.65% of legitimate mail (13 false alarms). Recall is the headline because a missed phish is the costly error for a small-business inbox.
- Holding false alarms to 1 in 100 legitimate emails keeps recall at 98.69% (threshold 0.434, flag when p >= threshold); at 1 in 1,000 it is 87.88%. The best-F1 threshold is 0.475 (F1 0.9877).
- Three-way: macro-F1 0.9867 over 3,220 rows with a full label (recall legitimate 99.3%, phishing 98.7%, spam 97.6%). Given that an email is unwanted, the model tells phishing from spam 99.6% of the time (4 phishing read as spam, 1 spam read as phishing). The phishing/spam labels follow corpus provenance (Nazario + Nigerian fraud + synthetic lures = phishing; SpamAssassin + Enron-Spam spam folders = spam), so part of this confusion is corpus style, not lure content.
- On the 275-row credential-lure slice (37 documented phrases, 97.5% of its rows are labelled positive) recall is 100.00% with precision 100.00%: the highest-cost phish are caught at least as well as the average.
- Length confound: missed unwanted mail averages 1808 tokens vs 978 for caught; false positives average 1814 tokens vs 733 for correct legitimate mail (all legitimate 740, all unwanted 992). Legitimate mail is ~0.7x longer than unwanted mail on average; the error groups do not follow the length gap, so length is not the main shortcut. Phishing rows average 1349 tokens vs spam 725: a length gap between the two unwanted kinds is a second shortcut to watch in the phishing-vs-spam confusion.
- Recall by length is lowest in the <=64-token bucket (94.9%, 99 positives).
- Of the 13 false positives, 46.2% look like mailing-list or digest traffic, 0.0% are HTML-heavy and 0.0% are very short (TN reference: 56.3% / 0.0% / 0.0%).
- Tokens most over-represented in missed unwanted mail vs caught:
invite,cut,practical,networking,audience,oct,innovative,event,angeles,anyway. - Tokens most over-represented in false positives vs correct legitimate mail:
outlets,zzz-unspun,czzz-unspun,cook,full-color,muehlbauer,vanderkolk,eletra,loripatel,copyedited.
