Just a pre-warning - I'm new to machine learning and the concepts that come with it, so please be nice with the terminology!
I have a directed Graph which represents a home and some devices in it. Users are able to create rules to control how devices interact with each other (e.g. when motion sensor triggered, turn on the light)
Users are able to build the graph themselves, and label the nodes however they see fit.
- Red nodes: Inputs - these are usually connected to sensors on devices
- Orange nodes: Logic - allows you to connect other nodes together to change behaviour
- Blue nodes: General - just used to help the user understand behaviour
- Green nodes: Outputs - these control devices
The aim is to try and identify which rooms particular devices are in.
There are some nodes that we can already label without machine learning. I was thinking it could scan the nodes and look for any that contain a single room name. Those nodes would then get labelled with that room name:
From that we learn:
- Device A = lounge
- Device D = lounge
- Device E = kitchen
From that we should learn:
- Device B = lounge
- Device C = dining room
- Device G = lounge
- Device H = dining room
There's not enough info to determine where device F is located.
Any thoughts on how I could accomplish this?
I feel like this might need to go down a semi-supervised route, as I'm not going to have much training data to play with. I feel like https://research.googleblog.com/2016/10/graph-powered-machine-learning-at-google.html gives some good ideas, but I don't know where to start.
If it helps I'm planning to use TensorFlow.js to complete the task, but I'm open to other suggestions etc.