-
Notifications
You must be signed in to change notification settings - Fork 283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于DeepFM模型 #2
Comments
已经push了 |
可以了 |
tiny_train_input.csv 是criteo数据集的一个sample,我主要是利用了criteo 冠军队伍的特征工程方法生成的,但是没有包含他们的gbdt的叶子节点特征。所以只有39维。 利用他们的脚本生成libsvm格式的样本,再调用我的数据处理脚本里面的函数就可以了。当然 你可以有其他的特征工程方法,只要对应的数据的格式如我给的那样的格式就可以了 |
你可以尝试将训练集和测试集合并生成一个category_emb.csv 其实训练集和测试集的编码应该是要求一致的。如果不一致,那特征都是错误的。。。结果怎么会好?。。。 |
非常感谢你的解答,我尝试将tr.ffm和te.ffm合并成为了一个文件(使用的是cat tr.ffm te.ffm > data.ffm),然后使用data.ffm生成了category_emb.csv。现在成功跑起来了。接下来认真研究一下你的代码,还有许多地方不是很懂。 |
你好,在冠军的解决方案中他将数值类型的变量也进行了hash,然后处理方式和类别相同,也进行embedding,请问这样做的意义是啥?我觉得这样丢失了本来的相对大小信息。 @nzc @CarlosDGQ |
说一下我的看法,数据集中有13个数值类型的特征(都为int类型),26个categorical特征。在连续特征和categorical特征之间我觉得是不存在相对大小信息的,因为categorical可能是ip、userId等hash之后生成的,(ip类似的信息和连续值特征没有相对大小信息吧)但是具体数据集描述文件也没有给出,我们并不知道每个字段的意义。对于数值类型的特征相对大小在hash之后,在求出其整数表示,相对大小的信息应该没有发生丢失。代码中对大于2的连续特征进行了取对数,对于小于2的特征和大于2的特征可能会存在一定的相对大小信息的丢失,但是也比较小。欢迎讨论。 |
@CarlosDGQ |
在CTR预估场景中,一般连续值特征最后也是需要离散化的。连续值特征的处理方式要根据分布会有不同的处理方法。感觉冠军队伍是分析过的,所以才采用了那样的特征处理方法。至于信息损失,其实个人感觉还好。连续值特征的信息损失一般来源于分桶的时候,因为冠军队伍后面用了gbdt,所以两者结合的话,感觉信息损失不会太大。 |
@CarlosDGQ 你好,我想问你一下tr.ffm和te.ffm文件是怎么生成的 |
@TaylorWPY 你好,我是直接使用https://github.com/guestwalk/kaggle-2014-criteo脚本生成的。按照作者GitHub上的步骤生成就可以了。 |
@CarlosDGQ @TaylorWPY 您好,我用了https://github.com/guestwalk/kaggle-2014-criteo脚本生成的tr.ffm文件的时候执行到cmd = 'python converters/parallelizer-a.py -s {nr_thread} python converters/pre-a.py tr.csv tr.gbdt.dense tr.gbdt.sparse'.format(nr_thread=NR_THREAD) |
你好,我想请教一下deepfm的输入可以是评论文本表示的user,item特征吗? |
你好,我在fork你的代码之后,运行main.py文件,报如下错误,
缺少**./data/category_emb.csv**这个文件,我想问这个文件我应该怎么生成啊?
谢谢。
已经更新
The text was updated successfully, but these errors were encountered: