Кажется, определение BIC меняется в разных источниках. Вот исходный код метода BIC:
def bic(self, X):
. . .
return (-2 * self.score(X) * X.shape[0] +
self._n_parameters() * np.log(X.shape[0]))
По мере того, как сложность модели увеличивается, значение bic увеличивается, а с увеличением вероятности bic уменьшается. Итак, чем ниже, тем лучше.
Это определение совпадает с формулой , связанной со страницей википедии .
Кроме того, я нашел это примечание на странице википедии, которое может объяснить, почему это определение не соответствует тому, что вы ожидали:
ПРИМЕЧАНИЕ. AIC, AICc и BIC, определенные Claeskens и Hjort (2008), являются отрицательными значениями, определенными в этой статье и в большинстве других стандартных ссылок.