it_ it_ it_ thus after our rounding operationsyou can see the new features in the data depicted in the previous dataframe basically we tried two forms of rounding the features depict the item popularities now both on scale of - and on scale of - you can use these values both as numerical or categorical features based on the scenario and problem interactions model is usually built in such way that we try to model the output responses (discrete classes or continuous valuesas function of the input feature variables for examplea simple linear regression equation can be depicted as cnxn where the input features are depicted by variables { xnhaving weights or coefficients of { cnrespectively and the goal is the predict response in this casethis simple linear model depicts the relationship between the output and inputspurely based on the individualseparate input features howeveroften in several real-world datasets and scenariosit makes sense to also try to capture the interactions between these feature variables as part of the input feature set simple depiction of the extension of the above linear regression formulation with interaction features would be cnxn where features like { denote the interaction features let' try engineering some interaction features on our pokemon dataset now in [ ]atk_def poke_df[['attack''defense']atk_def head(out[ ]attack defense we can see in this outputthe two numeric features depicting pokemon attack and defense the following code helps us build interaction features from these two features we will build features up to the second degree using the polynomialfeatures class from scikit-learn' api in [ ]from sklearn preprocessing import polynomialfeatures pf polynomialfeatures(degree= interaction_only=falseinclude_bias=falseres pf fit_transform(atk_defres out[ ]array([ ] ] ] ] ] ]]