CUSTOMER Max of Time between 2 invoices for the customer 14d
SDK code to create CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d¶
Feature description:
Max of Time between 2 invoices for the customer over a 14d period.
In [ ]:
Copied!
import featurebyte as fb
fb.use_profile("tutorial")
import featurebyte as fb
fb.use_profile("tutorial")
Activate catalog¶
In [ ]:
Copied!
catalog = fb.Catalog.activate("Grocery Dataset Tutorial")
catalog = fb.Catalog.activate("Grocery Dataset Tutorial")
Set windows for aggregation¶
In [ ]:
Copied!
windows = ['14d']
windows = ['14d']
Get view from table¶
In [ ]:
Copied!
# Get view from GROCERYINVOICE event table.
groceryinvoice_view = catalog.get_view("GROCERYINVOICE")
# Get view from GROCERYINVOICE event table.
groceryinvoice_view = catalog.get_view("GROCERYINVOICE")
Derive Inter-Event Time columns¶
In [ ]:
Copied!
# Extract InterEventTime by customer
groceryinvoice_view["Time between 2 invoices for the customer"] =\
(groceryinvoice_view["Timestamp"] - groceryinvoice_view["Timestamp"].lag("GroceryCustomerGuid")).dt.day
# Extract InterEventTime by customer
groceryinvoice_view["Time between 2 invoices for the customer"] =\
(groceryinvoice_view["Timestamp"] - groceryinvoice_view["Timestamp"].lag("GroceryCustomerGuid")).dt.day
Do window aggregation from GROCERYINVOICE¶
See SDK reference for features
See SDK reference to groupby a view
See SDK reference to do aggregation over time
In [ ]:
Copied!
# Group GROCERYINVOICE view by customer entity (GroceryCustomerGuid).
groceryinvoice_view_by_customer =\
groceryinvoice_view.groupby(['GroceryCustomerGuid'])
# Group GROCERYINVOICE view by customer entity (GroceryCustomerGuid).
groceryinvoice_view_by_customer =\
groceryinvoice_view.groupby(['GroceryCustomerGuid'])
Create feature from Inter-Event Time¶
In [ ]:
Copied!
# Get Max of Time between 2 invoices for the customer for the customer over time.
feature_group =\
groceryinvoice_view_by_customer.aggregate_over(
"Time between 2 invoices for the customer", method="max",
feature_names=[
"CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer"
+ "_" + w for w in windows
],
windows=windows
)
# Get CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d object from feature group.
customer_max_of_time_between_2_invoices_for_the_customer_14d =\
feature_group["CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d"]
# Get Max of Time between 2 invoices for the customer for the customer over time.
feature_group =\
groceryinvoice_view_by_customer.aggregate_over(
"Time between 2 invoices for the customer", method="max",
feature_names=[
"CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer"
+ "_" + w for w in windows
],
windows=windows
)
# Get CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d object from feature group.
customer_max_of_time_between_2_invoices_for_the_customer_14d =\
feature_group["CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d"]
Preview feature¶
Read on the feature primary entity concept
Read on the serving entity concept
In [ ]:
Copied!
#Check the primary entity of the feature'
customer_max_of_time_between_2_invoices_for_the_customer_14d.primary_entity
#Check the primary entity of the feature'
customer_max_of_time_between_2_invoices_for_the_customer_14d.primary_entity
In [ ]:
Copied!
#Get observation table: 'Preview Table with 10 items'
preview_table = catalog.get_observation_table(
"Preview Table with 10 items"
)
#Get observation table: 'Preview Table with 10 items'
preview_table = catalog.get_observation_table(
"Preview Table with 10 items"
)
In [ ]:
Copied!
#Preview CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d
customer_max_of_time_between_2_invoices_for_the_customer_14d.preview(
preview_table
)
#Preview CUSTOMER_Max_of_Time_between_2_invoices_for_the_customer_14d
customer_max_of_time_between_2_invoices_for_the_customer_14d.preview(
preview_table
)
Save feature¶
In [ ]:
Copied!
# Save feature
customer_max_of_time_between_2_invoices_for_the_customer_14d.save()
# Save feature
customer_max_of_time_between_2_invoices_for_the_customer_14d.save()
Add description and see feature definition file¶
In [ ]:
Copied!
# Add description
customer_max_of_time_between_2_invoices_for_the_customer_14d.update_description(
"Max of Time between 2 invoices for the customer over a 14d period."
)
# See feature definition file
customer_max_of_time_between_2_invoices_for_the_customer_14d.definition
# Add description
customer_max_of_time_between_2_invoices_for_the_customer_14d.update_description(
"Max of Time between 2 invoices for the customer over a 14d period."
)
# See feature definition file
customer_max_of_time_between_2_invoices_for_the_customer_14d.definition