fbadine's picture
Update README.md
ab4ee71 verified
---
library_name: keras
tags:
- image-classification
- spam-detectio
metrics:
- accuracy
base_model:
- keras-io/VGG19
---
# Image Spam Detection with VGG19
This is a model for detecting spam in images using transfer learning, with a VGG19 base model fine-tuned on the [Image Spam Hunter Dataset](https://example-dataset-link.com).
---
## Model Description
This model is built for binary classification, detecting whether an image is spam or not. The VGG19 architecture was used as the base model for transfer learning, leveraging pre-trained weights from ImageNet. The final layers were customised to include a GlobalAveragePooling layer, followed by fully connected layers, and a softmax activation for classification.
- **Base Model**: VGG19
- **Task**: Binary classification (Spam / Not Spam)
- **Framework**: Keras (TensorFlow backend)
---
## Training and Evaluation Data
### Dataset
The model was trained and evaluated on the **Image Spam Hunter Dataset**, a publicly available dataset that contains spam and non-spam images:
- **Training set**: 1731 images
- **Validation set**: 1385 images
You can find more about the dataset [here](https://users.cs.northwestern.edu/~yga751/ML/).
---
## Training Procedure
### Preprocessing
- Images were resized to 256x256.
- Normalisation was applied to scale pixel values between 0 and 1.
### Optimizer
- **Optimizer**: Adam
- **Learning Rate**: 0.001
### Training Parameters
- **Batch Size**: 128
- **Epochs**: 26 (early stopping)
### Loss Function
- Binary Cross-Entropy Loss
### Augmentations
- Random augmentation using Keras CV RandAugment layer.
---
## Training Metrics
Below is a summary of the model's performance over the training process:
| | FN | FP | TN | TP | accuracy | loss | val_FN | val_FP | val_TN | val_TP | val_accuracy | val_loss |
|---:|-----:|-----:|-----:|-----:|-----------:|----------:|---------:|---------:|---------:|---------:|---------------:|-----------:|
| 0 | 187 | 140 | 499 | 559 | 0.763899 | 1.93435 | 19 | 2 | 169 | 156 | 0.939306 | 0.378412 |
| 1 | 16 | 35 | 604 | 730 | 0.963177 | 0.242954 | 6 | 3 | 168 | 169 | 0.973988 | 0.186523 |
| 2 | 29 | 19 | 620 | 717 | 0.965343 | 0.174301 | 3 | 12 | 159 | 172 | 0.956647 | 0.149353 |
| 3 | 17 | 26 | 613 | 729 | 0.968953 | 0.116907 | 3 | 7 | 164 | 172 | 0.971098 | 0.0973678 |
| 4 | 14 | 17 | 622 | 732 | 0.977617 | 0.0807728 | 2 | 12 | 159 | 173 | 0.959538 | 0.0991694 |
| 5 | 13 | 18 | 621 | 733 | 0.977617 | 0.0713564 | 3 | 6 | 165 | 172 | 0.973988 | 0.0604228 |
| 6 | 10 | 17 | 622 | 736 | 0.980505 | 0.0604733 | 3 | 5 | 166 | 172 | 0.976879 | 0.0584633 |
| 7 | 9 | 13 | 626 | 737 | 0.984116 | 0.0478682 | 4 | 4 | 167 | 171 | 0.976879 | 0.0745383 |
| 8 | 5 | 13 | 626 | 741 | 0.987004 | 0.0376507 | 3 | 7 | 164 | 172 | 0.971098 | 0.0773135 |
| 9 | 7 | 6 | 633 | 739 | 0.990614 | 0.0248621 | 3 | 2 | 169 | 172 | 0.985549 | 0.0628484 |
| 10 | 7 | 10 | 629 | 739 | 0.987726 | 0.0298408 | 2 | 2 | 169 | 173 | 0.988439 | 0.0531744 |
| 11 | 4 | 10 | 629 | 742 | 0.989892 | 0.0242986 | 3 | 2 | 169 | 172 | 0.985549 | 0.0675473 |
| 12 | 6 | 7 | 632 | 740 | 0.990614 | 0.0326418 | 2 | 3 | 168 | 173 | 0.985549 | 0.0671533 |
| 13 | 6 | 9 | 630 | 740 | 0.98917 | 0.0279278 | 2 | 5 | 166 | 173 | 0.979769 | 0.06897 |
| 14 | 7 | 7 | 632 | 739 | 0.989892 | 0.0244297 | 2 | 3 | 168 | 173 | 0.985549 | 0.0550619 |
| 15 | 5 | 4 | 635 | 741 | 0.993502 | 0.0228877 | 3 | 2 | 169 | 172 | 0.985549 | 0.0558347 |
| 16 | 4 | 10 | 629 | 742 | 0.989892 | 0.0277857 | 4 | 0 | 171 | 171 | 0.988439 | 0.0401906 |
| 17 | 2 | 7 | 632 | 744 | 0.993502 | 0.0193213 | 9 | 1 | 170 | 166 | 0.971098 | 0.0959367 |
| 18 | 7 | 3 | 636 | 739 | 0.99278 | 0.0151094 | 4 | 6 | 165 | 171 | 0.971098 | 0.0873069 |
| 19 | 7 | 3 | 636 | 739 | 0.99278 | 0.017344 | 1 | 6 | 165 | 174 | 0.979769 | 0.0964724 |
| 20 | 5 | 4 | 635 | 741 | 0.993502 | 0.024251 | 1 | 4 | 167 | 174 | 0.985549 | 0.0580115 |
| 21 | 3 | 9 | 630 | 743 | 0.991336 | 0.0207464 | 1 | 3 | 168 | 174 | 0.988439 | 0.0510422 |
| 22 | 2 | 6 | 633 | 744 | 0.994224 | 0.0122992 | 1 | 1 | 170 | 174 | 0.99422 | 0.0439666 |
| 23 | 3 | 2 | 637 | 743 | 0.99639 | 0.0105987 | 4 | 2 | 169 | 171 | 0.982659 | 0.0502425 |
| 24 | 3 | 6 | 633 | 743 | 0.993502 | 0.0164827 | 6 | 1 | 170 | 169 | 0.979769 | 0.0865423 |
| 25 | 5 | 7 | 632 | 741 | 0.991336 | 0.0245302 | 6 | 3 | 168 | 169 | 0.973988 | 0.0918282 |
| 26 | 9 | 8 | 631 | 737 | 0.987726 | 0.0296158 | 5 | 1 | 170 | 170 | 0.982659 | 0.0991676 |
---
## Model Plot
The model architecture can be visualised in the image below:
![Model Image](./model_plot.png)
---
## Validation Accuracy
The final validation accuracy achieved by the model was **98%**.
---
## How to Use the Model
### Loading the Model
To load this model in your application, use the following:
```python
from tensorflow.keras.models import load_model
model = load_model("path/to/saved_model")