FM算法推导及python实例分析

FM算法

FM(Factoriztion Machine,因子分解机)是在逻辑回归基础上,增加了特征交叉项的参数学习,模型公式为:
y ^ = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n − 1 ∑ j = i + 1 n &lt; v i , v j &gt; x i x j \hat y=w0+\sum_{i=1}^n w_i x_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n&lt;v_i,v_j&gt;x_i x_j y^=w0+i=1nwixi+i=1n1j=i+1n<vi,vj>xixj
其中 &lt; v i , v j &gt; &lt;v_i,v_j&gt; <vi,vj>表示两个大小为k的向量的点积,k称为FM算法的度:
v i = ( v i , 1 , v i , 2 , . . . , v i , k ) v_i=(v_{i,1},v_{i,2},...,v_{i,k}) vi=(vi,1,vi,2,...,vi,k)
v j = ( v j , 1 , v j , 2 , . . . , v j , k ) v_j=(v_{j,1},v_{j,2},...,v_{j,k}) vj=(vj,1,vj,2,...,vj,k)
&lt; v i , v j &gt; = ∑ f = 1 k v i , f ⋅ v j , f &lt;v_i,v_j&gt;=\sum_{f=1}^k v_{i,f} \cdot v_{j,f} <vi,vj>=f=1kvi,fvj,f

交叉熵损失的变种

交叉熵损失的典型形式为:
J ( θ ) = − ∑ i = 1 m [ y i l o g ( h θ ( x i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] , y = 0 , 1 J(\theta)=-\sum_{i=1}^m[y^ilog(h_{\theta}(x^i))+(1-y^i)log(1-h_{\theta}(x^i))], y=0,1 J(θ)=i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))],y=0,1
sigmoid函数有个特性: 1 − σ ( x ) = σ ( − x ) 1-\sigma(x)=\sigma(-x) 1σ(x)=σ(x),推导如下:
σ ( x ) = 1 1 + e − x = 1 e x + 1 e x = e x 1 + e x \sigma(x)=\frac{1}{1+e^{-x}}=\frac{1}{\frac{e^x +1}{e^x}}= \frac{e^x}{1+e^x} σ(x)=1+ex1=exex+11=1+exex
σ ( x ) + σ ( − x ) = e x 1 + e x + 1 1 + e x = 1 \sigma(x)+\sigma(-x)=\frac{e^x}{1+e^x} + \frac{1}{1+e^{x}}=1 σ(x)+σ(x)=1+exex+1+ex1=1
若样本的标签值用+1和-1表示正例和负例

  • 当y=+1时, P ( y = + 1 ∣ x ) = σ ( y ^ ) P(y= +1|x)=\sigma(\hat y) P(y=+1x)=σ(y^)
  • 当y=-1时, P ( y = − 1 ∣ x ) = 1 − σ ( x ) = σ ( − y ^ ) P(y= -1|x)=1-\sigma(x)=\sigma(-\hat y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值