机器学习基础专题:逻辑回归

逻辑回归

广义线性模型。

原理

输入

训练集数据 T = ( x 1 , y 1 ) . . . ( x M , y M ) T = {(x_1,y_1) ... (x_M,y_M)} T=(x1,y1)...(xM,yM) x i ∈ X ⊆ R n x_i \in \mathcal{X} \subseteq R^n xiXRn y i ∈ Y ⊆ R K y_i \in \mathcal{Y} \subseteq R^K yiYRK,二分类 y i ∈ { − 1 , + 1 } y_i \in \{-1, +1\} yi{1,+1}

损失函数 C o s t ( y , f ( x ) ) Cost(y,f(x)) Cost(y,f(x))

学习速率 α \alpha α β \beta β

输出

逻辑回归模型 f ^ ( x ) \hat f(x) f^(x)

判断函数候选

单位阶跃函数

不连续并且不充分光滑

对数概率函数 Sigmoid

y = 1 1 + e − z y = \frac{1}{1+e^{-z}} y=1+ez1
z = w T x + b z = w^Tx+b z=wTx+b

在这里插入图片描述

如果将y视为样本x作为正例的可能性,则1-y是反例可能性,两者的比值y/(1-y)称为几率,反映了x作为正例的相对可能性。上式是在用线性回归模型的预测结果去逼近真实标记的对数几率。

我们可以通过极大似然法来估计w和b。

l ( w , b ) = ∑ i = 1 M l n p ( y i ∣ x i ; w , b ) l(w,b) = \sum_{i=1}^M ln p(y_i | x_i;w,b) l(w,b)=i=1Mlnp(yixi;w,b)

P w ( y = j ∣ x ) = e x p ( x T w ( j ) ) ∑ k = 1 K e x p ( x T w ( k ) ) P_w(y=j|x) = \frac{exp(x^Tw^{(j)})}{\sum_{k=1}^{K}exp(x^Tw^{(k)})} Pw(y=jx)=k=1Kexp(xTw(k))exp(xTw(j))

损失函数

c o s t = − y l o g ( p ^ ) − ( 1 − y ) l o g ( 1 − p ^ ) cost = -ylog(\hat{p}) - (1-y)log(1-\hat{p}) cost=ylog(p^)(1y)log(1p^).

我们之所以使用对数概率函数而不是MSE的原因:(1)对数概率函数是一个凸函数;(2) 当误差较大时,对数概率函数可以提供较大的更新。

推导w的MLE。
w ∗ = a r g m a x x P ( Y ∣ X ) = a r g m a x w ∏ i = 1 M P ( Y i ∣ x i ) = a r g m a x w ∑ i = 1 M l o g P ( Y i ∣ x i ) = a r g m a x w ∑ i = 1 M [ y i l o g p 1 + ( 1 − y i ) l o g p 0 ] w^* = argmax_x P(Y|X) \\\\ = argmax_w \prod_{i=1}^{M} P(Y_i|x_i) \\\\ = argmax_w \sum_{i=1}^{M} log P(Y_i|x_i) \\\\ = argmax_w \sum_{i=1}^{M} [y_i log p_1 + (1-y_i) log p_0] \\\\ w=argmaxxP(YX)=argmaxwi=1MP(Yixi)=argmaxwi=1MlogP(Yixi)=argmaxwi=1M[yilogp1+(1yi)logp0]

算法

逻辑回归算法

  1. 随机初始化 θ \theta θ

  2. 计算 θ j + 1 = θ j − α 1 m ∑ i = 1 m x i [ h ( x i ) − y i ] \theta_{j+1} = \theta_{j} - \alpha\frac{1}{m}\sum_{i=1}^{m}x_i[h(x_i)-y_i] θj+1=θjαm1i=1mxi[h(xi)yi]

  3. 迭代

在迭代求解时使用高效的优化算法,如LBFGS、信赖域算法。这些求解方法是基于批量处理的,无法高效处理超大规模的数据集,也无法对线上模型进行快速实时更新。

随机梯度下降(SGD)是另一种优化方法,比如google的FTRL算法。

FTRL算法

  1. 对于 i ∈ { i ∼ d } i\in\{i \sim d\} i{id},初始化 z i = 0 , n i = 0 z_i = 0, n_i = 0 zi=0,ni=0

  2. 对样本t = 1 to T,

    1. 计算 x t + 1 , i = { 0 , i f ∣ z t , i ∣ ≤ λ 1   − ( β + n i α + λ 2 ) − 1 ( z t , i − s i g n ( z t , i ) λ 1 ) , o t h e r w i s e x_{t+1,i} = \left\{\begin{aligned} &0 ,&if |z_{t,i}| \leq \lambda_1 \\\ & -(\frac{\beta+\sqrt{n_i}}{\alpha}+\lambda_2)^{-1}(z_{t,i} - sign(z_{t,i})\lambda_1),& otherwise\end{aligned}\right. xt+1,i= 0,(αβ+ni +λ2)1(zt,isign(zt,i)λ1),ifzt,iλ1otherwise

    2. 计算 p t = σ ( x t w ) p_t = \sigma(x_tw) pt=σ(xtw),使用label函数和预测值 p t p_t pt迭代

    3. 对于i

      g i = ( p t − y t ) x i g_i = (p_t - y_t)x_i gi=(ptyt)xi

      σ i = 1 α ( n i + g i 2 − n i ) \sigma_i = \frac{1}{\alpha}(\sqrt{n_i + g_i^2} - \sqrt{n_i}) σi=α1(ni+gi2 ni )

      z i = z i + g i − σ i w t , i z_i = z_i + g_i - \sigma_iw_{t,i} zi=zi+giσiwt,i

      n i = n i + g i 2 n_i = n_i +g_i^2 ni=ni+gi2

  3. 迭代

建议 β \beta β取1。

Reference

  • 《美团机器学习实践》by美团算法团队,第三章
  • 《机器学习》by周志华,第三、四章
  • 白板推导系列,shuhuai007
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页