A maximum margin clustering algorithm based on indefinite kernels