Optimal discriminant analysis