A machine learning-powered threat detection system using the UNSW-NB15 dataset. This project leverages explainable AI (XAI) tools such as SHAP and LIME for interpretable results and provides a user-friendly GUI built with Streamlit.
- Dataset Used: UNSW-NB15
- This dataset includes real modern network traffic with both normal and malicious behaviors, ideal for intrusion detection systems.
- Preprocesses complex network logs into clean and trainable format
- Detects multiple types of network attacks
- Explainable results with SHAP and LIME
- Simple, clean UI via Streamlit for easy experimentation
- Machine Learning: Scikit-learn , XAI
- XAI Tools: SHAP (Shapley values), LIME (Local Interpretable Model-Agnostic Explanations)
- GUI: Streamlit
- Language: Python 3.11
-
Clone the Repository
git clone https://github.com/thennavan-dev/Thread_Detection_AI.git cd Thread_Detection_AI -
Create a virtual environment (optional but recommended)
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
-
Install Dependencies
pip install -r requirements.txt
-
Run the Streamlit App
streamlit run app.py
-
Data Preprocessing Open and run cells in
Data_Processing.ipynbto clean and prepare the dataset. -
Model Training & XAI Explore
MainProject.ipynbto train the ML models and apply SHAP & LIME for explainability.
Pull requests are welcome. For major changes, please open an issue first to discuss your ideas.
This project is licensed under the MIT License. See the LICENSE file for details.