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:pyfm的使用需要先将训练数据转化为字典对象构成的列表,然后再用DictVectorizer将数据集转化为one-hot编码的矩阵。

xlearn: FM & Linear模型可以输入libsvm格式或者csv格式,但 FFM模型只能接受libffm格式,具体格式样式如下。
https://xlearn-doc.readthedocs.io/en/latest/python_api/index.html

FM算法给我的感觉就是在逻辑回归模型上做了变形处理,然后帮你直接训练、预测数据,模型的选择空间很小。但是我希望找到一种方法,可以单纯对特征做一些组合处理,然后加入自己的模型去训练。

文章有任何错误欢迎指正,有任何建议也欢迎提出,本文发布纯属学习。

FM算法以及常用python库相关推荐

  1. 简述与机器学习相关的十大常用Python库,极简化算法编程

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 初学Python的时候,我一直不太理解Python的魅力到底在哪,相比Java,它除了换一种简洁的语法,好像没什么场景是不可替代的. ...

  2. 1000+ 常用 Python 库一览

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源 | 法纳斯特 这次给大家总结整理了1000+常用Python库 ...

  3. wxpython dataview处理大量数据_38个常用Python库:数值计算、可视化、机器学习等8大领域都有了...

    作者 | 李明江 张良均 周东平 张尚佳 来源 | 大数据DT 原文 | 38个常用Python库:数值计算.可视化.机器学习等8大领域都有了 Python作为一个设计优秀的程序语言,现在已广泛应用于 ...

  4. 数据分析与挖掘中常用Python库的介绍与实践案例

    数据分析与挖掘中常用Python库的介绍与实践案例 一.Python介绍 现在python一词对我们来说并不陌生,尤其是在学术圈,它的影响力远超其它任何一种编程语言, 作为一门简单易学且功能强大的编程 ...

  5. [CTF] python的pip源更改及常用python库

    windows下更改pip为清华大学开源 命令行以管理员方式运行 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/s ...

  6. 深度学习常用python库学习笔记

    深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...

  7. 【新手入门Python必看】1000+常用Python库一览

    这次给大家总结整理了1000+常用Python库,主要分为以下部分

  8. 深度学习入门之Python小白逆袭大神系列(三)—深度学习常用Python库

    深度学习常用Python库介绍 目录 深度学习常用Python库介绍 简介 Numpy库 padas库 PIL库 Matplotlib库 简介 Python被大量应用在数据挖掘和深度学习领域,其中使用 ...

  9. 数据分析常用Python库:数值计算、可视化、机器学习等领域

    镜像pip安装 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆 ...

最新文章

  1. Selenium3自动化测试——20.使用HTMLTestRunner获取测试报告
  2. Java面试题库,mysql远程访问权限设置
  3. AVL添加平衡二叉树,是一种二叉排序树,其中每个结点的左子树和右子树的高度差至多等于1。-icoding-数据结构-C-typedef struct node{ int val;
  4. java script 环境搭建_TypeScript环境搭建
  5. C# 基础知识和VS2010的小技巧总汇(2)[转]
  6. JavaScript-switch语句
  7. 如何在SQL Server中自动进行表分区
  8. VMware虚拟机下安装CentOS 6.10并配置访问外网
  9. 转:lnmp 搭建手册-黑一路人
  10. 物联网培训总结(C#)
  11. 腾讯元老上市公司CTO赚够钱后辞职,到安徽隐居,每天对着200亩地发呆
  12. Deep Voice 论文
  13. python文字游戏攻防_一个简单的孙悟空斗牛魔王的文字游戏
  14. U盘数据恢复的实现?
  15. linux半夜三点半定时重启,linux 定时任务 crontab相关(三)
  16. STM32CubeIDE 利用LL库 SysTick简单实现hcsr04超声波测距
  17. texstudio 官网打不开
  18. 机器人社社长事迹_科技之星事迹材料
  19. 正式声明:转载本Blog文章请注明原始出处和作者
  20. oracle 两种优化器,Oracle的优化器有两种优化方式(一)

热门文章

  1. 致二十多岁着急的年轻男女们
  2. 如何用计算机符号常量计算圆的周长,编写程序,输入圆的半径,计算并输出其周长和面积。常量pi的值取3.1.._简答题试题答案...
  3. 网络广告常用英语术语
  4. 汇正财经骗局?中国银行行业 China Banks存贷款定价机制详解
  5. 用手机打开word图表位置很乱_超过80%的人学会了都说好用,这是一篇良心干货文...
  6. 【地推】:一个棋牌游戏的地推流程
  7. Cocos2d-x客户端资源加密
  8. Rundeck 腾讯企业邮箱配置
  9. 一个八零后对婚姻的迷惑!
  10. C# 获取URL地址中文件名