Package: rrct
RRCTRelevance, Redundancy, and Complementarity Trade-off, a robust feature selection algorithm (Python version).This algorithm is a computationally efficient, robust approach for feature selection. The algorithm can be thought of as a natural extension to the popular mRMR feature selection algorithm, given that RRCT explicitly takes into account relevance and redundancy (like mRMR), and also introduces an additional third term to account for conditional relevance (also known as complementarity).The RRCT algorithm is computationally very efficient and can run within a few seconds including on massive datasets with thousands of features. Moreover, it can serve as a useful 'off-the-shelf' feature selection algorithm because it generalizes well on both regression and classification problems, also without needing further adjusting for mixed-type variables.R. Ibraheemis the author of this implementation and also maintains this package; this implementation is based on the earlier Python implementation byA. Tsanas(associated to below mentioned publication) that can be found inhttps://github.com/ThanasisTsanas/RRCT.Class descriptionRRCTFeatureSelection(K=None, scale_feature=False)Parameter:K, non-zero positive integer to specify the number of selected features. Default value isK=None, which means all features will be selected.scale_feature, a boolean. Set toFalseif your features have been standardized (mean of 0 and standard deviation of 1), otherwise set toTrueand the features will be standardized before applying the algorithm. Default value isFalse.Attributes:selected_feature_indices_, an array of indices corresponding to the indices of selected featuresrrct_values_, a dictionary containing the relevance, redundancy, complementarity, and RRCT metrics of the selected featuresMethods:apply(X=X, y=y, verbose=0), apply the RRCT algorithm to a given training setX, ywhereXis ann by mnumpy array of features, andyis ann by 1numpy array of   target values.verbose, a non-negative integer, controls  the verbosity of outputselect(X=X),  select features from a given design matrixXbased on the results of the application of RRCT algorithmapply_select(X=X, y=y, verbose=0), apply RRCT algorithm to a given training setX, yand then select features fromX.Installationpip install rrctExample# import the RRCT algorithmfromrrct.algorithmimportRRCTFeatureSelection# RRCT with K=20selector=RRCTFeatureSelection(K=20,scale_feature=False)# Apply RRCT to a training set X, yselector.apply(X=X,y=y)# Select features from XX_selected=selector.select(X=X)# Alternatively, apply_select can be called, which applies RRCT and select features from  XX_selected=selector.apply_select(X=X,y=y)# Get the selected feature indicesselector.selected_feature_indices_# Get the summary of the RRCT metricsselector.rrct_values_ReferenceA. Tsanas: "Relevance, redundancy and complementarity trade-off (RRCT): a generic, efficient, robust feature selection tool",Patterns, Vol. 3:100471, 2022https://doi.org/10.1016/j.patter.2022.100471R. Ibraheem is a PhD student of EPSRC's MAC-MIGS Centre for Doctoral Training and he is hosted by the University of Edinburgh. MAC-MIGS is supported by the UK's Engineering and Physical Science Research Council (grant number EP/S023291/1). R. Ibraheem is supervised byDr G. dos Reis. R. Ibraheem further contact points:LinkedIn,ORCID,GitHub.