In [49]:
from sklearn import preprocessing
from sklearn.kernel_approximation import Nystroem
from sklearn.metrics.pairwise import pairwise_kernels
import numpy as np

import random
from collections import Counter

def fast_cov(X):
    # assume...correlation and covariant are interchangeable...
    X_scaled = preprocessing.scale(X)
    #X_approx_cor = pairwise_kernels(X_scaled.T, metric='cosine')
    X_approx_cor = Nystroem("cosine").fit_transform(X_scaled.T)
    X_cor = X_approx_cor.dot(X_approx_cor.T)
    return X_cor

In [50]:
b = np.random.normal(size=(110, 1100))

In [51]:
XX = fast_cov(b)

In [52]:
XX1 = pairwise_kernels(b.T, metric='cosine')

In [53]:
XX1.shape


Out[53]:
(1100, 1100)

In [54]:
XX.shape


Out[54]:
(1100, 1100)

In [ ]: