This project highlights the work of our Senior Capstone Project for the Data Science major at UC San Diego. Under the mentorship of esteemed researchers Yusu Wang and Gal Mishne from the Halicioglu Data Science Institute at UC San Diego, our project delves into the intricate world of graph representations within highway networks, exploring new techniques for traffic speed prediction. Through the process of constructing diverse graphs, integrating a variety of node features and edge types, we aim to explore new ways to represent the dynamics of highway traffic networks. We then utilize two Spatial-Temporal Graph Attention Network (ST-GAT) variants, ST-GAT Single Edge and ST-GAT Edge Type, to predict traffic speeds over the next 15, 30, and 45 minutes from a given time period.
A description of each graph is provided below (more details in report). Feel free to take a look at our experiments and results using the Google Colab link provided for each respective graph!
Graph | Node Features | Edge Types Included | Edge Types Learned | Evaluations |
---|---|---|---|---|
Graph1_SingleEdge |
Speed | 1 | Not Learned | Colab |
Graph2_SingleEdge |
Speed | 1,2 | Not Learned | Colab |
Graph3_SingleEdge |
Speed | 1,2,3 | Not Learned | Colab |
Graph4_SingleEdge |
Speed, Lanes, Day of Week, Hour of Day | 1 | Not Learned | Colab |
Graph5_SingleEdge |
Speed, Lanes, Day of Week, Hour of Day | 1,2 | Not Learned | Colab |
Graph6_SingleEdge |
Speed, Lanes, Day of Week, Hour of Day | 1,2,3 | Not Learned | Colab |
Graph1_EdgeType |
Speed | 1 | Learned | Colab |
Graph2_EdgeType |
Speed | 1,2 | Learned | Colab |
Graph3_EdgeType |
Speed | 1,2,3 | Learned | Colab |
Graph4_EdgeType |
Speed, Lanes, Day of Week, Hour of Day | 1 | Learned | Colab |
Graph5_EdgeType |
Speed, Lanes, Day of Week, Hour of Day | 1,2 | Learned | Colab |
Graph6_EdgeType |
Speed, Lanes, Day of Week, Hour of Day | 1,2,3 | Learned | Colab |
The repository is organized as follow:
Traffic-Speed-Prediction/
├── data/
│ ├── sensor_speeds/
│ │ ├── SD_15/
│ │ ├── SD_18/
│ │ └── SD_I805/
│ ├── create_datasets.py
│ ├── non_conn.csv
│ ├── sd.geojson
│ ├── sensor_conn.csv
│ ├── sensor_dist.csv
│ ├── sensor_maps.ipynb
│ ├── sensor_speed.csv
│ ├── vds_info.csv
│ └── vds_info_w_lanes.csv
├── graphs/
│ ├── Graph1_EdgeType.py
│ ├── Graph1_SingleEdge.py
│ ├── Graph2_EdgeType.py
│ ├── Graph2_SingleEdge.py
│ ├── Graph3_EdgeType.py
│ ├── Graph3_SingleEdge.py
│ ├── Graph4_EdgeType.py
│ ├── Graph4_SingleEdge.py
│ ├── Graph5_EdgeType.py
│ ├── Graph5_SingleEdge.py
│ ├── Graph6_EdgeType.py
│ └── Graph6_SingleEdge.py
├── results/
├── README.md
├── poster.pdf
├── report.pdf
├── requirements.txt
└── run.py
Below are the steps for replicating our project on your local machine. We recommend using a GPU for faster training of the models.
- Clone this repository on your local machine
- Open your terminal
- Change (
cd
) into the directory to the cloned repository - Type
pip install -r requirements.txt
. This contains all the necessary packages for running the code. - (Optional) Although the datasets are already prepared to be read in, you can create the datasets yourself. To do so,
cd
into the data folder. Then typepython create_datasets.py
in your terminal. Your datasets are now ready. - Return to the home directory of the repository. Use run.py to execute the code. Type
python run.py {specify graph to evaluate}
in your terminal. Where it says {specify graph to evaluate}, replace this with one of the graphs (name must be exactly the same as it is in the table containing graph descriptions) and only the specified graph will be evaluated on. If no graph is specified and you just typepython run.py
, all of the graphs will be evaluated on.
- Python 3
- Libraries listed in requirements.txt
- Ricky Miura
- Gita Anand
- Sheena Patel
We sincerely thank Gal Mishne and Yusu Wang for their mentorship and the Halıcıoğlu Data Science Institute for its support, making this project possible through their guidance and encouragement. Their collective expertise and unwavering support have been instrumental in our success, fostering a rich environment for learning and innovation.