INVOICE Variability of product ProductGroup based on item TotalCost
SDK code to create INVOICE_Variability_of_product_ProductGroup_based_on_item_TotalCost¶
Feature description:
The feature evaluates the distribution of a invoice's item's TotalCost across various product's ProductGroup categories using entropy. Higher entropy signifies a more uniform distribution of item's TotalCost across categories, while lower entropy suggests a concentration within specific product's ProductGroup categories.
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 GROCERYPRODUCT dimension table.
groceryproduct_view = catalog.get_view("GROCERYPRODUCT")
# Get view from GROCERYPRODUCT dimension table.
groceryproduct_view = catalog.get_view("GROCERYPRODUCT")
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")
Join views¶
In [ ]:
Copied!
# Join GROCERYPRODUCT view to INVOICEITEMS view.
invoiceitems_view = invoiceitems_view.join(groceryproduct_view, rsuffix="")
# Join GROCERYPRODUCT view to INVOICEITEMS view.
invoiceitems_view = invoiceitems_view.join(groceryproduct_view, rsuffix="")
Do aggregation by invoice in INVOICEITEMS¶
See SDK reference for features
See SDK reference to groupby a view
See SDK reference to do aggregation by invoice
See list of aggregation operations
See SDK reference to add an aggregation by invoice to the event view
In [ ]:
Copied!
# Group INVOICEITEMS view by invoice entity (GroceryInvoiceGuid) across different ProductGroups.
invoiceitems_view_by_invoice_across_productgroup =\
invoiceitems_view.groupby(
"GroceryInvoiceGuid", category="ProductGroup"
)
# Group INVOICEITEMS view by invoice entity (GroceryInvoiceGuid) across different ProductGroups.
invoiceitems_view_by_invoice_across_productgroup =\
invoiceitems_view.groupby(
"GroceryInvoiceGuid", category="ProductGroup"
)
In [ ]:
Copied!
# Distribution representing the cumulative TotalCost of item, categorized by their respective
# product's ProductGroup, for the invoice.
invoice_item_totalcost_across_product_productgroups =\
invoiceitems_view_by_invoice_across_productgroup.aggregate(
"TotalCost", method=fb.AggFunc.SUM,
feature_name="INVOICE_item_TotalCost_across_product_ProductGroups"
)
# Distribution representing the cumulative TotalCost of item, categorized by their respective
# product's ProductGroup, for the invoice.
invoice_item_totalcost_across_product_productgroups =\
invoiceitems_view_by_invoice_across_productgroup.aggregate(
"TotalCost", method=fb.AggFunc.SUM,
feature_name="INVOICE_item_TotalCost_across_product_ProductGroups"
)
Derive feature from aggregation across categories¶
In [ ]:
Copied!
# Get Variability of product ProductGroup based on item TotalCost from
# INVOICE_item_TotalCost_across_product_ProductGroups
invoice_variability_of_product_productgroup_based_on_item_totalcost =\
invoice_item_totalcost_across_product_productgroups.cd.entropy()
# Give a name to new feature
invoice_variability_of_product_productgroup_based_on_item_totalcost.name = \
"INVOICE_Variability_of_product_ProductGroup_based_on_item_TotalCost"
# Get Variability of product ProductGroup based on item TotalCost from
# INVOICE_item_TotalCost_across_product_ProductGroups
invoice_variability_of_product_productgroup_based_on_item_totalcost =\
invoice_item_totalcost_across_product_productgroups.cd.entropy()
# Give a name to new feature
invoice_variability_of_product_productgroup_based_on_item_totalcost.name = \
"INVOICE_Variability_of_product_ProductGroup_based_on_item_TotalCost"
Preview feature¶
Read on the feature primary entity concept
Read on the serving entity concept
In [ ]:
Copied!
#Check the primary entity of the feature'
invoice_variability_of_product_productgroup_based_on_item_totalcost.primary_entity
#Check the primary entity of the feature'
invoice_variability_of_product_productgroup_based_on_item_totalcost.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 INVOICE_Variability_of_product_ProductGroup_based_on_item_TotalCost
invoice_variability_of_product_productgroup_based_on_item_totalcost.preview(
preview_table
)
#Preview INVOICE_Variability_of_product_ProductGroup_based_on_item_TotalCost
invoice_variability_of_product_productgroup_based_on_item_totalcost.preview(
preview_table
)
Save feature¶
In [ ]:
Copied!
# Save feature
invoice_variability_of_product_productgroup_based_on_item_totalcost.save()
# Save feature
invoice_variability_of_product_productgroup_based_on_item_totalcost.save()
Add description and see feature definition file¶
In [ ]:
Copied!
# Add description
invoice_variability_of_product_productgroup_based_on_item_totalcost.update_description(
"The feature evaluates the distribution of a invoice's item's TotalCost"
" across various product's ProductGroup categories using entropy. "
"Higher entropy signifies a more uniform distribution of item's "
"TotalCost across categories, while lower entropy suggests a "
"concentration within specific product's ProductGroup categories."
)
# See feature definition file
invoice_variability_of_product_productgroup_based_on_item_totalcost.definition
# Add description
invoice_variability_of_product_productgroup_based_on_item_totalcost.update_description(
"The feature evaluates the distribution of a invoice's item's TotalCost"
" across various product's ProductGroup categories using entropy. "
"Higher entropy signifies a more uniform distribution of item's "
"TotalCost across categories, while lower entropy suggests a "
"concentration within specific product's ProductGroup categories."
)
# See feature definition file
invoice_variability_of_product_productgroup_based_on_item_totalcost.definition