Make features#
- autofeats.make_features.run(df: Dataset, suites: list, options: dict) DataFrame | None[source]#
This function will run the feature creation process based on the input dataframe, selected features and users’options.
Each suite will make one type of features:
numerical_statistics: numerical statistics (mean, kurtosis, etc) calculated for each numerical column;
numerical_in_categorical_groups: numerical statistics (mean, kurtosis, etc) calculated for each numerical column calculated inside each category
correlation: correlation between numerical features
categorical_statistics: count and count distinct applied to the categorical columns
first_observation_features: value of the first observation (in the time window defined)
last_observation_features: value of the last observation (in the time window defined)
lags: lag features
increase_rate: increase rate between features
The lags and increase_rate suites will be applied to the features table generated after the use of one or more suites.
Example:
import pyspark.sql.functions as F from examples.data import make_transactions from pyspark.sql import DataFrame, SparkSession from autofeats import make_features from autofeats.types import Dataset spark = ( SparkSession.builder.master("local[*]") .config("spark.executor.memory", "6g") .config("spark.driver.memory", "6g") .getOrCreate() ) transactions = spark.createDataFrame(make_transactions()) public = transactions.groupby(F.col("consumer_id").alias("consumer_id_ref")).agg( F.max("paymnent_date").alias("date_ref") ) df = Dataset( table=transactions, primary_key_col="transaction_id", table_join_key_col="consumer_id", table_join_date_col="paymnent_date", numerical_cols=["paid_value", "discount"], categorical_cols=["product_type", "buy_type"], public=public, public_join_key_col="consumer_id_ref", public_join_date_col="date_ref", subtract_in_start=0, subtract_in_end=90, time_unit="day" ) features = make_features.run( df=df, suites=[ "numerical_statistics", "numerical_in_categorical_groups", "correlation", "categorical_statistics", "first_observation_features", "last_observation_features", "lags", "increase_rate", ], options={"n_lags": [1]}, )
- Parameters:
df (Dataset) – Dataset with the necessary tables
suites (list) – Suites selected to create features
options (dict) – Options to the suites
- Returns:
Dataframe with features
- Return type:
Optional[DataFrame]