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 (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$') 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 (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.

Examples using skada.KMMReweightAdapter

Reweighting method example on covariate shift dataset

Reweighting method example on covariate shift dataset