1. In a computing environment, a method comprising, applying semi-Riemannian geometry to a set of labeled samples corresponding to supervised learning, including learning a discriminant subspace for classification by using at least some of the labeled samples to learn the geometry of a semi-Riemannian submanifold.