A self-adaptive device comprising: a computer readable medium coupled to a client machine (30, 40, 50); a processor for receiving data from the computer readable medium and comprising a machine learning module, wherein a rendering of a posterior probability comprises rendering that a region of the client machine (30, 40, 50) has been changed, a communication interface module coupled to the client machine (30, 40, 50), the communication interface module configured to receive Wifi RSSI vector data and the region, wherein the communication interface module labeling the region with the identification, wherein the processor further comprising a detection module configured to detect the change in the region and request training data from the client machine (30, 40, 50), characterized in that the machine learning module is configured to: - train a set of one-vs-all support vector machines to render the posterior probability associated with the data, wherein the data comprises WiFi RSSI vector data and the region with an identification; and - render the posterior probability associated with the data; and wherein the processor is configured to - receive the WiFi RSSI vector data with region labels from the computer readable medium, - train the set of one-vs-all support vector machines based on the training data, so that each one-vs-all support vector machine is trained to decide if a received WiFi RSSI vector data with region label came from a particular region or the rest of the regions, and - deploy a Platt scaling technique on the set of one-vs-all support vector machines to compute probability distribution of the particular region given the observed RSSI data vectors before the processor transmits the processed probability distribution parameters to the computer readable medium for storing. a computer readable medium coupled to a client machine (30, 40, 50); a processor for receiving data from the computer readable medium and comprising a machine learning module, wherein a rendering of a posterior probability comprises rendering that a region of the client machine (30, 40, 50) has been changed, a communication interface module coupled to the client machine (30, 40, 50), the communication interface module configured to receive Wifi RSSI vector data and the region, wherein the communication interface module labeling the region with the identification, wherein the processor further comprising a detection module configured to detect the change in the region and request training data from the client machine (30, 40, 50), characterized in that the machine learning module is configured to: - train a set of one-vs-all support vector machines to render the posterior probability associated with the data, wherein the data comprises WiFi RSSI vector data and the region with an identification; and - render the posterior probability associated with the data; and wherein the processor further comprising a detection module configured to detect the change in the region and request training data from the client machine (30, 40, 50), characterized in that the machine learning module is configured to: - train a set of one-vs-all support vector machines to render the posterior probability associated with the data, wherein the data comprises WiFi RSSI vector data and the region with an identification; and - render the posterior probability associated with the data; and - train a set of one-vs-all support vector machines to render the posterior probability associated with the data, wherein the data comprises WiFi RSSI vector data and the region with an identification; and - render the posterior probability associated with the data; and wherein the processor is configured to - receive the WiFi RSSI vector data with region labels from the computer readable medium, - train the set of one-vs-all support vector machines based on the training data, so that each one-vs-all support vector machine is trained to decide if a received WiFi RSSI vector data with region label came from a particular region or the rest of the regions, and - deploy a Platt scaling technique on the set of one-vs-all support vector machines to compute probability distribution of the particular region given the observed RSSI data vectors before the processor transmits the processed probability distribution parameters to the computer readable medium for storing. - receive the WiFi RSSI vector data with region labels from the computer readable medium, - train the set of one-vs-all support vector machines based on the training data, so that each one-vs-all support vector machine is trained to decide if a received WiFi RSSI vector data with region label came from a particular region or the rest of the regions, and - deploy a Platt scaling technique on the set of one-vs-all support vector machines to compute probability distribution of the particular region given the observed RSSI data vectors before the processor transmits the processed probability distribution parameters to the computer readable medium for storing.