skada.MMDTarSReweightAdapter
- class skada.MMDTarSReweightAdapter(gamma, reg=1e-10, tol=1e-06, max_iter=1000)[source]
Target shift reweighting using MMD.
The idea of MMDTarSReweight is to find an importance estimate beta(y) such that the Maximum Mean Discrepancy (MMD) divergence between the source input density p_source(x) to its estimate p_target(x) is minimized under the assumption of equal conditional distributions p(x|y) for both source and target domains.
See Section 3 of [21] for details.
Warning
This adapter uses a nearest neighbors approach to compute weights when adapting on source data different from the fitted source data.
- Parameters:
- gammafloat or array like
Parameters for the kernels.
- regfloat, default=1e-10
Regularization parameter for the labels kernel matrix.
- tolfloat, default=1e-6
Tolerance for the stopping criterion in the optimization.
- max_iterint, default=1000
Number of maximum iteration before stopping the optimization.
- Attributes:
- `source_weights_`array-like, shape (n_samples,)
The learned source weights.
- `alpha_`array-like, shape (n_classes,) or (n_samples,)
The learned kernel weights.
- `X_source_`array-like, shape (n_samples, n_features)
The source data.
References
[21]Kun Zhang et. al. Domain Adaptation under Target and Conditional Shift In ICML, 2013.
- 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$') MMDTarSReweightAdapter
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$') MMDTarSReweightAdapter
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.