Derived feature (like "join")
Raptor is introducing a new way to join between pieces of data - "dependencies".
As explained earlier, we write features as functions and working in the context of a "row-level" approach.
To implement a feature that "joins" a data from two different sources, we just need to call another feature that calculates the data we need.
A relatively simple example for this is the following "rate" feature:
@feature(keys=["user_id"], sourceless_markers_df=markers_df) # sourceless_markers_df is used for training
def views_purchases_rate(_, ctx: Context) -> float:
"""rate of two views and purchases"""
views, _ = ctx.get_feature("views+count")
purchases, _ = ctx.get_feature("purchases+count")
return views / purchases
In this code, we're using the
to request the values of
purchases+count for our
user_id key(by default, the function propagate
the keys). Then, we return the rate of the two. Simple right?