def getReducedFeats(dataX, dataY, ifeat): X = [] selectedFeats = [] if ifeat in [3, 5]: regressor = SVC(kernel="linear") rfe = RFE(regressor, ifeat) X = rfe.fit_transform(dataX, dataY) for i in np.argwhere(rfe._get_support_mask()): selectedFeats.extend(i+1) elif ifeat == 'all': X = dataX selectedFeats = 'all' elif ifeat == 'pca': pca = PCA(n_components=0.9) X = pca.fit_transform(dataX) selectedFeats = 'pca' return X, selectedFeats