首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在现场感知的分解机器中使用散列技巧

如何在现场感知的分解机器中使用散列技巧
EN

Data Science用户
提问于 2020-06-01 18:18:27
回答 2查看 363关注 0票数 4

事实证明,现场感知分解机 (FFM)在点击率预测任务中是非常有用的.他们的优势之一来自于散列技巧 (特性散列)。

当你使用从sci-kit-学的散列技巧时,你会得到一个稀疏矩阵。

那么,如何使用这样一个稀疏矩阵来实现字段感知的分解机器呢?SKLearn没有FFM的实现。

编辑1:我想要执行功能哈希/哈希技巧,以确定,以便能够规模的FFM到数百万的功能。

编辑2:熊猫不能扩展到许多领域。我还希望将任意CSV (包含数值和分类特性)转换为LIBFFM (字段:index:value)格式,并同时执行散列技巧(最好不使用Pandas)。即使在执行散列技巧之后,Pandas2FFM也不会扩展。

EN

回答 2

Data Science用户

回答已采纳

发布于 2020-06-05 20:02:14

一种选择是使用xLearn,一种适用于FFM的scikit兼容包,它可以自动处理该问题。

如果需要特性散列,可以编写自定义特性散列函数

代码语言:javascript
复制
import hashlib

def hash_str(string: str, n_bins: int) -> int:
    return int(hashlib.md5(string.encode('utf8')).hexdigest(), 16) % (n_bins-1) + 1
票数 1
EN

Data Science用户

发布于 2020-06-07 16:28:35

我通常不使用sklearn作为编码,但是“类别编码程序包”:

你考虑过使用他们的哈希编码器吗?

该编码器的优点是它不维护一个可观察类别的字典。因此,编码器不会在设计的数据评分过程中增加大小并接受新的值。

输出是int64特性。类别编码器API易于使用,可以在转换器中实现。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/75248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档