H2O解析文件类型的方式不同

问题描述 投票:1回答:1

我在解析数据时看到文件类型之间的奇怪行为。我使用的是镶木地板和CSV格式的小型数据集(200行,34列)。

当我解析CSV文件时,我可以看到布尔值被正确地标识为枚举,请参见下面(男性/女性):

print(h2o_frame_csv.types)

{'C1': 'int', 'userId': 'int', 'itemId': 'int', 'rating': 'int', 'timestamp': 'int', 'movieId': 'int', 'movieTitle': 'enum', 'releaseDate': 'time', 'videoReleaseDate': 'int', 'imdbUrl': 'enum', 'unknown': 'int', 'Action': 'int', 'Adventure': 'int', 'Animation': 'int', 'Childrens': 'int', 'Comedy': 'int', 'Crime': 'int', 'Documentary': 'int', 'Drama': 'int', 'Fantasy': 'int', 'FilmNoir': 'int', 'Horror': 'int', 'Musical': 'int', 'Mystery': 'int', 'Romance': 'int', 'SciFi': 'int', 'Thriller': 'int', 'War': 'int', 'Western': 'int', 'age': 'int', 'occupation': 'enum', 'zipCode': 'int', 'male': 'enum', 'female': 'enum'}

但是,当我使用文件的拼花形式时,我看到相同的值被视为int值

print(h2o_frame_parquet.types)

{'Unnamed: 0': 'int', 'userId': 'int', 'itemId': 'int', 'rating': 'int', 'timestamp': 'int', 'movieId': 'int', 'movieTitle': 'enum', 'releaseDate': 'time', 'videoReleaseDate': 'int', 'imdbUrl': 'enum', 'unknown': 'int', 'Action': 'int', 'Adventure': 'int', 'Animation': 'int', 'Childrens': 'int', 'Comedy': 'int', 'Crime': 'int', 'Documentary': 'int', 'Drama': 'int', 'Fantasy': 'int', 'FilmNoir': 'int', 'Horror': 'int', 'Musical': 'int', 'Mystery': 'int', 'Romance': 'int', 'SciFi': 'int', 'Thriller': 'int', 'War': 'int', 'Western': 'int', 'age': 'int', 'occupation': 'enum', 'zipCode': 'int', 'male': 'int', 'female': 'int', '__index_level_0__': 'int'}

[这在尝试训练分类器模型时成为问题。由于h2o认为这是回归变量而不是二项式变量,因此某些指标不可用。见下文

print(f"For {file_type} dataset the metric class is {type(xgb.model_performance(xval=True))}")

For csv dataset the metric class is <class 'h2o.model.metrics_base.H2OBinomialModelMetrics'>

For parquet dataset the metric class is <class 'h2o.model.metrics_base.H2ORegressionModelMetrics'>

解析Parquet文件时将布尔值视为数字(int)的原因是什么?布尔值不像CSV文件那样被视为绝对枚举吗?

python csv parquet h2o
1个回答
0
投票

[根据以下评论和来自@MichalKurka的软件更新进行了修订。]

Parquet文件包含有关列类型的元数据。 H2O-3支持元数据。

在csv文件中,会猜测列类型。

在H2O-3版本3.28.0.1及更高版本中,镶木地板数据集中具有布尔类型的列被视为枚举值(也称为分类值)。 H2O-3的早期版本将镶木地板布尔列作为数值。

© www.soinside.com 2019 - 2024. All rights reserved.