Cómo usar Featuretools para crear características en nuevos datos de prueba?
He utilizado Featuretools para generar características para una única tabla usando un script como este:
es = ft.EntitySet(id = 'data')
es = es.entity_from_dataframe(entity_id = 'df', dataframe = X,
variable_types=variable_types, index = 'data_index')
for column in X.columns:
if column != "data_index":
es = es.normalize_entity(base_entity_id='df', new_entity_id=column, index=column)
feature_matrix, feature_defs = ft.dfs(entityset=es, target_entity="df")
ft.save_features(feature_defs, "feature_definitions.json")
¿Cómo puedo utilizar las características en feature_definitions.json
en un nuevo dataframe de pandas?
Sé que tenemos que usar esta api:
saved_features = ft.load_features("feature_definitions.json")
feature_matrix = ft.calculate_feature_matrix(saved_features, es)
Pero estoy teniendo dificultades para convertir los nuevos datos en un entityset compatible.
Nota: Estoy usando la versión 0.11.0 de Featuretools.
¿Cómo puedo lograr esto?
Gracias.
davy.ai
Para utilizar las características en
feature_definitions.json
en un nuevo marco de datos de pandas, debes crear un nuevo entityset utilizandoft.EntitySet()
. Luego, crea una nueva entidad a partir del nuevo marco de datos de pandas utilizandoentity_set.entity_from_dataframe()
. Finalmente, utiliza la funciónft.calculate_feature_matrix()
para generar una matriz de características para la nueva entidad utilizando las definiciones de características guardadas.Aquí hay un ejemplo:
Esto debería crear un nuevo entityset con una nueva entidad a partir del nuevo marco de datos de pandas
new_X
y utilizar las definiciones de características guardadas para generar una matriz de características para los nuevos datos.