1
最近做一个游戏道具价格预测的项目,由于道具的附加属性共有十几种,每个道具的附加属性从这十几个属性中随机获取两到三个,导致属性特征很稀疏,于是尝试采用FM进行特征处理,然后进行价格预测。在安装pyFM库的时候遇到不少问题,下面就总结下我遇到的具体问题。
坑1:同名包
pip install pyfm
一般直接安装就可以,但是发现安装完之后调用FM算法总是报错,最后查找才知道,pip直接安装的并不是我想要的pyFM库,豆瓣FM播放器
坑2:源码编译错误方法一
在pip直接安装失败的情况下,在github上找到了源码,GitHub - coreylynch/pyFM: Factorization machines in python,按照提示使用如下方式进行安装
pip install git+https://github.com/coreylynch/pyFM
编译时,报错如下
print在python3中,输出要写在括号里面,这里的格式有误,找到编译的文件(pyfm_fast.pyx)对应的位置修改如下
修改好之后直接运行如下代码,重新构建库
python setup.py build
不出意外又报错了
问了chatgpt,建议我安装Xcode command line tools
xcode-select --install
在重新构建库,然后重新安装
python setup.py build python setup.py install
成功
坑2:源码编译错误方法二
找到源码的setup.py,将其中的libraries=['m']注释掉即可
坑3:训练误差为Nan
需要对数据进行归一化,否则训练误差为Nan