【问题标题】:H2O handling of multi-attributed columns多属性色谱柱的 H2O 处理
【发布时间】:2017-08-10 02:58:10
【问题描述】:

H2O 如何处理多属性分类特征(即具有逗号分隔值的列,例如 ('1,2,3', '1,4', '1,2')?我需要将它们拆分为手动多列(one-hot 编码)?

更具体地说,假设数据是一个制表符分隔的文件,如下所示:

col1 col2 1 1,2,3 2 1,4 1 1,2

【问题讨论】:

  • H2O 需要表格数据。请以表格格式举例说明您的数据是什么样的。我无法判断这些值是否代表您数据的一个单元格...我不确定您如何将这些数据保存在 CSV 文件中,除非该单元格是如下所示的字符串:"('1,2,3', '1,4', '1,2')"
  • 我有一个 tsv(制表符分隔文件),其中一列有逗号分隔值。我添加了示例,但您可以假设数据只是一个 pandas DataFrame。
  • 好的,谢谢,这更有意义。

标签: h2o


【解决方案1】:

答案取决于这些数字代表什么。

单热编码涉及获取一个分类列并将该单列扩展为一组布尔列。这里的假设是,在这些布尔列中,训练观察一次只能属于其中一列(这就是 one-hot 中的“一”的来源)——只有一列可以是“活动的”。

如果您想考虑1,2,3 它是自己的类别(而不是三个类别),那么如果您想以这种方式表示数据,那就没问题了。在这种情况下,您可以将数据保持原样,因为 H2O 会自动对引擎盖下的分类列进行一次性编码,只要它们被编码为因子(又名枚举)类型。假设您的数据框只是这三行,那么将有三个类别:1,2,31,41,2

如果col2 中的1,2,3 值表示第1 行与三个独立的独立类别相关联,那么您应该手动将col2 替换为C 个二进制指示符列,其中C 是类别的总数。同样,如果这三行代表您的整个数据框,那么您将 col2 替换为四列。您的新数据框将如下所示:

col1 col2_1 col2_2 col2_3 col2_4  
1    1      1      1      0
2    1      0      0      1
1    1      1      0      0 

【讨论】:

  • 谢谢,这完全有道理,只是想知道我是否必须手动完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 2020-09-24
  • 2011-05-10
相关资源
最近更新 更多