From 251279e5fdccf38275b50283287b08354c25e443 Mon Sep 17 00:00:00 2001 From: zeeshan Date: Tue, 28 Feb 2023 01:53:11 +0530 Subject: [PATCH 1/2] Added parameter validation for f_classif and test --- sklearn/feature_selection/_univariate_selection.py | 8 +++++++- sklearn/tests/test_public_functions.py | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sklearn/feature_selection/_univariate_selection.py b/sklearn/feature_selection/_univariate_selection.py index a2a53b6c116dd..b62a6e8706e4b 100644 --- a/sklearn/feature_selection/_univariate_selection.py +++ b/sklearn/feature_selection/_univariate_selection.py @@ -17,7 +17,7 @@ from ..utils import as_float_array, check_array, check_X_y, safe_sqr, safe_mask from ..utils.extmath import safe_sparse_dot, row_norms from ..utils.validation import check_is_fitted -from ..utils._param_validation import Interval, StrOptions +from ..utils._param_validation import Interval, StrOptions, validate_params from ._base import SelectorMixin @@ -117,6 +117,12 @@ def f_oneway(*args): return f, prob +@validate_params( + { + "X":["array-like","sparse matrix"], + "y":[np.ndarray], + } +) def f_classif(X, y): """Compute the ANOVA F-value for the provided sample. diff --git a/sklearn/tests/test_public_functions.py b/sklearn/tests/test_public_functions.py index dae1fdb2e6164..2f525ca431032 100644 --- a/sklearn/tests/test_public_functions.py +++ b/sklearn/tests/test_public_functions.py @@ -144,6 +144,7 @@ def _check_function_param_validation( "sklearn.model_selection.train_test_split", "sklearn.random_projection.johnson_lindenstrauss_min_dim", "sklearn.svm.l1_min_c", + "sklearn.feature_selection.f_classif", ] From 654512e9f0c23e99cb0ad713f970afd1aeb7330a Mon Sep 17 00:00:00 2001 From: jeremiedbb Date: Tue, 28 Feb 2023 12:01:16 +0100 Subject: [PATCH 2/2] fix y constraint + docstring and lint --- sklearn/feature_selection/_univariate_selection.py | 6 +++--- sklearn/tests/test_public_functions.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sklearn/feature_selection/_univariate_selection.py b/sklearn/feature_selection/_univariate_selection.py index b62a6e8706e4b..a19ccfab77473 100644 --- a/sklearn/feature_selection/_univariate_selection.py +++ b/sklearn/feature_selection/_univariate_selection.py @@ -119,8 +119,8 @@ def f_oneway(*args): @validate_params( { - "X":["array-like","sparse matrix"], - "y":[np.ndarray], + "X": ["array-like", "sparse matrix"], + "y": ["array-like"], } ) def f_classif(X, y): @@ -133,7 +133,7 @@ def f_classif(X, y): X : {array-like, sparse matrix} of shape (n_samples, n_features) The set of regressors that will be tested sequentially. - y : ndarray of shape (n_samples,) + y : array-like of shape (n_samples,) The target vector. Returns diff --git a/sklearn/tests/test_public_functions.py b/sklearn/tests/test_public_functions.py index 2f525ca431032..ce32bbfca9866 100644 --- a/sklearn/tests/test_public_functions.py +++ b/sklearn/tests/test_public_functions.py @@ -112,6 +112,7 @@ def _check_function_param_validation( "sklearn.feature_extraction.img_to_graph", "sklearn.feature_extraction.image.extract_patches_2d", "sklearn.feature_extraction.image.reconstruct_from_patches_2d", + "sklearn.feature_selection.f_classif", "sklearn.metrics.accuracy_score", "sklearn.metrics.auc", "sklearn.metrics.average_precision_score", @@ -144,7 +145,6 @@ def _check_function_param_validation( "sklearn.model_selection.train_test_split", "sklearn.random_projection.johnson_lindenstrauss_min_dim", "sklearn.svm.l1_min_c", - "sklearn.feature_selection.f_classif", ]