Py之pyfm:pyfm的简介、安装、使用方法之详细攻略
目录
pyfm的简介
pyfm 是一个用于实现因子分解机(FM)算法的Python库,可以用于处理稀疏数据集。FM算法是一种基于因子分解的机器学习算法,可以用于分类和回归任务。与传统的线性模型相比,FM算法可以处理更加复杂的特征交互,从而提高模型的预测精度。pyfm 库提供了一个简单易用的API,可以方便地构建和训练FM模型。
GitHub:GitHub - coreylynch/pyFM: Factorization machines in python
pyfm的安装
pip install pyfm
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyfm
pip install git+https://github.com/coreylynch/pyFM
或者手动从源代码构建该软件包,下载到本地执行安装
python setup.py install
pyfm的使用方法
1、基础用法
from pyfm import pylibfm
from sklearn.feature_extraction import DictVectorizer
import numpy as np
train = [
{"user": "1", "item": "5", "age": 19},
{"user": "2", "item": "43", "age": 33},
{"user": "3", "item": "20", "age": 55},
{"user": "4", "item": "10", "age": 20},
]
v = DictVectorizer()
X = v.fit_transform(train)
print(X.toarray())
y = np.repeat(1.0,X.shape[0])
fm = pylibfm.FM()
fm.fit(X,y)
fm.predict(v.transform({"user": "1", "item": "10", "age": 24}))
[[19. 0. 0. 0. 1. 1. 0. 0. 0.]
[33. 0. 0. 1. 0. 0. 1. 0. 0.]
[55. 0. 1. 0. 0. 0. 0. 1. 0.]
[20. 1. 0. 0. 0. 0. 0. 0. 1.]]
Creating validation dataset of 0.01 of training for adaptive regularization
-- Epoch 1
Training log loss: 0.37194