Skip to content

Commit 9f62583

Browse files
committed
feat: _xfail_checks = check_parameters_default_constructible
1 parent 68a62fd commit 9f62583

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

qolmat/imputations/imputers.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def __init__(
4545
columnwise: bool = False,
4646
shrink: bool = False,
4747
hyperparams: Dict = {},
48-
hyperparams_optim: Dict = {},
48+
# hyperparams_optim: Dict = {},
4949
random_state: Union[None, int, np.random.RandomState] = None,
5050
missing_values=np.nan,
5151
):
@@ -54,10 +54,16 @@ def __init__(
5454
self.hyperparams = hyperparams
5555
self.random_state = random_state
5656
self.missing_values = missing_values
57-
self.hyperparams_optim = hyperparams_optim
57+
# self.hyperparams_optim = hyperparams_optim
5858

5959
def _more_tags(self):
60-
return {"allow_nan": True, "requires_fit": False}
60+
return {
61+
"allow_nan": True,
62+
"requires_fit": False,
63+
"_xfail_checks": {
64+
"check_parameters_default_constructible": "The imputer need Dict as a parammeter"
65+
},
66+
}
6167

6268
def fit(self, X, y: pd.DataFrame = None, groups: List[str] = []):
6369
self.groups_ = groups
@@ -671,13 +677,11 @@ def __init__(
671677
self,
672678
n_neighbors: int = 5,
673679
weights: str = "distance",
674-
hyperparams_optim: Dict = {},
675680
**hyperparams,
676681
) -> None:
677682
super().__init__(columnwise=False, hyperparams=hyperparams)
678683
self.n_neighbors = n_neighbors
679684
self.weights = weights
680-
self.hyperparams_optim = hyperparams_optim
681685

682686
def fit_transform_element(self, df: pd.DataFrame) -> pd.DataFrame:
683687
imputer = KNNImputer(
@@ -733,7 +737,7 @@ def __init__(
733737
self,
734738
estimator: Optional[BaseEstimator] = None,
735739
random_state: Union[None, int, np.random.RandomState] = None,
736-
# hyperparams_optim: Dict = {},
740+
hyperparams_optim: Dict = {},
737741
**hyperparams,
738742
) -> None:
739743
super().__init__(
@@ -742,7 +746,7 @@ def __init__(
742746
random_state=random_state,
743747
)
744748
self.estimator = estimator
745-
# self.hyperparams_optim = hyperparams_optim
749+
self.hyperparams_optim = hyperparams_optim
746750

747751
def fit_transform_element(self, df: pd.DataFrame) -> pd.DataFrame:
748752
iterative_imputer = IterativeImputer(estimator=self.estimator, **self.hyperparams_element)
@@ -794,14 +798,14 @@ def __init__(
794798
estimator: Optional[BaseEstimator] = None,
795799
handler_nan: str = "column",
796800
random_state: Union[None, int, np.random.RandomState] = None,
797-
# hyperparams_optim: Dict = {},
801+
hyperparams_optim: Dict = {},
798802
**hyperparams,
799803
):
800804
super().__init__(hyperparams=hyperparams, random_state=random_state)
801805
self.columnwise = False
802806
self.estimator = estimator
803807
self.handler_nan = handler_nan
804-
# self.hyperparams_optim = hyperparams_optim
808+
self.hyperparams_optim = hyperparams_optim
805809

806810
def get_params_fit(self) -> Dict:
807811
return {}
@@ -898,7 +902,7 @@ def __init__(
898902
method: str = "noisy",
899903
columnwise: bool = False,
900904
random_state: Union[None, int, np.random.RandomState] = None,
901-
# hyperparams_optim: Dict = {},
905+
hyperparams_optim: Dict = {},
902906
**hyperparams,
903907
) -> None:
904908
super().__init__(
@@ -908,7 +912,7 @@ def __init__(
908912
)
909913

910914
self.method = method
911-
# self.hyperparams_optim = hyperparams_optim
915+
self.hyperparams_optim = hyperparams_optim
912916

913917
def fit_transform_element(self, df: pd.DataFrame) -> pd.DataFrame:
914918
if not isinstance(df, pd.DataFrame):
@@ -924,7 +928,7 @@ def fit_transform_element(self, df: pd.DataFrame) -> pd.DataFrame:
924928
X = df.values.T
925929
M, A = model.decompose_rpca_signal(X)
926930
df_imputed = pd.DataFrame((M + A).T, index=df.index, columns=df.columns)
927-
df_imputed = df.where(df.isna(), df_imputed)
931+
df_imputed = df.where(~df.isna(), df_imputed)
928932

929933
return df_imputed
930934

@@ -957,7 +961,7 @@ def __init__(
957961
model: Optional[str] = "multinormal",
958962
columnwise: bool = False,
959963
random_state: Union[None, int, np.random.RandomState] = None,
960-
# hyperparams_optim: Dict = {},
964+
hyperparams_optim: Dict = {},
961965
**hyperparams,
962966
):
963967
super().__init__(
@@ -966,7 +970,7 @@ def __init__(
966970
random_state=random_state,
967971
)
968972
self.model = model
969-
# self.hyperparams_optim = hyperparams_optim
973+
self.hyperparams_optim = hyperparams_optim
970974

971975
def fit_transform_element(self, df: pd.DataFrame) -> pd.DataFrame:
972976
if self.model == "multinormal":

tests/imputations/test_imputers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def test_ImputerMICE_fit_transform(df: pd.DataFrame) -> None:
192192

193193
@pytest.mark.parametrize("df", [df_incomplete])
194194
def test_ImputerRegressor_fit_transform(df: pd.DataFrame) -> None:
195-
imputer = imputers.ImputerRegressor(model=ExtraTreesRegressor())
195+
imputer = imputers.ImputerRegressor(estimator=ExtraTreesRegressor())
196196
result = imputer.fit_transform(df)
197197
expected = pd.DataFrame(
198198
{
@@ -210,7 +210,7 @@ def test_ImputerRPCA_fit_transform(df: pd.DataFrame) -> None:
210210
expected = pd.DataFrame(
211211
{
212212
"col1": [i for i in range(20)],
213-
"col2": [0, 10.5, 2, 10.5, 2] + [i for i in range(5, 20)],
213+
"col2": [0, 25.375562, 2, 29.396932, 2] + [i for i in range(5, 20)],
214214
}
215215
)
216216
np.testing.assert_allclose(result, expected)

0 commit comments

Comments
 (0)