PRODUCT Time Since Latest invoice Timestamp
SDK code to create PRODUCT_Time_Since_Latest_invoice_Timestamp¶
Feature description:
Time (in days) Since Latest invoice Timestamp for the product
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")
Get view from table¶
In [ ]:
Copied!
# Get view from INVOICEITEMS item table.
invoiceitems_view = catalog.get_view("INVOICEITEMS")
# Get view from INVOICEITEMS item table.
invoiceitems_view = catalog.get_view("INVOICEITEMS")
Do window aggregation from INVOICEITEMS¶
See SDK reference for features
See SDK reference to groupby a view
See SDK reference to do aggregation over time
In [ ]:
Copied!
# Group INVOICEITEMS view by product entity (GroceryProductGuid).
invoiceitems_view_by_product =\
invoiceitems_view.groupby(['GroceryProductGuid'])
# Group INVOICEITEMS view by product entity (GroceryProductGuid).
invoiceitems_view_by_product =\
invoiceitems_view.groupby(['GroceryProductGuid'])
In [ ]:
Copied!
# Get Latest invoice Timestamp for the product
product_latest_invoice_timestamp =\
invoiceitems_view_by_product.aggregate_over(
"Timestamp", method="latest",
feature_names=["PRODUCT_Latest_invoice_Timestamp"],
windows=[None]
)["PRODUCT_Latest_invoice_Timestamp"]
# Get Latest invoice Timestamp for the product
product_latest_invoice_timestamp =\
invoiceitems_view_by_product.aggregate_over(
"Timestamp", method="latest",
feature_names=["PRODUCT_Latest_invoice_Timestamp"],
windows=[None]
)["PRODUCT_Latest_invoice_Timestamp"]
Derive Time Since feature from latest timestamp¶
In [ ]:
Copied!
# Compare PRODUCT_Latest_invoice_Timestamp with point-in-time in days
product_time_since_latest_invoice_timestamp = (
fb.RequestColumn.point_in_time() - product_latest_invoice_timestamp
).dt.day
# Give a name to new feature
product_time_since_latest_invoice_timestamp.name = \
"PRODUCT_Time_Since_Latest_invoice_Timestamp"
# Compare PRODUCT_Latest_invoice_Timestamp with point-in-time in days
product_time_since_latest_invoice_timestamp = (
fb.RequestColumn.point_in_time() - product_latest_invoice_timestamp
).dt.day
# Give a name to new feature
product_time_since_latest_invoice_timestamp.name = \
"PRODUCT_Time_Since_Latest_invoice_Timestamp"
Preview feature¶
Read on the feature primary entity concept
Read on the serving entity concept
In [ ]:
Copied!
#Check the primary entity of the feature'
product_time_since_latest_invoice_timestamp.primary_entity
#Check the primary entity of the feature'
product_time_since_latest_invoice_timestamp.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 PRODUCT_Time_Since_Latest_invoice_Timestamp
product_time_since_latest_invoice_timestamp.preview(
preview_table
)
#Preview PRODUCT_Time_Since_Latest_invoice_Timestamp
product_time_since_latest_invoice_timestamp.preview(
preview_table
)
Save feature¶
In [ ]:
Copied!
# Save feature
product_time_since_latest_invoice_timestamp.save()
# Save feature
product_time_since_latest_invoice_timestamp.save()
Add description and see feature definition file¶
In [ ]:
Copied!
# Add description
product_time_since_latest_invoice_timestamp.update_description(
"Time (in days) Since Latest invoice Timestamp for the product"
)
# See feature definition file
product_time_since_latest_invoice_timestamp.definition
# Add description
product_time_since_latest_invoice_timestamp.update_description(
"Time (in days) Since Latest invoice Timestamp for the product"
)
# See feature definition file
product_time_since_latest_invoice_timestamp.definition