improved MLT: use k nearest algorithm