Instructions to use frangelbarrera/phishlens-mlp with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use frangelbarrera/phishlens-mlp with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://frangelbarrera/phishlens-mlp") - Notebooks
- Google Colab
- Kaggle
PhishLens MLP
PhishLens MLP is a compact binary classifier for identifying phishing-like URL strings from lexical and structural signals. It is the deployment-oriented model from the main branch of the phishing-detection-rnn-cnn project.
The model is designed for offline URL-string analysis. It does not browse to the submitted URL, resolve DNS, inspect page content, follow redirects, validate certificates, or query an external reputation service. The model output is a risk signal for research and defensive education, not a security verdict.
Try the interactive demo in the PhishLens Space.
Model summary
The classifier receives 49 deterministic features extracted from a URL string, standardizes them with the bundled StandardScaler, and applies a small multilayer perceptron:
49 standardized features → Dense(64, ReLU) → Dense(32, ReLU) → Dense(1, Sigmoid)
Dropout and L2 regularization are used during training. Inference uses the trained weights in my_model.keras and the fitted scaler in scaler.pkl.
Intended use
This model is intended for academic experimentation, defensive-security education, offline feature-engineering demonstrations, and reproducible comparison with the original CNN+LSTM thesis implementation. It can be used as one component in a larger analysis pipeline where predictions are reviewed alongside other signals.
Out-of-scope use
Do not use this model as an autonomous blocking, takedown, fraud, identity, employment, credit, or law-enforcement decision system. Do not open suspicious URLs to verify a prediction. The model cannot detect phishing pages hosted on legitimate domains when the URL string itself does not contain informative signals, and it cannot assess a website's live content or infrastructure.
Evaluation
The reported metrics were calculated on a held-out 20% test split with stratification and random_state=42. The decision threshold was tuned on the test evaluation procedure documented by the source project and is included in metrics.json.
| Metric | Value |
|---|---|
| Accuracy | 89.94% |
| ROC-AUC | 0.965 |
| Average precision | 0.965 |
| F1 score | 0.900 |
| Brier score | 0.072 |
| Decision threshold | 0.499 |
The confusion matrix is provided in metrics.json. These results should not be interpreted as production performance: dataset composition, sampling, label quality, temporal drift, and domain shift can materially affect outcomes.
Features
The 49 features describe URL shape and token patterns, including lengths, punctuation counts, digit ratios, hostname structure, subdomain depth, IP-address patterns, punycode, ports, URL shorteners, path extensions, suspicious terms, and top-level-domain indicators. The canonical order is stored in feature_names.json.
Five original dataset features were removed from the deployment-oriented branch because they require curated brand lists or live network context: random_domain, domain_in_brand, brand_in_subdomain, brand_in_path, and nb_external_redirection. This keeps training and inference consistent and avoids network requests.
Repository contents
| File | Description |
|---|---|
my_model.keras |
Trained Keras model weights and architecture metadata |
scaler.pkl |
StandardScaler fitted on the training features |
feature_names.json |
Canonical feature order used by the model |
metrics.json |
Evaluation metrics, threshold, curves, and confusion matrix |
training_metadata.json |
Training configuration, versions, architecture, and metrics digest |
SHA256SUMS |
Checksums for the source artifacts |
LICENSE |
MIT license |
Reproducibility
The complete training and inference pipeline is maintained in the GitHub repository. The model artifacts in this repository correspond to the improved main branch. The defended academic implementation is preserved in the thesis-original branch, which uses a CNN+LSTM hybrid with 55 features.
The Space provides a browser-based demonstration. Its URL parser and feature extractor are implemented in JavaScript so that the public demo can run as a free static Space; the model weights and scaler are the corresponding exported artifacts from this repository.
Ethical considerations
Phishing detection has asymmetric costs. False negatives can expose users to harm, while false positives can block legitimate resources. Any deployment should measure both error types on representative, current data, provide an appeal or review path, protect submitted inputs, and monitor performance drift. This model is published to support transparent defensive research rather than automated surveillance or indiscriminate blocking.
License
MIT. The model, source artifacts, and dataset usage remain subject to the terms and provenance described in the source repository.
- Downloads last month
- -