Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
470fa4e
Setting up GitHub Classroom Feedback
github-classroom[bot] Jul 15, 2022
88d0cb5
Update README.md
briareed47 Jul 15, 2022
f33d249
Merge pull request #2 from Applied-Machine-Learning-2022/bkr2
briareed47 Jul 15, 2022
2e49ef6
Update README.md
briareed47 Jul 15, 2022
76bde1d
Merge pull request #3 from Applied-Machine-Learning-2022/bkr2
briareed47 Jul 15, 2022
2a12b30
updated main_nt
briareed47 Jul 22, 2022
e900060
Merge pull request #5 from Applied-Machine-Learning-2022/bkr2
briareed47 Jul 22, 2022
396f5d5
Update README.md
briareed47 Jul 22, 2022
8865cc9
Merge pull request #6 from Applied-Machine-Learning-2022/heat
briareed47 Jul 22, 2022
5025391
Update main_nt.ipynb
briareed47 Jul 25, 2022
1682e27
Merge pull request #7 from Applied-Machine-Learning-2022/heat
briareed47 Jul 25, 2022
f4d266e
Added the sim module file. This file contains the duration of our sim…
SkullNightMegaFan Jul 25, 2022
0e8011e
Added all of the neccessary module files required to run the simulati…
SkullNightMegaFan Jul 26, 2022
64aeb03
added some files from previous repo (#11)
jmillan736 Jul 26, 2022
d686fad
converted multidigraph to digraph (#12)
jmillan736 Jul 26, 2022
23e1815
Updated da_finale (#13)
JSalazar026 Jul 26, 2022
da381ba
added the conversion from networkx to pyg.data
jmillan736 Jul 27, 2022
fa00bf9
Update README.md
briareed47 Jul 27, 2022
9aeb1eb
Below (#14)
briareed47 Jul 27, 2022
c4d3081
Update da_finale.ipynb
jmillan736 Jul 29, 2022
0aea4c8
Update README.md (#17)
jmillan736 Jul 29, 2022
2c5d5e3
Merge branch 'main' of https://github.com/Applied-Machine-Learning-20…
briareed47 Jul 29, 2022
3a167ec
Final update of the read me
Jul 29, 2022
d6897ad
The final FINAL update to the readme (#18)
SkullNightMegaFan Jul 29, 2022
d80097c
fixed issue with node and edge attributes (#19)
jmillan736 Aug 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
80 changes: 63 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,75 @@
<!--
Name of your teams' final project
-->
# final-project
## [National Action Council for Minorities in Engineering(NACME)](https://www.nacme.org) Google Applied Machine Learning Intensive (AMLI) at the `PARTICIPATING_UNIVERSITY`
# snap-that-cat
## [National Action Council for Minorities in Engineering(NACME)](https://www.nacme.org) Google Applied Machine Learning Intensive (AMLI) at the `University_of_Kentucky`

<!--
List all of the members who developed the project and
link to each members respective GitHub profile
-->
Developed by:
- [member1](https://github.com/cbaker6) - `STUDENTS_UNIVERSITY`
- [member2](https://github.com/cbaker6) - `STUDENTS_UNIVERSITY`
- [member3](https://github.com/cbaker6) - `STUDENTS_UNIVERSITY`
- [member4](https://github.com/cbaker6) - `STUDENTS_UNIVERSITY`
Developed by:
- [Jeffery Millan](https://github.com/jmillan736) - `University_of_California_Berkeley`
- [Bria Reed](https://github.com/briareed47) - `Cornell_University`
- [Jose Salazar](https://github.com/JSalazar026) - `University_of_California_San_Diego`
- [Brenton Figures-Mormon](https://github.com/SkullNightMegaFan) - `George_Mason_University`


## Description
<!--
Give a short description on what your project accomplishes and what tools is uses. In addition, you can drop screenshots directly into your README file to add them to your README. Take these from your presentations.
-->
Problem: Trying to solve network congestion in smart cities

Smart cities more than ever have many, devices that are connected to the internet to improve citizen's quality of life. Through all of these devices being connected to internet is going to soak up the city's bandwith and result in slower or non working speeds. For example, a person that is nearby a sensor that is collecting data would then pick up that data unknowningly through their daily routine and through their daily routines drop off that data at gateway that will then upload the data to the cloud. While this itself could possibly work as we expand our network and greater capacity for devices the introduction of a smart city would make this impossible. A smart city has features to collect and spread information, which will enhance the lives of residents. Some of the devices that are connected within smart cities are a real time tracking locator for buses and train stations, cleaning robots(roombas), map kiosks, trash cans, etc. With all of these devices on the same wifi networks, the network is going to be inefficient and hardly worth using. Since much of the data that is being transported is time sensitive and high priority, this will result in time inefficient data. For this project, we propose for low priority data to be transported through the general public's devices bluetooth and local network. This low priority data would be sent and collected through devices moving throughout the city. We will be using the General Conv type of General Neural Networks to figure out the best way to transform data by bus routes and pedestrians throughout all of the devices within a smart city.

## Usage instructions
<!--
Give details on how to install fork and install your project. You can get all of the python dependencies for your project by typing `pip3 freeze requirements.txt` on the system that runs your project. Add the generated `requirements.txt` to this repo.
-->
1. Fork this repo
2. Change directories into your project
3. On the command line, type `pip3 install requirements.txt`
4. ....
1. Import the imgkit package (https://pypi.org/project/imgkit/)
2. Import the chromedriver package (https://stackoverflow.com/questions/42478591/python-selenium-chrome-webdriver)
3. Install networkx
4. Install peartree
5. Install osmnx
6. Install numpy
7. Install random
8. Install folium==0.11.0
9. Install imgkit==1.0.2
10. Install selenium==3.141.0

##Summary of Tools
We used pytorch to turn the end result data that was in Dr.Baker and his cohorts model. We transformed the data from a networks.multigraph object into a torch_geometric.data.Data object. This was done so we could pass the data into a suitable format for our GNN. See below for more detail about the torch_geometric object.
https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html

Our usage of Graphical Neural Networks was due to us using the prevoius iteration of this research project's data points. We used a torch_geometric.data.Data object as we were dealing with scalars points on a geographical points. The last paper created graph nodes of the optimal gateway placement. Using this data, we wanted to then find a target metric of 90% coverage for the city of Louisville.

Below is our working documentation of the project and our thought process throughout.
https://docs.google.com/document/d/1LhrckER-qpImON3ZEm0zBJsKl-4sF4W2iXL6MD-Mpn8/edit

Our work of Ethical Consideration from the google doc can be found below.
Ethical Considerations:

"For this project we do acknowledge that we are measuring and determining likeliness of data transfer from sensor to individual and vice versa in a STANDARD scenario. This however does not take into account huge events that we will label as Points of Interest(or POIs for short). These events will classify as huge major events that will aggregate a large amount of people for an extended period of time. POIs can include concerts, court cases, protests, and the list goes on.

Privacy, of physical and social networks is going to be a huge component of the future of this project. The generation of data based on people and their daily routines is highly sensitive and needs to be protected at any cost neccessary.

The next phase of the project could include going to a more individualistic case and tracking individual people's ability to transfer and send out data to and from sensors. This is too wide of a scope for this project ,but will be considered and investigated in future iterations. Some beginning thoughts are included below to better assist brainstorming.
In addition we realize that our data is contingent on the range of bus networks in cities. So if a city or town doesn’t have a thriving bus network it’s effectiveness will be straggled."




https://ieeexplore.ieee.org/abstract/document/9415579?casa_token=meb9lMbqx_kAAAAA:OeLaM7aHmm6AiqqnrKZ6-a--7juGicj7rm0DD3oCQHv5HhvOE9ktgN3rf_kndmICu55Tv0Jy6Yw

Our Power Point Presentation of our work.
https://docs.google.com/presentation/d/1pRuu5iETSQJIYwGXK6PNHz9Pci0nvsP35FzWiCAXKoQ/edit#slide=id.p
Below will be the speaker notes that add some additional perspective on the project.

"The internet is a wonderful and amazing thing that allows us to connect to each other from thousands of miles away. Of course, we all know how annoying it is to be disconnected from the internet. Now most of the time maybe you just need to reset your router or maybe disconnect from the network.
These aren’t the situations that we’re aiming to solve. If you have ever been to a packed sports game or in the middle of a super busy city like New York you’ll know that sometimes you may run into network congestion. Which is a really academic way of saying that too many people are using the network at the same time."

Smart cities are normal cities that use internet of things devices think of cleaning devices, map kiosks, and even your real time bus tracker to help make you and I’s life easier. Additionally, smart cities use many sensors and gateways to help manage the abundance of data that is tracked by a living breathing city

"According to the United Nations World Urbanization Prospects report that 55% of the world lives in urban areas and 68% of the world’s population by 2050. That’s well within our lifetime, folks. We are not just looking at a problem that can happen, one that very may well be if we are not proactive about it."

"Basically now smart devices around the city such as kiosk don't need to send information from the cloud every minute and can route information to buses that send that information to gateways relieving stress on the network and prioritizing other information"

"So how do graphs come into play for our machine learning model? We’ve seen multiple different neural networks take in different types of inputs in this class: We saw convolutional neural networks take in images, neural networks that just take in DataFrames, but never have we seen them take a graph as input. How is our ML model going to process a graph? Well, we make use of specialized neural networks, called graph neural networks. Graph neural networks take in graphs as an input, and trains and makes predictions based off of the information found in the nodes and edges of the graph. Graph neural networks can make three types of predictions: they can make node-level predictions, where graphs will make predictions about a specific node or object in the graph based on the surrounding nodes and edges, they can make edge-level predictions, where graphs will make predictions about the type of relationship between two objects in a graph, or they can make graph level predictions, where it predicts something about the entire graph. In our specific use-case, we want to make a node level prediction to determine how many gateways we want to have in the city, and where we want them."

"In our project we mentioned the ability to route data from device to device. Think of point of interest as essentially hot spots that have frequent or high amounts of traffic on regular intervals. A wonderful example of this would be your local Starbucks where it’s always frantic during the morning rush. Now point of interest can also include one time events that have huge amounts of traffic like a sports game, music concerts or even a pokemon go raid. These places events are important as they drastically change the routes and ability to route data. If you have a 30,000 people at a concert Saturday night that’s going to affect our ability to route data through users resulting in a less effective data delivery."

Loading