aksnzhy / xlearn

High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.
https://xlearn-doc.readthedocs.io/en/latest/index.html
Apache License 2.0
3.09k stars 519 forks source link

FFM模型输出的一阶项weight的数量跟特征取值数量相同? #346

Closed Anncastle closed 4 years ago

Anncastle commented 4 years ago

如题,应该是有9个field,一阶项应该有9个,但是却输出了300多个(跟特征取值数量相同)的一阶项,求解决 我的libffm数据格式: image

model.txt的输出: image

gdhzLZ commented 4 years ago

请问您是怎么生成的ffm文件的,使用他的api吗?

gdhzLZ commented 4 years ago

关于一阶项个数,他的维度和交叉项的个数是一样的,只不过交叉项的第二维会比他多,可以去看一下ffm的表达式就知道了。

youess commented 4 years ago

建议去理解下fm的再来提问,模型看到的特征值是你ffm格式中的hash值个数,不是field个数。 @Anncastle

Anncastle commented 4 years ago

建议去理解下fm的再来提问,模型看到的特征值是你ffm格式中的hash值个数,不是field个数。 @Anncastle

@youess 我重新看了一下,稍微理解了一下,所以FM里面的特征其实是说原始的类别特征做过one-hot之后来算的特征吗

Anncastle commented 4 years ago

请问您是怎么生成的ffm文件的,使用他的api吗?

@1030617255 自己写,api里没有

Anncastle commented 4 years ago

关于一阶项个数,他的维度和交叉项的个数是一样的,只不过交叉项的第二维会比他多,可以去看一下ffm的表达式就知道了。

@1030617255 我理解了,谢谢,因为FM和FFM都对类别进行了one-hot,close了