A graph based semi-supervised learning algorithm named semi-supervised neighborhood discriminant analysis (SSNDA) is proposed. This method firstly uses self-training to label the unlabeled samples. In the process of self-training, the cut edge weight statistic method is employed to modify the self-labeled sample set before each iteration to reduce the influence from the noise sample, and the mislabeled samples will be removed from the self-labeled sample set. Then, manifold-based learning method will be adopted for dimensional reduction: according to the labels of the self-labeled sample set and the similarity between each sample, different weights will be assigned for each edge in the neighborhood graph, so that the nearby samples with the same class label will be closer,meanwhile, the nearby samples with different class labels will be far away. The experimental results on the ORL face database and AR face database verify the effectiveness of the proposed algorithm.