Их много - и то, что работает лучше всего, зависит от данных. Есть также много способов обмана - например, вы можете выполнить калибровку вероятности на выходах любого классификатора, который дает некоторое подобие оценки (то есть: произведение точки между вектором веса и входом). Наиболее распространенный пример этого называется масштабированием Платта.
Существует также вопрос формы базовой модели. Если у вас есть полиномиальное взаимодействие с вашими данными, то ванильная логистическая регрессия не сможет хорошо ее смоделировать. Но вы можете использовать версию логистической регрессии с ядром, чтобы модель лучше соответствовала данным. Обычно это увеличивает «добротность» выходов вероятности, поскольку вы также повышаете точность классификатора.
Как правило, большинство моделей, которые дают вероятности, обычно используют логистическую функцию, поэтому может быть трудно сравнивать. Это просто имеет тенденцию хорошо работать на практике, байесовские сети являются альтернативой. Наивный Байес просто делает слишком упрощенное предположение, чтобы его вероятности были хорошими - и это легко наблюдается в любом наборе данных разумного размера.
В конце концов, обычно проще повысить качество ваших оценок вероятности, выбрав модель, которая может лучше представлять данные. В этом смысле не имеет большого значения, как вы получаете вероятности. Если вы можете получить точность 70% с помощью логистической регрессии и 98% с помощью SVM - тогда просто предоставив одну лишь «полную уверенность», вы сделаете ваши результаты «лучше» с помощью большинства методов оценки, даже если они не являются действительно вероятностями (и тогда вы можете выполнить калибровку, о которой я упоминал ранее, что делает их на самом деле лучше).
Тот же вопрос в контексте невозможности получить точный классификатор более интересен, но я не уверен, что кто-либо изучал / сравнивал в таком сценарии.