FM算法原理及python实战

一、引入FM

在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合;非线性SVM可以对特征进行kernel映射,但是在特征高度稀疏的情况下,并不能很好地进行学习。

因子分解机(FactorizationMachine,FM)是由SteffenRendle在2010年提出的一种基于矩阵分解的机器学习算法。算法的核心在于特征组合,以此来减少人工参与特征组合工作。 在计算广告和推荐系统中,CTR预估(click-throughrate)是非常重要的一个环节,判断一个物品是否进行推荐需要根据CTR预估的点击率排序决定。 下面以一个示例引入FM模型。假设一个广告分类的问题,根据用户和广告位相关的特征,预测用户是否点击了广告。

我们手动生成源数据如下:

FM算法原理及python实战_第1张图片

import pandas as pd
train = [
{"country": "China", "type": "Game", "age": 19,"Clicked":1},
{"country": "USA", "type": "Game", "age": 33,"Clicked":1},
{"country": "UK", "type": "Music", "age": 55,"Clicked":1},
{"country": "China", "type": "Movie", "age": 20,"Clicked":0},
{"country": "China", "type": "Music", "age": 25,"

你可能感兴趣的:(推荐算法)