小编too*_*ool的帖子

如何处理传统机器学习中的字符串特征数组?

问题

假设我们有一个如下所示的数据框:

age  job         friends                                    label
23   'engineer'  ['World of Warcraft', 'Netflix', '9gag']   1
35   'manager'   NULL                                       0
...
Run Code Online (Sandbox Code Playgroud)

如果我们有兴趣训练一个使用年龄工作朋友作为特征来预测标签的分类器,我们将如何将这些特征转换为可以输入模型的数值数组?

  • 年龄非常简单,因为它已经是数字了。
  • 作业可以被散列/索引,因为它是一个分类变量。
  • Friends 是一个分类变量列表。我将如何表示此功能?

方法:

散列列表的每个元素。使用示例数据帧,让我们假设我们的哈希函数具有以下映射:

NULL                -> 0
engineer            -> 42069
World of Warcraft   -> 9001
Netflix             -> 14
9gag                -> 9
manager             -> 250
 
Run Code Online (Sandbox Code Playgroud)

让我们进一步假设朋友的最大长度为 5。任何较短的都会在右侧填充零。如果好友大小大于 5,则选择前 5 个元素。

方法一:散列和堆栈

特征转换后的数据框如下所示:

feature                             label
[23, 42069, 9001, 14, 9, 0, 0]      1
[35, 250,   0,    0,  0, 0, 0]      0
Run Code Online (Sandbox Code Playgroud)

限制 …

machine-learning feature-extraction deep-learning feature-engineering

6
推荐指数
1
解决办法
699
查看次数