FM算法以及常用python库

FM算法以及常用python库

Factorization Machines:

适用于高维稀疏数据集进行特征组合,发现特征隐藏信息。在CTR,推荐系统中用的很多,这些情况下我也没有用过。 通过目标函数可以看出,比起线性模型,FM算法增加了两个变量相互作用的效果。

二分类算法的损失函数:

通过随机梯度下降更新参数: 另外两个了解不深入的概念:

ffm: 在fm基础上加入field概念,我的理解是适用于将one hot编码后的一系列特征归为一个field。

deepfm:在fm基础上加入深度学习概念,适用于挖掘更多变量相乘的影响,单纯用fm增加维度效率很低。

放一段别人写的适用于小数据集的FM代码,完全根据上述思路来写的: https://github.com/GreenArrow2017/MachineLearning/blob/master/MachineLearning/Factorization%20Machine/FM.py

FM实现常用库:

以下库均适用于二分类模型或回归模型。 pyfm:p