DS 4002: Prototyping
Group 2 - The Predictive Pioneers
Members: Christine Tsai (leader), Ben Harris, Vance Newsome
This project compares the effectiveness of different time series modeling techniques in detecting anomalies in system log data that indicate potential DDOS attacks.
README.md- Overview of the project and instructions for replication.LICENSE.md- Specifies the terms of use for this repository.SCRIPTS/- Contains Python and R scripts for data cleaning and analysis.DATA/- Contains raw and cleaned datasets.OUTPUT/- Contains tables and figures.
- Python 3.12.4, R 4.4.2
- RStudio 2024.9.1.394
pandas(data manipulation)numpy(numerical operations)matplotlib(visualization)statsmodels(statistical model)joblib(parallel computing for calculating min AIC)
tidyverse(data manipulation and visualization)
- Windows 11 and macOS 15 Sequoia
├── README.md
├── LICENSE.md
├── SCRIPTS/
│ ├── adf.R # Augmented Dicky-Fuller Test for Stationarity (assumption for ARIMA)
│ ├── arima-cpu-util.ipynb # create ARIMA model for EC2 CPU Utilization data
│ ├── arima-network-in.ipynb # create ARIMA model for EC2 Network In data
│ ├── arima-request-count.ipynb # create ARIMA model for ELB Request Count data
│ ├── arima-testing-and-notes.ipynb # testing and notes for ARIMA models
│ ├── autoencoder.ipynb # create Autoencoder machine learning model
├── DATA/
│ ├── data_appendix.pdf # describes dataset
│ ├── ec2_cpu_utilization_53ea38.csv # raw CPU utilization data
│ ├── ec2_network_in_5abac7.csv # raw inbound network traffic data
│ ├── elb_request_count_8c0756.csv # raw request count data
├── OUTPUT/
│ ├── cpu-util-plot.png # anomaly detection plot for EC2 CPU Utilization data
│ ├── net-in-plot.png # anomaly detection plot for EC2 Network In data
│ ├── req-count-plot.png # anomaly detection plot for ELB Request Count data
Install the required packages (list above)
Install tidyverse package
Data source: https://github.com/numenta/NAB/tree/master/data/realAWSCloudwatch
Run adf.R
Run arima-cpu-util.ipynb, arima-network-in.ipynb, and arima-request-count.ipynb
Run autoencoder.ipynb