1. A computer based method for learning a label of an unlabelled data point from a plurality of data points, the method comprising: determining relative distances between all data points in the plurality of data points; determining a set of neighboring data points with respect to the unlabelled data point; performing an eigen decomposition of a matrix of distances between the set of neighboring data points to determine a function; and labeling the unlabelled data point based on a result from evaluating the function with respect to the unlabelled data point.