Python sklearn.metrics.pairwise.pairwise_kernels() Examples
The following are 25
code examples of sklearn.metrics.pairwise.pairwise_kernels().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sklearn.metrics.pairwise
, or try the search function
.

Example #1
Source Project: Summarizer Author: lekhakpadmanabh File: core.py License: Apache License 2.0 | 6 votes |
def _intertext_score(full_text): '''returns tuple of scored sentences in order of appearance Note: Doing an A/B test to compare results, reverting to original algorithm.''' sentences = sentence_tokenizer(full_text) norm = _normalize(sentences) similarity_matrix = pairwise_kernels(norm, metric='cosine') scores = _textrank(similarity_matrix) scored_sentences = [] for i, s in enumerate(sentences): scored_sentences.append((scores[i],i,s)) top_scorers = sorted(scored_sentences, key=lambda tup: tup[0], reverse=True) return top_scorers
Example #2
Source Project: Mastering-Elasticsearch-7.0 Author: PacktPublishing File: test_pairwise.py License: MIT License | 6 votes |
def test_pairwise_kernels_callable(): # Test the pairwise_kernels helper function # with a callable function, with given keywords. rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((2, 4)) metric = callable_rbf_kernel kwds = {'gamma': 0.1} K1 = pairwise_kernels(X, Y=Y, metric=metric, **kwds) K2 = rbf_kernel(X, Y=Y, **kwds) assert_array_almost_equal(K1, K2) # callable function, X=Y K1 = pairwise_kernels(X, Y=X, metric=metric, **kwds) K2 = rbf_kernel(X, Y=X, **kwds) assert_array_almost_equal(K1, K2)
Example #3
Source Project: Mastering-Elasticsearch-7.0 Author: PacktPublishing File: test_pairwise.py License: MIT License | 6 votes |
def test_pairwise_similarity_sparse_output(metric, pairwise_func): rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((3, 4)) Xcsr = csr_matrix(X) Ycsr = csr_matrix(Y) # should be sparse K1 = pairwise_func(Xcsr, Ycsr, dense_output=False) assert issparse(K1) # should be dense, and equal to K1 K2 = pairwise_func(X, Y, dense_output=True) assert not issparse(K2) assert_array_almost_equal(K1.todense(), K2) # show the kernel output equal to the sparse.todense() K3 = pairwise_kernels(X, Y=Y, metric=metric) assert_array_almost_equal(K1.todense(), K3)
Example #4
Source Project: Mastering-Elasticsearch-7.0 Author: PacktPublishing File: test_pairwise.py License: MIT License | 6 votes |
def test_cosine_similarity(): # Test the cosine_similarity. rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((3, 4)) Xcsr = csr_matrix(X) Ycsr = csr_matrix(Y) for X_, Y_ in ((X, None), (X, Y), (Xcsr, None), (Xcsr, Ycsr)): # Test that the cosine is kernel is equal to a linear kernel when data # has been previously normalized by L2-norm. K1 = pairwise_kernels(X_, Y=Y_, metric="cosine") X_ = normalize(X_) if Y_ is not None: Y_ = normalize(Y_) K2 = pairwise_kernels(X_, Y=Y_, metric="linear") assert_array_almost_equal(K1, K2)
Example #5
Source Project: skl-groups Author: djsutherland File: test_mmk.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_mmk(): bags = [np.random.normal(size=(np.random.randint(10, 100), 10)) for _ in range(20)] res = MeanMapKernel(gamma=2.38).fit_transform(bags) for i in range(20): for j in range(20): exp = pairwise_kernels(bags[j], bags[i], metric='rbf', gamma=2.38) assert_almost_equal(res[i, j], exp.mean(), err_msg="({} to {})".format(i, j)) res = MeanMapKernel(kernel='linear').fit(bags[:5]).transform(bags[-2:]) for i in range(5): for j in range(18, 20): exp = pairwise_kernels(bags[j], bags[i], metric='linear') assert_almost_equal(res[j - 18, i], exp.mean(), err_msg="({} to {})".format(i, j)) # fails on wrong dimension assert_raises( ValueError, lambda:MeanMapKernel().fit(bags).transform([np.random.randn(20, 8)])) ################################################################################
Example #6
Source Project: svm Author: AlexanderFabisch File: svm.py License: MIT License | 6 votes |
def decision_function(self, X): """Decision function of the SVM. Parameters ---------- X : array-like, shape (n_samples, n_features) The input data. Returns ------- y : array-like, shape (n_samples,) The values of decision function. """ X = check_array(X) if self.kernel == "linear": return self.intercept_ + np.dot(X, self.coef_) else: K = pairwise_kernels(X, self.support_vectors_, metric=self.kernel, **self.kernel_args) return (self.intercept_ + np.sum(self.dual_coef_[np.newaxis, :] * self.y * K, axis=1))
Example #7
Source Project: samacharbot2 Author: SalmaanP File: core.py License: GNU General Public License v3.0 | 6 votes |
def _intertext_score(full_text): '''returns tuple of scored sentences in order of appearance Note: Doing an A/B test to compare results, reverting to original algorithm.''' sentences = sentence_tokenizer(full_text) norm = _normalize(sentences) similarity_matrix = pairwise_kernels(norm, metric='cosine') scores = _textrank(similarity_matrix) scored_sentences = [] for i, s in enumerate(sentences): scored_sentences.append((scores[i],i,s)) top_scorers = sorted(scored_sentences, key=lambda tup: tup[0], reverse=True) return top_scorers
Example #8
Source Project: dscribe Author: SINGROUP File: localsimilaritykernel.py License: Apache License 2.0 | 6 votes |
def get_pairwise_matrix(self, X, Y=None): """Calculates the pairwise similarity of atomic environments with scikit-learn, and the pairwise metric configured in the constructor. Args: X(np.ndarray): Feature vector for the atoms in structure A Y(np.ndarray): Feature vector for the atoms in structure B Returns: np.ndarray: NxM matrix of local similarities between structures A and B, with N and M atoms respectively. """ if callable(self.metric): params = self.kernel_params or {} else: params = {"gamma": self.gamma, "degree": self.degree, "coef0": self.coef0} return pairwise_kernels(X, Y, metric=self.metric, filter_params=True, **params)
Example #9
Source Project: Summarizer Author: lekhakpadmanabh File: core.py License: Apache License 2.0 | 5 votes |
def _title_similarity_score(full_text, title): """Similarity scores for sentences with title in descending order""" sentences = sentence_tokenizer(full_text) norm = _normalize([title]+sentences) similarity_matrix = pairwise_kernels(norm, metric='cosine') return sorted(zip( similarity_matrix[0,1:], range(len(similarity_matrix)), sentences ), key = lambda tup: tup[0], reverse=True )
Example #10
Source Project: Mastering-Elasticsearch-7.0 Author: PacktPublishing File: test_pairwise.py License: MIT License | 5 votes |
def test_pairwise_kernels(metric): # Test the pairwise_kernels helper function. rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((2, 4)) function = PAIRWISE_KERNEL_FUNCTIONS[metric] # Test with Y=None K1 = pairwise_kernels(X, metric=metric) K2 = function(X) assert_array_almost_equal(K1, K2) # Test with Y=Y K1 = pairwise_kernels(X, Y=Y, metric=metric) K2 = function(X, Y=Y) assert_array_almost_equal(K1, K2) # Test with tuples as X and Y X_tuples = tuple([tuple([v for v in row]) for row in X]) Y_tuples = tuple([tuple([v for v in row]) for row in Y]) K2 = pairwise_kernels(X_tuples, Y_tuples, metric=metric) assert_array_almost_equal(K1, K2) # Test with sparse X and Y X_sparse = csr_matrix(X) Y_sparse = csr_matrix(Y) if metric in ["chi2", "additive_chi2"]: # these don't support sparse matrices yet assert_raises(ValueError, pairwise_kernels, X_sparse, Y=Y_sparse, metric=metric) return K1 = pairwise_kernels(X_sparse, Y=Y_sparse, metric=metric) assert_array_almost_equal(K1, K2)
Example #11
Source Project: Mastering-Elasticsearch-7.0 Author: PacktPublishing File: test_pairwise.py License: MIT License | 5 votes |
def test_pairwise_kernels_filter_param(): rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((2, 4)) K = rbf_kernel(X, Y, gamma=0.1) params = {"gamma": 0.1, "blabla": ":)"} K2 = pairwise_kernels(X, Y, metric="rbf", filter_params=True, **params) assert_array_almost_equal(K, K2) assert_raises(TypeError, pairwise_kernels, X, Y, "rbf", **params)
Example #12
Source Project: tslearn Author: tslearn-team File: clustering.py License: BSD 2-Clause "Simplified" License | 5 votes |
def _get_kernel(self, X, Y=None): kernel_params = self._get_kernel_params() if self.kernel == "gak": return cdist_gak(X, Y, n_jobs=self.n_jobs, verbose=self.verbose, **kernel_params) else: X_sklearn = to_sklearn_dataset(X) if Y is not None: Y_sklearn = to_sklearn_dataset(Y) else: Y_sklearn = Y return pairwise_kernels(X_sklearn, Y_sklearn, metric=self.kernel, n_jobs=self.n_jobs, **kernel_params)
Example #13
Source Project: skl-groups Author: djsutherland File: mmk.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def transform(self, X): ''' Compute kernels from X to :attr:`features_`. Parameters ---------- X : list of arrays or :class:`skl_groups.features.Features` The bags to compute "from". Must have same dimension as :attr:`features_`. Returns ------- K : array of shape ``[len(X), len(features_)]`` The kernel evaluations from X to :attr:`features_`. ''' X = as_features(X, stack=True, bare=True) Y = self.features_ if X.dim != Y.dim: raise ValueError("MMK transform got dimension {} but had {} at fit" .format(X.dim, Y.dim)) pointwise = pairwise_kernels(X.stacked_features, Y.stacked_features, metric=self.kernel, filter_params=True, **self._get_kernel_params()) # TODO: is there a way to do this without a Python loop? K = np.empty((len(X), len(Y))) for i in range(len(X)): for j in range(len(Y)): K[i, j] = pointwise[X._boundaries[i]:X._boundaries[i+1], Y._boundaries[j]:Y._boundaries[j+1]].mean() return K
Example #14
Source Project: pyDML Author: jlsuarezdiaz File: dml_algorithm.py License: GNU General Public License v3.0 | 5 votes |
def _get_kernel(self, X, Y=None): if callable(self.kernel_): params = self.kernel_params_ or {} else: params = {'gamma': self.gamma_, 'degree': self.degree_, 'coef0': self.coef0_} return pairwise_kernels(X, Y, metric=self.kernel_, filter_params=True, **params)
Example #15
Source Project: samacharbot2 Author: SalmaanP File: core.py License: GNU General Public License v3.0 | 5 votes |
def _title_similarity_score(full_text, title): """Similarity scores for sentences with title in descending order""" sentences = sentence_tokenizer(full_text) norm = _normalize([title]+sentences) similarity_matrix = pairwise_kernels(norm, metric='cosine') return sorted(zip( similarity_matrix[0,1:], range(len(similarity_matrix)), sentences ), key = lambda tup: tup[0], reverse=True )
Example #16
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_pairwise.py License: MIT License | 5 votes |
def test_pairwise_precomputed(): for func in [pairwise_distances, pairwise_kernels]: # Test correct shape assert_raises_regexp(ValueError, '.* shape .*', func, np.zeros((5, 3)), metric='precomputed') # with two args assert_raises_regexp(ValueError, '.* shape .*', func, np.zeros((5, 3)), np.zeros((4, 4)), metric='precomputed') # even if shape[1] agrees (although thus second arg is spurious) assert_raises_regexp(ValueError, '.* shape .*', func, np.zeros((5, 3)), np.zeros((4, 3)), metric='precomputed') # Test not copied (if appropriate dtype) S = np.zeros((5, 5)) S2 = func(S, metric="precomputed") assert_true(S is S2) # with two args S = np.zeros((5, 3)) S2 = func(S, np.zeros((3, 3)), metric="precomputed") assert_true(S is S2) # Test always returns float dtype S = func(np.array([[1]], dtype='int'), metric='precomputed') assert_equal('f', S.dtype.kind) # Test converts list to array-like S = func([[1.]], metric='precomputed') assert_true(isinstance(S, np.ndarray))
Example #17
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_pairwise.py License: MIT License | 5 votes |
def test_pairwise_parallel(): wminkowski_kwds = {'w': np.arange(1, 5).astype('double'), 'p': 1} metrics = [(pairwise_distances, 'euclidean', {}), (pairwise_distances, wminkowski, wminkowski_kwds), (pairwise_distances, 'wminkowski', wminkowski_kwds), (pairwise_kernels, 'polynomial', {'degree': 1}), (pairwise_kernels, callable_rbf_kernel, {'gamma': .1}), ] for func, metric, kwds in metrics: yield check_pairwise_parallel, func, metric, kwds
Example #18
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_pairwise.py License: MIT License | 5 votes |
def test_pairwise_kernels_filter_param(): rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((2, 4)) K = rbf_kernel(X, Y, gamma=0.1) params = {"gamma": 0.1, "blabla": ":)"} K2 = pairwise_kernels(X, Y, metric="rbf", filter_params=True, **params) assert_array_almost_equal(K, K2) assert_raises(TypeError, pairwise_kernels, X, Y, "rbf", **params)
Example #19
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_pairwise.py License: MIT License | 5 votes |
def test_cosine_similarity_sparse_output(): # Test if cosine_similarity correctly produces sparse output. rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((3, 4)) Xcsr = csr_matrix(X) Ycsr = csr_matrix(Y) K1 = cosine_similarity(Xcsr, Ycsr, dense_output=False) assert_true(issparse(K1)) K2 = pairwise_kernels(Xcsr, Y=Ycsr, metric="cosine") assert_array_almost_equal(K1.todense(), K2)
Example #20
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_kernel_ridge.py License: MIT License | 5 votes |
def test_kernel_ridge_precomputed(): for kernel in ["linear", "rbf", "poly", "cosine"]: K = pairwise_kernels(X, X, metric=kernel) pred = KernelRidge(kernel=kernel).fit(X, y).predict(X) pred2 = KernelRidge(kernel="precomputed").fit(K, y).predict(K) assert_array_almost_equal(pred, pred2)
Example #21
Source Project: Deep-SAD-PyTorch Author: lukasruff File: ssad.py License: MIT License | 4 votes |
def test(self, dataset: BaseADDataset, device: str = 'cpu', n_jobs_dataloader: int = 0): """Tests the SSAD model on the test data.""" logger = logging.getLogger() _, test_loader = dataset.loaders(batch_size=128, num_workers=n_jobs_dataloader) # Get data from loader idx_label_score = [] X = () idxs = [] labels = [] for data in test_loader: inputs, label_batch, _, idx = data inputs, label_batch, idx = inputs.to(device), label_batch.to(device), idx.to(device) if self.hybrid: inputs = self.ae_net.encoder(inputs) # in hybrid approach, take code representation of AE as features X_batch = inputs.view(inputs.size(0), -1) # X_batch.shape = (batch_size, n_channels * height * width) X += (X_batch.cpu().data.numpy(),) idxs += idx.cpu().data.numpy().astype(np.int64).tolist() labels += label_batch.cpu().data.numpy().astype(np.int64).tolist() X = np.concatenate(X) # Testing logger.info('Starting testing...') start_time = time.time() # Build kernel kernel = pairwise_kernels(X, self.X_svs, metric=self.kernel, gamma=self.gamma) scores = (-1.0) * self.model.apply(kernel) self.results['test_time'] = time.time() - start_time scores = scores.flatten() self.rho = -self.model.threshold # Save triples of (idx, label, score) in a list idx_label_score += list(zip(idxs, labels, scores.tolist())) self.results['test_scores'] = idx_label_score # Compute AUC _, labels, scores = zip(*idx_label_score) labels = np.array(labels) scores = np.array(scores) self.results['test_auc'] = roc_auc_score(labels, scores) # If hybrid, also test model with linear kernel if self.hybrid: start_time = time.time() linear_kernel = pairwise_kernels(X, self.linear_X_svs, metric='linear') scores_linear = (-1.0) * self.linear_model.apply(linear_kernel) self.results['test_time_linear'] = time.time() - start_time scores_linear = scores_linear.flatten() self.results['test_auc_linear'] = roc_auc_score(labels, scores_linear) logger.info('Test AUC linear model: {:.2f}%'.format(100. * self.results['test_auc_linear'])) logger.info('Test Time linear model: {:.3f}s'.format(self.results['test_time_linear'])) # Log results logger.info('Test AUC: {:.2f}%'.format(100. * self.results['test_auc'])) logger.info('Test Time: {:.3f}s'.format(self.results['test_time'])) logger.info('Finished testing.')
Example #22
Source Project: scikit-learn-extra Author: scikit-learn-contrib File: _eigenpro.py License: BSD 3-Clause "New" or "Revised" License | 4 votes |
def _kernel(self, X, Y): """Calculate the kernel matrix Parameters --------- X : {float, array}, shape = [n_samples, n_features] Input data. Y : {float, array}, shape = [n_centers, n_targets] Kernel centers. Returns ------- K : {float, array}, shape = [n_samples, n_centers] Kernel matrix. """ if ( self.kernel != "rbf" and self.kernel != "laplace" and self.kernel != "cauchy" ): if callable(self.kernel): params = self.kernel_params or {} else: params = { "gamma": self.gamma_, "degree": self.degree, "coef0": self.coef0, } return pairwise_kernels( X, Y, metric=self.kernel, filter_params=True, **params ) distance = euclidean_distances(X, Y, squared=True) bandwidth = np.float32(1.0 / np.sqrt(2.0 * self.gamma_)) if self.kernel == "rbf": distance = -self.gamma_ * distance K = np.exp(distance) elif self.kernel == "laplace": d = np.maximum(distance, 0) K = np.exp(-np.sqrt(d) / bandwidth) else: # self.kernel == "cauchy": K = 1 / (1 + 2.0 * self.gamma_ * distance) return K
Example #23
Source Project: svm Author: AlexanderFabisch File: svm.py License: MIT License | 4 votes |
def fit(self, X, y): """Fit the model to data matrix X and target y. Parameters ---------- X : array-like, shape (n_samples, n_features) The input data. y : array-like, shape (n_samples,) The class labels. Returns ------- self : returns a trained SVM """ self.support_vectors_ = check_array(X) self.y = check_array(y, ensure_2d=False) random_state = check_random_state(self.random_state) self.kernel_args = {} if self.kernel == "rbf" and self.gamma is not None: self.kernel_args["gamma"] = self.gamma elif self.kernel == "poly": self.kernel_args["degree"] = self.degree self.kernel_args["coef0"] = self.coef0 elif self.kernel == "sigmoid": self.kernel_args["coef0"] = self.coef0 K = pairwise_kernels(X, metric=self.kernel, **self.kernel_args) self.dual_coef_ = np.zeros(X.shape[0]) self.intercept_ = _svm.smo( K, y, self.dual_coef_, self.C, random_state, self.tol, self.numpasses, self.maxiter, self.verbose) # If the user was using a linear kernel, lets also compute and store # the weights. This will speed up evaluations during testing time. if self.kernel == "linear": self.coef_ = np.dot(self.dual_coef_ * self.y, self.support_vectors_) # only samples with nonzero coefficients are relevant for predictions support_vectors = np.nonzero(self.dual_coef_) self.dual_coef_ = self.dual_coef_[support_vectors] self.support_vectors_ = X[support_vectors] self.y = y[support_vectors] return self
Example #24
Source Project: intro_ds Author: GenTang File: spectral.py License: Apache License 2.0 | 4 votes |
def fit(self, X, y=None): """Creates an affinity matrix for X using the selected affinity, then applies spectral clustering to this affinity matrix. Parameters ---------- X : array-like or sparse matrix, shape (n_samples, n_features) OR, if affinity==`precomputed`, a precomputed affinity matrix of shape (n_samples, n_samples) """ X = check_array(X, accept_sparse=['csr', 'csc', 'coo'], dtype=np.float64) if X.shape[0] == X.shape[1] and self.affinity != "precomputed": warnings.warn("The spectral clustering API has changed. ``fit``" "now constructs an affinity matrix from data. To use" " a custom affinity matrix, " "set ``affinity=precomputed``.") if self.affinity == 'nearest_neighbors': connectivity = kneighbors_graph(X, n_neighbors=self.n_neighbors, include_self=True, n_jobs=self.n_jobs) self.affinity_matrix_ = 0.5 * (connectivity + connectivity.T) elif self.affinity == 'precomputed': self.affinity_matrix_ = X else: params = self.kernel_params if params is None: params = {} if not callable(self.affinity): params['gamma'] = self.gamma params['degree'] = self.degree params['coef0'] = self.coef0 self.affinity_matrix_ = pairwise_kernels(X, metric=self.affinity, filter_params=True, **params) random_state = check_random_state(self.random_state) self.labels_ = spectral_clustering(self.affinity_matrix_, n_clusters=self.n_clusters, eigen_solver=self.eigen_solver, random_state=random_state, n_init=self.n_init, eigen_tol=self.eigen_tol, assign_labels=self.assign_labels) return self
Example #25
Source Project: twitter-stock-recommendation Author: alvarobartt File: test_pairwise.py License: MIT License | 4 votes |
def test_pairwise_kernels(): # Test the pairwise_kernels helper function. rng = np.random.RandomState(0) X = rng.random_sample((5, 4)) Y = rng.random_sample((2, 4)) # Test with all metrics that should be in PAIRWISE_KERNEL_FUNCTIONS. test_metrics = ["rbf", "laplacian", "sigmoid", "polynomial", "linear", "chi2", "additive_chi2"] for metric in test_metrics: function = PAIRWISE_KERNEL_FUNCTIONS[metric] # Test with Y=None K1 = pairwise_kernels(X, metric=metric) K2 = function(X) assert_array_almost_equal(K1, K2) # Test with Y=Y K1 = pairwise_kernels(X, Y=Y, metric=metric) K2 = function(X, Y=Y) assert_array_almost_equal(K1, K2) # Test with tuples as X and Y X_tuples = tuple([tuple([v for v in row]) for row in X]) Y_tuples = tuple([tuple([v for v in row]) for row in Y]) K2 = pairwise_kernels(X_tuples, Y_tuples, metric=metric) assert_array_almost_equal(K1, K2) # Test with sparse X and Y X_sparse = csr_matrix(X) Y_sparse = csr_matrix(Y) if metric in ["chi2", "additive_chi2"]: # these don't support sparse matrices yet assert_raises(ValueError, pairwise_kernels, X_sparse, Y=Y_sparse, metric=metric) continue K1 = pairwise_kernels(X_sparse, Y=Y_sparse, metric=metric) assert_array_almost_equal(K1, K2) # Test with a callable function, with given keywords. metric = callable_rbf_kernel kwds = {'gamma': 0.1} K1 = pairwise_kernels(X, Y=Y, metric=metric, **kwds) K2 = rbf_kernel(X, Y=Y, **kwds) assert_array_almost_equal(K1, K2) # callable function, X=Y K1 = pairwise_kernels(X, Y=X, metric=metric, **kwds) K2 = rbf_kernel(X, Y=X, **kwds) assert_array_almost_equal(K1, K2)