0

为什么使用 WEEKDAY、DayOfMonth、YEAR、MonthOfYear 等转换原语创建的新特征被创建为整数,即连续特征?它们不应该是分类特征吗?我的意思是在创建这些功能时,这些列的 dtype 不应该是“object”而不是“int”吗?

4

1 回答 1

1

分类或有序特征最好存储为整数值。这是因为将数据表示为整数比表示为字符串更有效。例如,[1, 4, 3, 1] 比 ["January", "April", "March", "January"] 需要的内存要少得多。您可以使用返回的特征定义列表来确定特征的数据类型ft.dfs

import featuretools as ft
es = ft.demo.load_mock_customer(return_entityset=True)
feature_matrix, feature_defs = ft.dfs(entityset=es,
                                      target_entity="customers",
                                      agg_primitives=[],
                                      trans_primitives=["month"])

feature_defs是特征定义的列表

[<Feature: zip_code>, <Feature: MONTH(join_date)>]

我们可以像这样得到变量类型

feature_defs[1].variable_type

这返回

featuretools.variable_types.variable.Ordinal

要将离散特征编码为机器学习的数字特征,请查看ft.encode_features.

于 2018-06-26T21:02:42.690 回答