PriyaPbs/ModelOptix
0
1import pandas as pd2from sklearn.feature_selection import VarianceThreshold3 4def select_features(X, y, preference):5 selector = VarianceThreshold(threshold=0.01)6 X_var = selector.fit_transform(X)7 8 df = pd.DataFrame(X_var)9 10 corr = df.corrwith(pd.Series(y)).abs()11 corr = corr.sort_values(ascending=False)12 13 if preference == "highest_accuracy":14 k = int(len(corr) * 0.8)15 elif preference == "fastest":16 k = int(len(corr) * 0.3)17 else:18 k = int(len(corr) * 0.5)19 20 selected_cols = corr.head(max(k, 1)).index21 return df[selected_cols]