Machine Learning with sometimes missing data I'm trying to do an indoor locationing system based on my RSSI signal on my routers, I'm sniffing my network so I know what's the RSSI of my phone related to my routers antennas (I have 5 antennas all over my house).

The iPhone is not always broadcasting probe requests so I only get know in-real time the RSSI signal related to the router the device is connected to and no the other routers. To make it simple to understand: I sometimes have the RSSI of a device related to the 5 routers and sometimes only to 3 and in the worst case escenario only to 1 so my data sometimes looks like this:

room: 1, device_id: 1, rssi1: -80, rssi2: unknown, rssi3: -55, rssi4: unknown, rssi5: unknown


or:

room: 1, device_id: 1, rssi1: -80, rssi2: -95, rssi3: -55, rssi4: -102, rssi5: -96


or:

room: 1, device_id: 1, rssi1: -80, rssi2: unknown, rssi3: unknown, rssi4: unknown, rssi5: unknown


It is room based, so I'm not triangulating. I am trying to forecast in which room I am inside the house just by looking on the behaviour of the signals.

Machine Learning would be perfect, but if the data was always there and not some values missing sometimes. What kind of data algorithm should I use for this scenarios when sometimes I have all the data and sometimes just a few.
There are couple of ways to deal with missing data.


Replace missing values by mean/median. If the missing values is very
less, then this method would be apt. Also depends on how skewed
your data is. 
Imputation. Build a linear regression model to predict
the missing values based on other parameters. KNN could also be used
to predict the missing value


Also there are other methods to deal with missing data such as mimicking the parameters, removing missing data, etc.