h2o - 对枚举/分类类型列求和时,h2o 数据框 GroupBy 和函数在做什么?
问题描述
想知道当列类型是分类(特别是 h2oenum
类型)时,对 h2o 数据帧 GroupBy 对象中的列求和时会发生什么。
将 pandas 数据帧转换为 H2o 数据帧。然后我按某一列对行进行分组并对其他列求和,例如。
location_id price store
------------------
1 10 JCP
1 15 SBUX
3 20 HOL
then after grouping and summing; df.group_by('location_id').sum(['price', 'store'])
location_id price store
------------------
1 25 <some number>
3 20 <some number>
想知道在将分类列值添加在一起时这里发生了什么,并且似乎无法在 h2o文档中找到 GroupBy 对象的 sum() 源代码。
解决方案
查看分类编码的 h2o 文档(http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html),enum
类型(我是用于我的 h2o 数据框中的分类类型)我们看到
枚举或枚举:保持数据集不变,在内部将字符串映射为整数,并使用这些整数进行拆分 - 当 nbins_cats 太小而无法解析所有级别时通过序数性质或通过执行完美组拆分的位集。每个类别都是一个单独的类别;它的名称(或编号)无关紧要。例如,将字符串映射为 Enum 的整数后,您可以将 {0, 1, 2, 3, 4, 5} 拆分为 {0, 4, 5} 和 {1, 2, 3}。
因此,如果我正确地解释了这一点(有人请告诉这是否不正确),正在发生的事情是,当将 pandas 框架转换为 h2o 时,它会通过分配为enum
类型的列的不同值并分配一个该标签的内部唯一 ID 整数值(用于训练和预测等,但我们通常看不到)。因此,在df.group_by(.).sum(.)
对这些enum
列执行 a 时,我们只是将数据帧转换为 h2o 数据帧时 h2o 分配的那些列的所有内部映射整数值相加。
同样,如果这不是对这里发生的事情的最完整解释,请告诉我。
推荐阅读
- android - Android:触摸外部时如何关闭 DatePicker DialogFragment?
- sql - 如果存储过程返回 1,则抛出错误,否则继续
- javascript - 我的 TouchableOpacity 在 react-native 中不起作用
- ocr - 有谁知道 Tesseract - OCR 后处理/拼写检查是如何工作的?
- c# - 根据 ValueMember 从 Combobox 获取索引
- python - 如何使用or-tools在车辆路线问题中仅使部分旅行团返回站点?
- oauth - 如何在“Web 服务”场景中应用 OAuth2?
- php - 将表单中的值添加到函数中
- docker - Windows 10 上的 Docker 如何访问网络驱动器?
- angular - 在 Angular 项目中安装 Bootstrap