A FeatureGroup object is a transient object designed for handling a collection of Feature objects. The object cannot be saved or added to a catalog.
Creating a FeatureGroup¶
A FeatureGroup is returned by the
aggregate_over() method used to define Aggregate Over a Window and Cross Aggregate Over a Window features.
In the following example, the FeatureGroup consists of two Feature objects: CustomerDiscounts_7d and CustomerDiscounts_28d.
# Group items by the column GroceryCustomerGuid that references the customer entity items_by_customer = items_view.groupby("GroceryCustomerGuid") # Declare features that measure the discount received by customer customer_discounts = items_by_customer.aggregate_over( "Discount", method=fb.AggFunc.SUM, feature_names=["CustomerDiscounts_7d", "CustomerDiscounts_28d"], fill_value=0, windows=['7d', '28d'] )
A FeatureGroup object can also be created using its constructor that takes a list of Feature, FeatureList, and other FeatureGroup objects as input.
feature_list = catalog.get_feature_list(<feature_list_name>) feature = catalog.get_feature(<feature_name>) my_feature_group = FeatureGroup( [customer_discounts, feature_list, feature] )
Dropping and Adding Features to a FeatureGroup¶
You can list the features within the FeatureGroup using the
Features can be removed from the FeatureGroup by specifying their names using the
You can add a derived feature and assign it a name.
my_feature_group["CustomerDiscounts_Change_7dvs28d"] = ( Customer_discounts["CustomerDiscounts_7d"] / Customer_discounts["CustomerDiscounts_28d"] )
Saving features within a FeatureGroup¶
Any unsaved features within the FeatureGroup can be saved using the
Previewing a FeatureGroup¶
A FeatureGroup can be previewed using the
preview() method and a small observation set of up to 50 rows, which must include historical points-in-time and primary entity key values from the FeatureGroup.