Python h2o数值列将转换为枚举

Python h2o数值列将转换为枚举,python,h2o,Python,H2o,我有一个拼花文件,它由数字列和分类列组成 我想创建一个GBM模型,稍后我可以在java程序中实现它的mojo进行推理。 问题是,到目前为止,我将数据中的空值插补为0表示数值列,将“空”表示分类列 当我在h2o中执行此操作时,我可以使用col_types参数在h2o导入_文件中强制执行我的方案 当我不使用插补,让h2o自行插补时,它会将我的数值列转换为枚举类型 如果我试图在不进行插补的情况下强制导入类型,则所有数字特征都会出现以下错误: error = 'Unsupported type ove

我有一个拼花文件,它由数字列和分类列组成

我想创建一个GBM模型,稍后我可以在java程序中实现它的mojo进行推理。 问题是,到目前为止,我将数据中的空值插补为0表示数值列,将“空”表示分类列

当我在h2o中执行此操作时,我可以使用col_types参数在h2o导入_文件中强制执行我的方案

当我不使用插补,让h2o自行插补时,它会将我的数值列转换为枚举类型

如果我试图在不进行插补的情况下强制导入类型,则所有数字特征都会出现以下错误:

 error = 'Unsupported type override (String -> Numeric). Column XXX will be parsed as String'
因此,连续功能将无法得到正确的处理…为什么要将其转换为枚举?
如何避免这种转换?

H2O应该识别拼花地板文件的数据类型,并预先设置它们。保存拼花地板文件时,可以将数字列设置为strings/category。将列数据类型保存为的拼花地板文件是什么

我在H2O3.30.0.1上验证了数据类型将由拼花文件定义的内容来识别。见下文

使用iris数据集中缺少的值创建数字列(
sepal\u len
) 返回:

sepal_len    float64
sepal_wid    float64
petal_len    float64
petal_wid    float64
class         object
dtype: object
sepal_len   sepal_wid   petal_len   petal_wid   class
nan         3.5         1.4         0.2         Iris-setosa
4.9         3           1.4         0.2.        Iris-setosa
{'sepal_len': 'real',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
{'sepal_len': 'enum',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
^列是浮点数

#Read in h2o
iris2 = h2o.import_file('iris.parquet')
iris2.head(2)
返回:

sepal_len    float64
sepal_wid    float64
petal_len    float64
petal_wid    float64
class         object
dtype: object
sepal_len   sepal_wid   petal_len   petal_wid   class
nan         3.5         1.4         0.2         Iris-setosa
4.9         3           1.4         0.2.        Iris-setosa
{'sepal_len': 'real',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
{'sepal_len': 'enum',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
检查数据类型是否与拼花地板(熊猫制造)的定义相同 返回:

sepal_len    float64
sepal_wid    float64
petal_len    float64
petal_wid    float64
class         object
dtype: object
sepal_len   sepal_wid   petal_len   petal_wid   class
nan         3.5         1.4         0.2         Iris-setosa
4.9         3           1.4         0.2.        Iris-setosa
{'sepal_len': 'real',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
{'sepal_len': 'enum',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
^H2O帧数据类型为实数(非枚举)

将数据框更改为
str
列,并另存为新的拼花地板文件: 返回:

sepal_len    float64
sepal_wid    float64
petal_len    float64
petal_wid    float64
class         object
dtype: object
sepal_len   sepal_wid   petal_len   petal_wid   class
nan         3.5         1.4         0.2         Iris-setosa
4.9         3           1.4         0.2.        Iris-setosa
{'sepal_len': 'real',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}
{'sepal_len': 'enum',
 'sepal_wid': 'real',
 'petal_len': 'real',
 'petal_wid': 'real',
 'class': 'enum'}