cosine.py 679 B

1234567891011121314151617181920212223
  1. #!/usr/bin/env python3
  2. match_wifi_num_crit = 2
  3. def cosine_sim(known_point, new_point):
  4. from math import sqrt
  5. up, d1, d2 = 0.0, 0.0, 0.0
  6. a, b = known_point, new_point
  7. for key in a.wifi_snr:
  8. d1 += a.wifi_snr[key] * a.wifi_snr[key]
  9. if key in b.wifi_snr:
  10. up += a.wifi_snr[key] * b.wifi_snr[key]
  11. for key in b.wifi_snr:
  12. d2 += b.wifi_snr[key] * b.wifi_snr[key]
  13. if up < match_wifi_num_crit:
  14. return None
  15. else:
  16. return up / sqrt(d1) / sqrt(d2)
  17. if __name__ == '__main__':
  18. from wifiloc import toplev
  19. toplev(infile = "basicdata.csv", sim = cosine_sim, bad_wifi_crit = 5000,
  20. sim_crit = 0.0)