PRODUCT Consistency of item TotalCost across invoice Weekdays 14d vs 28d
SDK code to create PRODUCT_Consistency_of_item_TotalCost_across_invoice_Weekdays_14d_vs_28d¶
Feature description:
Consistency score of the product measured by the Cosine Similarity between the Distribution representing the cumulative TotalCost of item, categorized by their respective invoice's Weekday, for both the 14d and 28d periods.
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', '28d']
windows = ['14d', '28d']
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")
In [ ]:
Copied!
# Extract day_of_week date part from Timestamp column for INVOICEITEMS view.
invoiceitems_view["Weekday of invoice"] = invoiceitems_view["Timestamp"].dt.day_of_week
# Extract day_of_week date part from Timestamp column for INVOICEITEMS view.
invoiceitems_view["Weekday of invoice"] = invoiceitems_view["Timestamp"].dt.day_of_week
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) across different Weekday of
# invoices.
invoiceitems_view_by_product_across_weekday_of_invoice =\
invoiceitems_view.groupby(
['GroceryProductGuid'], category="Weekday of invoice"
)
# Group INVOICEITEMS view by product entity (GroceryProductGuid) across different Weekday of
# invoices.
invoiceitems_view_by_product_across_weekday_of_invoice =\
invoiceitems_view.groupby(
['GroceryProductGuid'], category="Weekday of invoice"
)
In [ ]:
Copied!
# Distribution representing the cumulative TotalCost of item, categorized by their respective
# invoice's Weekday, for the product over time.
feature_group =\
invoiceitems_view_by_product_across_weekday_of_invoice.aggregate_over(
"TotalCost", method=fb.AggFunc.SUM,
feature_names=[
"PRODUCT_item_TotalCost_across_invoice_Weekdays"
+ "_" + w for w in windows
],
windows=windows
)
# Get PRODUCT_item_TotalCost_across_invoice_Weekdays_14d object from feature group.
product_item_totalcost_across_invoice_weekdays_14d =\
feature_group["PRODUCT_item_TotalCost_across_invoice_Weekdays_14d"]
# Get PRODUCT_item_TotalCost_across_invoice_Weekdays_28d object from feature group.
product_item_totalcost_across_invoice_weekdays_28d =\
feature_group["PRODUCT_item_TotalCost_across_invoice_Weekdays_28d"]
# Distribution representing the cumulative TotalCost of item, categorized by their respective
# invoice's Weekday, for the product over time.
feature_group =\
invoiceitems_view_by_product_across_weekday_of_invoice.aggregate_over(
"TotalCost", method=fb.AggFunc.SUM,
feature_names=[
"PRODUCT_item_TotalCost_across_invoice_Weekdays"
+ "_" + w for w in windows
],
windows=windows
)
# Get PRODUCT_item_TotalCost_across_invoice_Weekdays_14d object from feature group.
product_item_totalcost_across_invoice_weekdays_14d =\
feature_group["PRODUCT_item_TotalCost_across_invoice_Weekdays_14d"]
# Get PRODUCT_item_TotalCost_across_invoice_Weekdays_28d object from feature group.
product_item_totalcost_across_invoice_weekdays_28d =\
feature_group["PRODUCT_item_TotalCost_across_invoice_Weekdays_28d"]
In [ ]:
Copied!
# Derive Consistency feature from cosine similarity between
# PRODUCT_item_TotalCost_across_invoice_Weekdays_14d
# and PRODUCT_item_TotalCost_across_invoice_Weekdays_28d
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d =\
product_item_totalcost_across_invoice_weekdays_14d.cd.cosine_similarity(
product_item_totalcost_across_invoice_weekdays_28d
)
# Give a name to new feature
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.name = \
"PRODUCT_Consistency_of_item_TotalCost_across_invoice_Weekdays_14d_vs_28d"
# Derive Consistency feature from cosine similarity between
# PRODUCT_item_TotalCost_across_invoice_Weekdays_14d
# and PRODUCT_item_TotalCost_across_invoice_Weekdays_28d
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d =\
product_item_totalcost_across_invoice_weekdays_14d.cd.cosine_similarity(
product_item_totalcost_across_invoice_weekdays_28d
)
# Give a name to new feature
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.name = \
"PRODUCT_Consistency_of_item_TotalCost_across_invoice_Weekdays_14d_vs_28d"
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_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.primary_entity
#Check the primary entity of the feature'
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.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_Consistency_of_item_TotalCost_across_invoice_Weekdays_14d_vs_28d
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.preview(
preview_table
)
#Preview PRODUCT_Consistency_of_item_TotalCost_across_invoice_Weekdays_14d_vs_28d
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.preview(
preview_table
)
Save feature¶
In [ ]:
Copied!
# Save feature
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.save()
# Save feature
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.save()
Add description and see feature definition file¶
In [ ]:
Copied!
# Add description
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.update_description(
"Consistency score of the product measured by the Cosine Similarity "
"between the Distribution representing the cumulative TotalCost of "
"item, categorized by their respective invoice's Weekday, for both the "
"14d and 28d periods."
)
# See feature definition file
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.definition
# Add description
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.update_description(
"Consistency score of the product measured by the Cosine Similarity "
"between the Distribution representing the cumulative TotalCost of "
"item, categorized by their respective invoice's Weekday, for both the "
"14d and 28d periods."
)
# See feature definition file
product_consistency_of_item_totalcost_across_invoice_weekdays_14d_vs_28d.definition