A computing device comprising: a processor; and a memory on which is stored machine readable instructions that are to cause the processor to: access a set of training fingerprints, wherein each of the training fingerprints specifies an access point of a plurality of access points to which a mobile device made a successful connection, a relative signal strength of the connection to the access point, and a cellular signal strength of a cellular tower near the mobile device when the successful connection to the access point was made; cumulate from the set of training fingerprints, level counts of the relative signal strengths of the connections to the access points corresponding to the cellular signal strengths of the cellular tower; rank the access points, from the cumulated level counts of the relative signal strengths of the access points, according to a predetermined ranking scheme; store an index of a correlation between the rankings of the access points according to a cellular tower identification and cellular signal strength pair; and identify an access point of the plurality of access points having the highest ranking from the stored index. a processor; and a memory on which is stored machine readable instructions that are to cause the processor to: access a set of training fingerprints, wherein each of the training fingerprints specifies an access point of a plurality of access points to which a mobile device made a successful connection, a relative signal strength of the connection to the access point, and a cellular signal strength of a cellular tower near the mobile device when the successful connection to the access point was made; cumulate from the set of training fingerprints, level counts of the relative signal strengths of the connections to the access points corresponding to the cellular signal strengths of the cellular tower; rank the access points, from the cumulated level counts of the relative signal strengths of the access points, according to a predetermined ranking scheme; store an index of a correlation between the rankings of the access points according to a cellular tower identification and cellular signal strength pair; and identify an access point of the plurality of access points having the highest ranking from the stored index. access a set of training fingerprints, wherein each of the training fingerprints specifies an access point of a plurality of access points to which a mobile device made a successful connection, a relative signal strength of the connection to the access point, and a cellular signal strength of a cellular tower near the mobile device when the successful connection to the access point was made; cumulate from the set of training fingerprints, level counts of the relative signal strengths of the connections to the access points corresponding to the cellular signal strengths of the cellular tower; rank the access points, from the cumulated level counts of the relative signal strengths of the access points, according to a predetermined ranking scheme; store an index of a correlation between the rankings of the access points according to a cellular tower identification and cellular signal strength pair; and identify an access point of the plurality of access points having the highest ranking from the stored index.