I am trying to implement an indoor location tracking system using bluetooth dongles. The idea is to walk around with an android device and calculate your location in a room based on the signal strengths of bluetooth dongles placed around the room. In order to do this I have decided to use machine learning to approximate, as closely as possible, the RSSI as a distance, meters for example. I have been told by a lecturer in my college that LibSVM is what I'm looking for so I've been doing some reading. I had a look at this tutorial and can't seem to get my head around the data that's needed to train the system. The data that I will have is:
- the locations of each dongle (along with a mac address) saved in a database, x and y coordinates
- the Received Signal Strength Indicator (RSSI) of the dongles nearest to my android device
- the mac addresses will be used to query the database for certain dongles
I understand the data has to be in SVM format but I'm a bit unsure of what it should be in terms of input data and output data. The example below, taken from the tutorial I've mentioned, shows that a man is a class and a woman is a class. So in my case would I have just one class "dongle"? And should all the values dongle reflect the values I have stored in my database?
man voice:low figure:big income:good
woman voice:high figure:slim income:fare
- Convert the feature values to its numeric representation. Let's say, that best salary would be 5 and worst salary 1 (or no salary = 0), the same with other enumarated variables.
- We have 2 classes, man and women . convert the classes to numeric values: man = 1, woman = -1
- Save it in libsvm data format:
[class/target] 1:[firstFeatureValue] 2:[secondFeatureValue] etc. ex.: a women with great salary, low voice and small figure would be encoded like: -1 1:5 2:1.5 3:1.8
In general the input file format of SVM is
[label] [index1]:[value1] [index2]:[value2] ... [label] [index1]:[value1] [index2]:[value2] ...
Could someone give me an example of what I should be aiming for?
This is all brand new to me so any helpful hints or tips to get me going would be great. Thanks in advance