Перейти к основному содержимому

Учёт пользовательской функции потерь

Функции неопределённости как минимальные значения потерь

Все функции неопределённости решающих деревьев получаются в результате расчёта среднего от некоторых потерь при оптимальном константном прогнозе для этих потерь.

Пусть ItI_t - индексы объектов, попавших в узел tt, а It|I_t| - количество таких объектов.

Тогда дисперсия откликов представляет собой минимально возможные среднеквадратичные потери при константном прогнозе y^R\hat{y}\in\mathbb{R}. Оптимальной константой, минимизирующей средний квадрат ошибки будет выборочное среднее (докажите!):

ϕ(t)=miny^1ItiIt(yiy^)2=1ItiIt(yimeaniIt(yi))2\begin{align*} \phi(t)&=\min_{\widehat{y}}\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\left(y_{i}-\widehat{y}\right)^{2}\\ &=\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\left(y_{i}-\text{mean}_{i\in I_{t}}(y_{i})\right)^{2} \end{align*}

Среднее абсолютное отклонение от медианы минимизирует модуль отклонений от оптимальной константы y^R\hat{y}\in\mathbb{R}, в качестве которой выступает медиана (докажите!):

ϕ(t)=miny^1ItiItyiy^=1ItiItyimedianiIt(yi)\begin{align*} \phi(t)&=\min_{\widehat{y}}\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\vert y_{i}-\widehat{y}\vert\\ &=\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\vert y_{i}-\text{median}_{i\in I_{t}}(y_{i})\vert \end{align*}

Классификационная ошибка выдаёт среднее число ошибок классификации, когда класс всегда предсказывается также оптимальной константой. В качестве таковой выступает самый часто встречающийся класс (докажите!):

ϕ(t)=miny^1ItiItI[yiy^]=1ItiItI[yiyсамый частый]=1p^max\begin{align*} \phi(t)&=\min_{\widehat{y}}\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\mathbb{I}[y_{i}\ne\widehat{y}]\\ &=\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\mathbb{I}[y_{i}\ne y_{\text{самый частый}}]\\ &=1-\hat{p}_{max} \end{align*}

Энтропия представляет собой наилучшее значение кросс-энропийных потерь (cross-entropy loss), между фактическими вероятностями классов и их предсказанными значениями для всех объектов узла tt. Оптимальными вероятностями оказываются при этом фактические частоты классов в узле p^1,p^2,...p^C\widehat{p}_1,\widehat{p}_2,...\widehat{p}_C:

ϕ(t)=minp:cpc=11It(iItc=1ClnpcI[yi=c])=minp:cpc=11It(iItc=1CI[yi=c]lnpc)=i=1Cp^ilnp^i\begin{align*} \phi(t)&=\min_{p:\sum_{c}p_{c}=1}-\frac{1}{\left|I_{t}\right|}\left(\sum_{i\in I_{t}}\sum_{c=1}^{C}\ln p_{c}^{\mathbb{I}[y_{i}=c]}\right)\\ &=\min_{p:\sum_{c}p_{c}=1}-\frac{1}{\left|I_{t}\right|}\left(\sum_{i\in I_{t}}\sum_{c=1}^{C}\mathbb{I}[y_{i}=c]\ln p_{c}\right)\\ &=-\sum_{i=1}^{C}\widehat{p}_{i}\ln\widehat{p}_{i} \end{align*}

Критерий Джини выступает в качестве оптимального значения функции потерь Бриера между фактическими и предсказываемыми вероятностями. Наилучшими вероятностями также выступают фактические частоты каждого класса среди объектов узла:

ϕ(t)=minp:cpc=11ItiItppitrue2=minp:cpc=11ItiItc=1C(pcI[yi=c])2=i=1Cp^i(1p^i)=1i=1Cp^i2\begin{align*} \phi(t)&=\min_{p:\sum_{c}p_{c}=1}\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\left\lVert \mathbf{p}-\mathbf{p}_{i}^{true}\right\rVert ^{2}\\ &=\min_{p:\sum_{c}p_{c}=1}\frac{1}{\left|I_{t}\right|}\sum_{i\in I_{t}}\sum_{c=1}^{C}\left(p_{c}-\mathbb{I}[y_{i}=c]\right)^{2}\\ &=\sum_{i=1}^{C}\widehat{p}_{i}(1-\widehat{p}_{i})=1-\sum_{i=1}^{C}\widehat{p}_{i}^{2}& \end{align*}
Задача

Докажите, что энтропия и критерий Джини минимизируют соответствующие функции потерь. Для этого необходимо воспользоваться методом множителей Лагранжа, поскольку оптимизация по вектору p\mathbf{p} будет производиться при условии, что c=1Cpc=1\sum_{c=1}^C p_c=1.

Функции неопределённости для пользовательской функции потерь

Если пользователь минимизирует нестандартную функцию потерь L(y^,y)\mathcal{L}(\hat{y},y), то оптимальной функцией неопределённости ϕ(t)\phi(t) будет минимальное среднее значение значение его функции потерь при константном прогнозе y^\hat{y}:

ϕopt(t)=miny^1ItiItL(y^,yi)\phi_{\text{opt}}(t) = \min_{\hat{y}}\frac{1}{|I_t|}\sum_{i\in I_t}\mathcal{L}(\hat{y},y_i)

Именно эта, а никакая другая, функция неопределённости будет оптимальна для минимизации потерь L(y^,y)\mathcal{L}(\hat{y},y).

Такой подход, несмотря на его оптимальность, не реализован в большинстве библиотек машинного обучения в связи с тем, что для стандартных функций потерь оптимальный y^\hat{y} вычислим аналитически и известен заранее, что позволяет рассчитать функцию неопределённости за O(It)O(|I_t|), в то время как для произвольной функции потерь необходимо производить каждый раз переборную оптимизацию y^\hat{y}, из-за чего сложность вычисления ϕ(t)\phi(t) возрастает до O(It2)O(|I_t|^2). Стоит отметить, что сложность возрастает до квадратичной от числа объектов в узле только во время настройки дерева. Сложность построения прогнозов при этом не меняется, поскольку решающие правила узлов уже фиксированы.

Листовые прогнозы для пользовательской функции потерь

В случае использования пользовательской функции потерь L(y^,y)\mathcal{L}(\hat{y},y), прогнозы в листах также оптимально назначать как минимизаторы именно этой функции.

y^=argminy1ItiItL(y,yi)\hat{y} = \arg\min_{y}\frac{1}{|I_t|}\sum_{i\in I_t}\mathcal{L}(y,y_i)

В частном случае, когда решается задача регрессии с L(y^,y)=(y^y)2\mathcal{L}(\hat{y},y)=(\hat{y}-y)^2, то оптимально назначать прогнозом листа выборочное среднее, а когда L(y^,y)=y^y\mathcal{L}(\hat{y},y)=|\hat{y}-y|, то медиану (докажите!). В задаче классификации оптимально назначать прогнозом самый часто встречающийся класс среди объектов листа только для функции потерь L(y^,y)=I{y^y}\mathcal{L}(\hat{y},y)=\mathbb{I}\{\hat{y}\ne y\} (докажите!). В более общем случае потерь это правило уже перестаёт быть оптимальным.