added laplace smoothing but it doesn't perfectly match sklearn's..