How can I use poly function in R(or any other solution),given a dataframe as input to generate two way interaction only and also do normalization.
To brief : I was working on imbalanced classification with AV’s ‘HR Analytic’ practice problem
After multiple failed attempts, I checked the top solution provided(in python) and realized the only and important difference was the winner had 'done two way interactions followed by normalization '.
I tried to do the same in ‘R’ -interaction using model.matrix, followed by prep_num (center,scale) to do normalization . model matrix did generate interactions and increased no. of columns from 54 to 850, but when I tried to do normalization , it failed giving error ‘cannot create memory of …’
Please help with a smarter one line solution,for the corresponding python code (winning solution) -
Y = dfmerged.is_promoted
X = dfmerged.drop([‘is_promoted’],1)
combos = list(combinations(list(df.columns), 2))
colnames = list(df.columns)+[’_’.join(x) for x in combos]
#scaler = MinMaxScaler() #scaler.fit(df) #df = scaler.transform(df) poly = PolynomialFeatures(interaction_only=True, include_bias=False) df = poly.fit_transform(df) df = pd.DataFrame(df) df.columns = colnames noint_indices = [i for i,x in enumerate(list((df==0).all())) if x] df= df.drop(df.columns[noint_indices], axis=1) return df
X = add_interactions(X)
(I hope the above python code generates interactions followed by normalization)