コード例 #1
0
ファイル: convergence.py プロジェクト: AndreaCensi/cbc
def simplified_algo(R, iterations, warp=0):
    S = best_embedding_on_sphere(R, ndim=3)
    R_order = scale_score(R).astype('int16')
    for i in range(iterations):  # @UnusedVariable
        C = np.dot(S.T, S)
        C_sorted = np.sort(C.flat)
        R = C_sorted[R_order]
        S = best_embedding_on_sphere(R, ndim=3)

    if warp > 0:
        base_D = distances_from_directions(S)
        diameter = base_D.max()
        min_ratio = 0.1
        max_ratio = np.pi / diameter
        ratios = np.exp(np.linspace(np.log(min_ratio),
                                    np.log(max_ratio), warp))
        scores = []
        guesses = []
        for ratio in ratios:
            Cwarp = cosines_from_distances(base_D * ratio)
            Sw = best_embedding_on_sphere(Cwarp, ndim=3)
            Cw_order = scale_score(cosines_from_directions(Sw))
            scores.append(correlation_coefficient(Cw_order, R_order))
            guesses.append(Sw)
        best = np.argmax(scores)
        print('Best warp: %d (%f)' % (best, ratios[best]))
        S = guesses[best]
    return S
コード例 #2
0
def simplified_algo(R, iterations, warp=0):
    S = best_embedding_on_sphere(R, ndim=3)
    R_order = scale_score(R).astype('int16')
    for i in range(iterations):  # @UnusedVariable
        C = np.dot(S.T, S)
        C_sorted = np.sort(C.flat)
        R = C_sorted[R_order]
        S = best_embedding_on_sphere(R, ndim=3)

    if warp > 0:
        base_D = distances_from_directions(S)
        diameter = base_D.max()
        min_ratio = 0.1
        max_ratio = np.pi / diameter
        ratios = np.exp(np.linspace(np.log(min_ratio), np.log(max_ratio),
                                    warp))
        scores = []
        guesses = []
        for ratio in ratios:
            Cwarp = cosines_from_distances(base_D * ratio)
            Sw = best_embedding_on_sphere(Cwarp, ndim=3)
            Cw_order = scale_score(cosines_from_directions(Sw))
            scores.append(correlation_coefficient(Cw_order, R_order))
            guesses.append(Sw)
        best = np.argmax(scores)
        print('Best warp: %d (%f)' % (best, ratios[best]))
        S = guesses[best]
    return S
コード例 #3
0
ファイル: tc_stats.py プロジェクト: AndreaCensi/cbc
def artificial(Y, true_S):
    if true_S is None:
        return None

    print('Computing correlation')
    true_D = distances_from_directions(true_S)

    def exponential_kernel(D, alpha):
        return np.exp(-D / alpha)
    R = exponential_kernel(true_D, alpha=0.52)

    return R.astype('float32')
コード例 #4
0
ファイル: tc_stats.py プロジェクト: afcarl/cbc
def artificial(Y, true_S):
    if true_S is None:
        return None

    print('Computing correlation')
    true_D = distances_from_directions(true_S)

    def exponential_kernel(D, alpha):
        return np.exp(-D / alpha)

    R = exponential_kernel(true_D, alpha=0.52)

    return R.astype('float32')