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 (see sklearn.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 to fit if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to fit.

  • 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 in fit.

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 (see sklearn.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 to transform if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to transform.

  • 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 in transform.

sample_domainstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_domain parameter in transform.

Returns:
selfobject

The updated object.