Skip to content

Commit d1b4fb3

Browse files
authored
Add TargetEncoder for scikit-learn (#384)
1 parent 1daa19a commit d1b4fb3

File tree

3 files changed

+45
-11
lines changed

3 files changed

+45
-11
lines changed

stubs/sklearn/preprocessing/__init__.pyi

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ from ._label import (
2828
label_binarize as label_binarize,
2929
)
3030
from ._polynomial import PolynomialFeatures as PolynomialFeatures, SplineTransformer as SplineTransformer
31+
from ._target_encoder import TargetEncoder as TargetEncoder
3132

3233
__all__ = [
3334
"Binarizer",
@@ -36,26 +37,27 @@ __all__ = [
3637
"KernelCenterer",
3738
"LabelBinarizer",
3839
"LabelEncoder",
39-
"MultiLabelBinarizer",
40-
"MinMaxScaler",
4140
"MaxAbsScaler",
42-
"QuantileTransformer",
41+
"MinMaxScaler",
42+
"MultiLabelBinarizer",
4343
"Normalizer",
4444
"OneHotEncoder",
4545
"OrdinalEncoder",
46+
"PolynomialFeatures",
4647
"PowerTransformer",
48+
"QuantileTransformer",
4749
"RobustScaler",
4850
"SplineTransformer",
4951
"StandardScaler",
52+
"TargetEncoder",
5053
"add_dummy_feature",
51-
"PolynomialFeatures",
5254
"binarize",
53-
"normalize",
54-
"scale",
55-
"robust_scale",
55+
"label_binarize",
5656
"maxabs_scale",
5757
"minmax_scale",
58-
"label_binarize",
59-
"quantile_transform",
58+
"normalize",
6059
"power_transform",
60+
"quantile_transform",
61+
"robust_scale",
62+
"scale",
6163
]
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from typing import ClassVar, Literal
2+
from typing_extensions import Self
3+
4+
from numpy import ndarray
5+
6+
from .._typing import ArrayLike, Int, MatrixLike
7+
from ..base import OneToOneFeatureMixin
8+
from ._encoders import _BaseEncoder
9+
10+
class TargetEncoder(OneToOneFeatureMixin, _BaseEncoder):
11+
encodings_: list[ndarray]
12+
categories_: list[ndarray]
13+
target_type_: str
14+
target_mean_: float
15+
n_features_in_: int
16+
feature_names_in_: ndarray
17+
classes_: ndarray | None
18+
19+
_parameter_constraints: ClassVar[dict] = ...
20+
21+
def __init__(
22+
self,
23+
categories: list[ArrayLike] | Literal["auto"] = "auto",
24+
target_type: Literal["auto", "continuous", "binary", "multiclass"] = "auto",
25+
smooth: Literal["auto"] | float = "auto",
26+
cv: int = 5,
27+
shuffle: bool = True,
28+
random_state: Int | None = None,
29+
) -> None: ...
30+
def fit(self, X: MatrixLike, y: ArrayLike) -> Self: ...
31+
def fit_transform(self, X: MatrixLike, y: ArrayLike) -> ndarray: ...
32+
def transform(self, X: MatrixLike) -> ndarray: ...
33+
def get_feature_names_out(self, input_features: ArrayLike | None = None) -> ndarray: ...
34+
def __sklearn_tags__(self) -> dict: ...

stubs/sklearn/stubtest_allowlist.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,8 +1103,6 @@ sklearn.preprocessing.StandardScaler.set_fit_request
11031103
sklearn.preprocessing.StandardScaler.set_inverse_transform_request
11041104
sklearn.preprocessing.StandardScaler.set_partial_fit_request
11051105
sklearn.preprocessing.StandardScaler.set_transform_request
1106-
sklearn.preprocessing.TargetEncoder
1107-
sklearn.preprocessing.__all__
11081106
sklearn.preprocessing._data.Binarizer.__sklearn_tags__
11091107
sklearn.preprocessing._data.Binarizer.set_transform_request
11101108
sklearn.preprocessing._data.KernelCenterer.__sklearn_tags__

0 commit comments

Comments
 (0)