MCPcopy Index your code
hub / github.com/scikit-learn/scikit-learn / test_center_kernel

Function test_center_kernel

sklearn/preprocessing/tests/test_data.py:2168–2209  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2166
2167
2168def test_center_kernel():
2169 # Test that KernelCenterer is equivalent to StandardScaler
2170 # in feature space
2171 rng = np.random.RandomState(0)
2172 X_fit = rng.random_sample((5, 4))
2173 scaler = StandardScaler(with_std=False)
2174 scaler.fit(X_fit)
2175 X_fit_centered = scaler.transform(X_fit)
2176 K_fit = np.dot(X_fit, X_fit.T)
2177
2178 # center fit time matrix
2179 centerer = KernelCenterer()
2180 K_fit_centered = np.dot(X_fit_centered, X_fit_centered.T)
2181 K_fit_centered2 = centerer.fit_transform(K_fit)
2182 assert_array_almost_equal(K_fit_centered, K_fit_centered2)
2183
2184 # center predict time matrix
2185 X_pred = rng.random_sample((2, 4))
2186 K_pred = np.dot(X_pred, X_fit.T)
2187 X_pred_centered = scaler.transform(X_pred)
2188 K_pred_centered = np.dot(X_pred_centered, X_fit_centered.T)
2189 K_pred_centered2 = centerer.transform(K_pred)
2190 assert_array_almost_equal(K_pred_centered, K_pred_centered2)
2191
2192 # check the results coherence with the method proposed in:
2193 # B. Schölkopf, A. Smola, and K.R. Müller,
2194 # "Nonlinear component analysis as a kernel eigenvalue problem"
2195 # equation (B.3)
2196
2197 # K_centered3 = (I - 1_M) K (I - 1_M)
2198 # = K - 1_M K - K 1_M + 1_M K 1_M
2199 ones_M = np.ones_like(K_fit) / K_fit.shape[0]
2200 K_fit_centered3 = K_fit - ones_M @ K_fit - K_fit @ ones_M + ones_M @ K_fit @ ones_M
2201 assert_allclose(K_fit_centered, K_fit_centered3)
2202
2203 # K_test_centered3 = (K_test - 1'_M K)(I - 1_M)
2204 # = K_test - 1'_M K - K_test 1_M + 1'_M K 1_M
2205 ones_prime_M = np.ones_like(K_pred) / K_fit.shape[0]
2206 K_pred_centered3 = (
2207 K_pred - ones_prime_M @ K_fit - K_pred @ ones_M + ones_prime_M @ K_fit @ ones_M
2208 )
2209 assert_allclose(K_pred_centered, K_pred_centered3)
2210
2211
2212def test_kernelcenterer_non_linear_kernel():

Callers

nothing calls this directly

Calls 7

fitMethod · 0.95
transformMethod · 0.95
transformMethod · 0.95
StandardScalerClass · 0.90
KernelCentererClass · 0.90
assert_allcloseFunction · 0.90
fit_transformMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…