逻辑回归的损失函数是怎么来的

  统计/机器学习 回归分析 监督式学习 损失函数    浏览次数: 1304
8

逻辑回归的损失函数是怎么来的?为什么定义成log-loss?

$$\text{log-loss}=-\frac{1}{n}\sum_{i=1}^n\left((y_i\log p_i)+(1-y_i)\log(1-p_i)\right)$$

 

Alfred   2017-03-16 14:00



   2个回答 
18

Logistic regression的loss function不是凭空出现的,是根据逻辑回归本身式子中系数的最大似然估计推导而来的。

逻辑回归的式子是这样的

$$Pr(y_i = 1) = \frac{1}{1+e^{-(\beta_0+\beta_1x_i)}}.$$

下面我们可以写出逻辑回归中的$\beta_0$和$\beta_1$的似然函数

\begin{eqnarray*} L(\beta_0,\beta_1)&=&\prod_{i=1}^n p(Y=y_i|X=x_i)\\ &=& \prod_{i=1}^n p(x_i)^{y_i}(1-p(x_i))^{1-y_i}. \end{eqnarray*}

其中$(x_i,y_i)$表示训练集中的每一个样本点。我们对似然函数取对数,可得

$$ \log L(\beta_0,\beta_1) = \sum_{i=1}^n\left(y_i\log(p(x_i))+(1-y_i)\log(1-p(x_i))\right).$$

我们希望上式越大越好,换句话说,对于给定样本数量$n$,我们希望$-\frac{1}{n}\log L(\beta_0,\beta_1)$越小越好,这个也就是LogLoss。

$$ \text{log-loss} = - \frac{1}{n}\sum_{i=1}^n\left(y_i\log(p(x_i))+(1-y_i)\log(1-p(x_i))\right). $$

所以说逻辑回归的损失函数不是定义出来的,而是根据最大似然估计推导而来的。


KingBug   2017-03-19 09:56

原来如此!和信息熵不谋而合! - 道画师   2017-03-31 11:36
熵的log的底数是2,logloss的底数是e吧 - brpc   2018-03-16 22:31
1

逻辑回归是最大熵模型对应类别为两类时的特殊情况

bean   2018-03-16 22:25



  相关主题

泊松回归(poission regression)的损失函数是什么?   1回答

最小二乘回归和线性回归   2回答

huber loss是什么?什么时候用?   1回答

python里有没有huber loss的线性回归   1回答

怎么理解surrogate loss function代理损失函数?   2回答

logloss的取值范围是多少?一般好的分类器能达到多少?   4回答

cross entropy是什么意思?   1回答

Hamming Loss汉明损失的计算公式是什么?   1回答

如何理解GBDT里面“损失函数的负梯度在当前模型的值,可以作为残差的估计”?   0回答

二元分类为什么不能用MSE做为损失函数?   3回答

python求logloss   1回答

sklearn里LogisticRegressionCV总是报错:Expected sequence or array-like, got estimator   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!