Функція втрати біноміального відхилення Scikit


11

Це функція втрати біноміального відхилення від scikit GradientBoosting,

   def __call__(self, y, pred, sample_weight=None):
        """Compute the deviance (= 2 * negative log-likelihood). """
        # logaddexp(0, v) == log(1.0 + exp(v))
        pred = pred.ravel()
        if sample_weight is None:
            return -2.0 * np.mean((y * pred) - np.logaddexp(0.0, pred))
        else:
            return (-2.0 / sample_weight.sum() *
                    np.sum(sample_weight * ((y * pred) - np.logaddexp(0.0, pred))))

Ця функція втрати не схожа між класом з 0 і класом з 1. Чи може хтось пояснити, як це вважається нормальним.

Наприклад, без ваги вибірки функцією втрат для класу 1 є

-2(pred - log(1 + exp(pred))

vs для класу 0

-2(-log(1+exp(pred))

Сюжет для цих двох не схожий за вартістю. Хтось може допомогти мені зрозуміти.

Відповіді:


17

Для розуміння цієї реалізації потрібні два спостереження.

Перше - predце не вірогідність, це шанси на журнал.

Друга - це стандартна алгебраїчна маніпуляція біноміального відхилення, яка йде так. Нехай - коефіцієнт журналу, що викликає . Тоді визначення біноміального відхилення спостереження становить (до коефіцієнта )Пsklearnpred-2

ужурнал(p)+(1-у)журнал(1-p)=журнал(1-p)+ужурнал(p1-p)

Тепер зауважте, що і (швидка перевірка полягає у підсумовуванні їх в голові ви отримаєте ). Томуp=еП1+еП1-p=11+еП1

журнал(1-p)=журнал(11+еП)=-журнал(1+еП)

і

журнал(p1-p)=журнал(еП)=П

Таким чином, біноміальне відхилення дорівнює

уП-журнал(1+еП)

Яке рівняння sklearnвикористовує.


Дякую. Якщо я predзамінюю коефіцієнти журналу, функція втрат є однаковою для обох класів.
Кумаран

Це ж питання виникло і для мене нещодавно. Я дивився на gradientboostedmodels.googlecode.com/git/gbm/inst/doc/gbm.pdf сторінка 10, де вказаний градієнт відхилення. Але здається, що градієнт, який вони показують, для log-lik не є негативним log-lik. Це правильно - це, здається, відповідає вашому поясненню тут?
B_Miner

1
@B_Miner посилання розірвано
GeneX

Велике спасибі @Matthew Drury
Catbuilts
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.