skada.KMMReweightAdapter
- class skada.KMMReweightAdapter(kernel='rbf', gamma=None, degree=3, coef0=1, B=1000.0, eps=None, tol=1e-06, max_iter=1000, smooth_weights=False, solver='frank-wolfe')[source]
Kernel Mean Matching (KMMReweight).
The idea of KMMReweight is to find an importance estimate w(x) such that the Maximum Mean Discrepancy (MMD) divergence between the target input density p_target(x) and the reweighted source input density w(x)p_source(x) is minimized.
See [23] for details.
- Parameters:
- kernelstr, default="rbf"
Kernel
- gammafloat, None
Parameters for the kernels.
- degreeint, 3
Parameters for the kernels.
- coef0float, default
Parameters for the kernels.
- Bfloat, default=1000.
Weight upper bound.
- epsfloat, default=None
KMMReweight tolerance parameter. If None, eps is set to (sqrt(n_samples_source) - 1) / sqrt(n_samples_source).
- tolfloat, default=1e-6
Tolerance for the stopping criterion in the optimization.
- max_iterint, default=100
Number of maximum iteration before stopping the optimization.
- smooth_weightsbool, default=False
If True, the weights are "smoothed" using the kernel function.
- solverstring, default='frank-wolfe'
Available solvers : ['frank-wolfe', 'scipy'].
- Attributes:
- `source_weights_`array-like, shape (n_samples,)
The learned source weights.
- `X_source_`array-like, shape (n_samples, n_features)
The source data.
References
[23]J. Huang, A. Gretton, K. Borgwardt, B. Schölkopf and A. J. Smola. 'Correcting sample selection bias by unlabeled data.' In NIPS, 2007.
- fit(X, y=None, *, sample_domain=None)[source]
Fit adaptation parameters.
- Parameters:
- Xarray-like, shape (n_samples, n_features)
The source data.
- yarray-like, shape (n_samples,)
The source labels.
- sample_domainarray-like, shape (n_samples,)
The domain labels (same as sample_domain).
- Returns:
- selfobject
Returns self.
- set_fit_request(*, sample_domain: bool | None | str = '$UNCHANGED$') KMMReweightAdapter
Configure whether metadata should be requested to be passed to the
fit
method.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True
(seesklearn.set_config()
). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- sample_domainstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_domain
parameter infit
.
- Returns:
- selfobject
The updated object.
- set_transform_request(*, allow_source: bool | None | str = '$UNCHANGED$', sample_domain: bool | None | str = '$UNCHANGED$') KMMReweightAdapter
Configure whether metadata should be requested to be passed to the
transform
method.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True
(seesklearn.set_config()
). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed totransform
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it totransform
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- allow_sourcestr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
allow_source
parameter intransform
.- sample_domainstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_domain
parameter intransform
.
- Returns:
- selfobject
The updated object.
Examples using skada.KMMReweightAdapter

Reweighting method example on covariate shift dataset