Rectifying self-training with neighborhood consistency and proximity for source-free domain adaptation