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

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

逻辑回归的损失函数是怎么来的?为什么定义成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个回答 
20

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). $$

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


SofaSofa数据科学社区DS面试题库 DS面经

KingBug   2017-03-19 09:56

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

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

SofaSofa数据科学社区DS面试题库 DS面经

bean   2018-03-16 22:25



  相关讨论

LR中若标签为+1和-1,损失函数如何推导,求大佬解答

用SGD计算逻辑回归时的迭代公式是什么?

最小二乘回归和线性回归

huber loss是什么?什么时候用?

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

线性回归梯度下降函数微分推导疑惑

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

关于损失函数h(x), J(x), cost的概念问题

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

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

  随便看看

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容

pandas把一列日期转换为星期

pandas读取csv中指定的某些列

python或者numpy求数值的中位数、四分位数

KNN中K值的选择