Exemple #1
0
def calculate_variance(X, Xs):
    kernel = RBF()
    kernel.__init__()
    sigma = 0.01
    ks = kernel.diag(Xs)
    Kt = kernel.__call__(X, X) + sigma**2
    if is_invertible(Kt):
        Kt = inv(Kt)
    else:
        Kt = pinv(Kt)
    K = kernel.__call__(Xs, X)
    Ktt = np.matmul(K, Kt)
    Ktt = np.matmul(Ktt, K.transpose())
    Ktt = Ktt.diagonal()
    var = ks - Ktt.transpose()
    return var
 def costfun_rbf(x):
     rbf = RBF()
     res = np.dot(np.dot(
         np.transpose(x), rbf.__call__(S, S)), x) - 2 * np.dot(
             np.transpose(x), rbf.__call__(S, b)) + rbf.__call__(b, b)
     return res[0][0]
# Anisotropicly distributed data
random_state = 170
X, y = datasets.make_blobs(n_samples=n_samples, random_state=random_state)
transformation = [[0.6, -0.6], [-0.4, 0.8]]
X_aniso = np.dot(X, transformation)
aniso = (X_aniso, y)

# print aniso

for datatuple in [aniso]:
    r = 1
    if r == 1:
        run_kmeans_and_plot(datatuple, 'kernel kmeans')
    elif r == 2:
        run_kmeans_and_plot(datatuple, 'kmeans')
    else:
        # print 'test'
        x = np.asarray(datatuple[0])
        kernel = 'rbf'

        if kernel == 'linear':
            kernel_product = pairwisekernel.linear_kernel(x, x)
            # print kernel_product.shape
        elif kernel == 'quadratic':
            kernel_product = pairwisekernel.polynomial_kernel(x, x, degree=2)
        elif kernel == 'rbf':
            # print 'test'
            rbf_kernel = RBF()
            print rbf_kernel.hyperparameters
            kernel_product = rbf_kernel.__call__(x, x)
            print kernel_product.shape
Exemple #4
0
def get_Relative_Average_similarity(X, AverageSimilarity):
    X_rand = X[np.random.randint(1, len(X), size=5000 )]
    rbf  = RBF(1)
    M = rbf.__call__(X_rand, X)
    A_temp = 1/AverageSimilarity
    return np.mean(M*A_temp , axis=0)
Exemple #5
0
def get_Average_similarity(X):
    X_rand = X[np.random.randint(1, len(X), size=5000 )]
    rbf  = RBF(1)
    M = rbf.__call__(X, X_rand)
    AverageSimilarity = np.mean(M, axis=1)
    return AverageSimilarity