Kernel functions

pyrfm.kernels.all_subsets(X, P, dense_output=True)[source]

Compute all-subsets kernel.

\[k(x, y) = \prod_{j=1}^d (1+x_jy_j)\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.anova(X, P, degree, dense_output=True)[source]

Compute ANOVA kernel by pure numpy.

\[k(x, y) = \sum_{j_1 < \cdots < j_m} x_{j_1}p_{j_1}\cdots x_{j_m}p_{j_m}\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

  • degree (int) – Degree of the ANOVA kernel (m in above equation).

  • dense_output (bool (default=True)) – Whether to output np.ndarray or not (csr_matrix).

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.anova_fast(X, P, degree, dense_output=True)[source]

Compute ANOVA kernel by Cython implementation.

\[k(x, y) = \sum_{j_1 < \cdots < j_m} x_{j_1}p_{j_1}\cdots x_{j_m}p_{j_m}\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

  • degree (int) – Degree of the ANOVA kernel (m in above equation).

  • dense_output (bool (default=True)) – Whether to output np.ndarray or not (csr_matrix).

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.chi_square(X, P)[source]

Compute chi squared kernel.

\[k(x,y) = \sum_{i=1}^{n}2x_iy_i/(x_i + y_i)\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.hellinger(X, P)[source]

Compute hellinger kernel.

\[k(x, y) = \sum_{j=1}^d \sqrt{x_j}\sqrt{y_j}\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.intersection(X, P)[source]

Compute intersection kernel.

\[k(x, y) = \sum_{j=1}^{d} \min (x_j, y_j)\]
Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)

pyrfm.kernels.kernel_alignment(K, y, scaling=True)[source]

Compute kernel alignment.

Parameters
  • K (array, shape (n_sample, n_samples)) – Gram matrix.

  • y (array, shape (n_samples, )) – Label.

  • scaling (bool (default=True)) – Whether to scale or not. If True, result is divided by sqrt{KK}*n_samples

Returns

score

Return type

double

pyrfm.kernels.pairwise(X, P, dense_output=True, symmetric=False)[source]

Compute pairwise kernel.

\[k((x, a), (y, b)) = \sum_{t=1}^{m-1} \mathrm{ANOVA}^t(x, y)\mathrm{ANOVA}^{t-m}}a, b)\]

Now only degree (m) = 2 supported.

Parameters
  • X ({array-like, sparse matrix} shape (n_samples1, n_features)) – Feature matrix.

  • P ({array-like, sparse matrix} shape (n_samples2, n_features)) – Feature matrix.

  • dense_output (bool (default=True)) – Whether to output np.ndarray or not (csr_matrix).

  • symmetric (bool (default=False)) – Whether to symmetrize or not.

Returns

gram_matrix

Return type

array-like, shape (n_samples1, n_samples2)