Esempio n. 1
0
def test_matrix_difference_with_accuracy_etc():
    print "\n-- 'matrix_difference' (precision/recall/accuracy/cosine), 'max_binary_matrix' --"
    X_true = np.array([[2, 0, 0],
                       [2, 0, 2],
                       [0, 1, 0],
                       [0, 0, 3],
                       [0, 0, 3],
                       [1, 0, 2],
                       [0, 3, 3]])
    X_pred = np.array([[1, 1, 2],
                       [2, 1, 2],
                       [3, 4, 0],
                       [1, 1, 2],
                       [2, 1, 1],
                       [1, 2, 2],
                       [1, 2.99, 3]])
    X_true_b = max_binary_matrix(X_true)
    X_pred_b = max_binary_matrix(X_pred)
    X_pred_b1 = max_binary_matrix(X_pred, threshold=0.1)
    print "X_true:\n", X_true
    print "X_pred:\n", X_pred
    print "X_true binary:\n", X_true_b
    print "X_pred binary:\n", X_pred_b
    print "X_pred binary with threshold 0.1:\n", X_pred_b1

    ind = list([])
    # ind = list([0, 1])
    # ind = list([1, 2, 3, 4, 5])
    # ind = list([0, 2, 3, 4, 5, 6])
    print "\nPrecision:\n", matrix_difference(X_true, X_pred, ind, vector=True, similarity='precision')

    print "*** type:", type (matrix_difference(X_true, X_pred, ind, vector=True, similarity='precision'))

    print "Recall:\n", matrix_difference(X_true, X_pred, ind, vector=True, similarity='recall')
    print "Accuracy:\n", matrix_difference(X_true, X_pred, ind, vector=True, similarity='accuracy')
    cosine_list = matrix_difference(X_true, X_pred, ind, vector=True, similarity='cosine')
    print "Cosine:\n", cosine_list
    print "Cosine sorted:\n", sorted(cosine_list, reverse=True)

    print "\nPrecision:\n", matrix_difference(X_true, X_pred, ind, similarity='precision')
    print "Recall:\n", matrix_difference(X_true, X_pred, ind, similarity='recall')
    print "Accuracy:\n", matrix_difference(X_true, X_pred, ind)
    print "Cosine:\n", matrix_difference(X_true, X_pred, ind, similarity='cosine')
Esempio n. 2
0
def test_matrix_difference():
    print "\n-- 'matrix_difference' (cosine/cosine_ratio/l2), 'to_centering_beliefs' --"
    X0 = np.array([[2, 0, 0],
                   [2, 0, 2],
                   [0, 1, 0],
                   [0, 0, 3],
                   [0, 0, 3],
                   [1, 0, 2],
                   [0, 3, 3],
                   [0, 0, 0],
                   [0, 1, 0],
                   [0, 1, 0],
                   [9, 9, 9],
                   [9, 9, 9],
                   [100, 100, 100],])
    X1 = np.array([[1, 1, 2],
                   [2, 1, 2],
                   [3, 4, 0],
                   [1, 1, 2],
                   [2, 1, 1],
                   [1, 2, 2],
                   [1, 2, 3],
                   [0, 0, 0],
                   [1, 0, 0],
                   [0, 2, 0],
                   [9, 9, 9],
                   [8, 9, 9],
                   [100, 100, 101],])
    print "X0:\n", X0
    print "X1:\n", X1

    result = matrix_difference(X0, X1, similarity='cosine', vector=True)
    print "cosine:\n", result
    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine_ratio:\n", result
    result = matrix_difference(X0, X1, similarity='l2', vector=True)
    print "l2:\n", result

    X0 = np.array([[ 1.       ,   0.       ,   0.        ],
                  [ 0.30804075,  0.56206462,  0.12989463],
                  [ 0.32434628,  0.33782686,  0.33782686],
                  [ 0.30804075,  0.12989463,  0.56206462],
                  [ 0.14009173,  0.71981654,  0.14009173],
                  [ 0.32273419,  0.21860539,  0.45866042],
                  [ 0.33804084,  0.32391832,  0.33804084],
                  [ 0.45866042,  0.21860539,  0.32273419]])
    X1 = np.array([[ 1.      ,    0.      ,    0.        ],
                  [ 0.22382029,  0.45296374,  0.32321597],
                  [ 0.32434628,  0.33782686,  0.33782686],
                  [ 0.22382029,  0.32321597,  0.45296374],
                  [ 0.2466463 ,  0.5067074 ,  0.2466463 ],
                  [ 0.32273419,  0.21860539,  0.45866042],
                  [ 0.33804084,  0.32391832,  0.33804084],
                  [ 0.45866042,  0.21860539,  0.32273419]])
    print "\nX0:\n", X0
    print "X1:\n", X1

    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine:\n", result

    # X0z = row_normalize_matrix(X0, norm='zscores')
    # X1z = row_normalize_matrix(X1, norm='zscores')
    X0z = to_centering_beliefs(X0)
    X1z = to_centering_beliefs(X1)

    print "\nX0z:\n", X0z
    print "X1z:\n", X1z

    result = matrix_difference(X0z, X1z, similarity='cosine_ratio', vector=True)
    print "cosine zscores:\n", result

    # actualPercentageConverged = matrix_convergence_percentage(X0z, X1z, threshold=convergenceCosineSimilarity)

    X0 = np.array([1, 0, 0])
    X1 = np.array([1, 1, 0])
    print "\nX0:\n", X0
    print "X1:\n", X1
    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine zscores:\n", result
Esempio n. 3
0
def test_matrix_difference_with_cosine_simililarity():
    print "\n-- 'matrix_difference' (cosine), 'row_normalize_matrix' --"
    print "k=3"
    v1 = np.array([1, 0, 0])
    v2 = np.array([0, 1, 0])
    v3 = np.array([1, 1, 0])
    print "Cosine with original:\n  ", \
        matrix_difference(v1,
                          v1, similarity='cosine')
    print "Cosine with original zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v1, norm='zscores'), similarity='cosine')
    print "Cosine with zscore :\n  ", \
        matrix_difference(v1,
                          row_normalize_matrix(v1, norm='zscores'), similarity='cosine')
    print "Cosine with normal:\n  ", \
        matrix_difference(v1,
                          v2, similarity='cosine')
    print "Cosine with normal after both zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v2, norm='zscores'), similarity='cosine')
    print "! Notice that average guessing leads to expectation of 0!"
    print "Cosine v1, v3:\n  ", \
        matrix_difference(v1,
                          v3, similarity='cosine')
    print "Cosine v1, v3 after zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')

    print "\nk=5"
    v1 = np.array([1, 0, 0, 0, 0])
    v2 = np.array([0, 1, 0, 0, 0])
    v3 = np.array([1, 1, 0, 0, 0])
    v4 = np.array([0, 0, 0, 0, 0])
    print "Cosine with normal:\n  ", \
        matrix_difference(v1,
                          v2, similarity='cosine')
    print "Cosine with normal after both zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v2, norm='zscores'), similarity='cosine')
    print "! Notice that average guessing leads to expectation of 0!"
    print "Cosine v1, v3:\n  ", \
        matrix_difference(v1,
                          v3, similarity='cosine')
    print "Cosine v1, v3 after zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')
    print "Average Cos similarity partly zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')
    print "Cosine with 0-vector:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v4, norm='zscores'), similarity='cosine')
    print

    X = np.array([[1, 0, 0, 0, 0],
                  [1, 0, 0, 0, 0],
                  [1, 0, 0, 0, 0],
                  [1, 0, 0, 0, 0],
                  [1, 1, 0, 0, 0]])
    Y = np.array([[1, 0, 0, 0, 0],
                  [1, 1, 0, 0, 0],
                  [0, 0, 0, 0, 0],
                  [0, 1, 0, 0, 0],
                  [1, 1.1, 0, 0, 0]])
    print "X\n", X
    print "Y\n", Y
    Xs = row_normalize_matrix(X, norm='zscores')
    Ys = row_normalize_matrix(Y, norm='zscores')
    print "Xs\n", Xs
    print "Ys\n", Ys

    print "\nCosine original:\n  ", \
        matrix_difference(X,
                          Y, vector=True, similarity='cosine')
    print "Cosine zscore:\n  ", \
        matrix_difference(Xs,
                          Ys, vector=True, similarity='cosine')
    print "Average cosine zscore:\n  ", \
        matrix_difference(X,
                          Y, similarity='cosine')
Esempio n. 4
0
def test_matrix_difference():
    print "\n-- 'matrix_difference' (cosine/cosine_ratio/l2), 'to_centering_beliefs' --"
    X0 = np.array([
        [2, 0, 0],
        [2, 0, 2],
        [0, 1, 0],
        [0, 0, 3],
        [0, 0, 3],
        [1, 0, 2],
        [0, 3, 3],
        [0, 0, 0],
        [0, 1, 0],
        [0, 1, 0],
        [9, 9, 9],
        [9, 9, 9],
        [100, 100, 100],
    ])
    X1 = np.array([
        [1, 1, 2],
        [2, 1, 2],
        [3, 4, 0],
        [1, 1, 2],
        [2, 1, 1],
        [1, 2, 2],
        [1, 2, 3],
        [0, 0, 0],
        [1, 0, 0],
        [0, 2, 0],
        [9, 9, 9],
        [8, 9, 9],
        [100, 100, 101],
    ])
    print "X0:\n", X0
    print "X1:\n", X1

    result = matrix_difference(X0, X1, similarity='cosine', vector=True)
    print "cosine:\n", result
    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine_ratio:\n", result
    result = matrix_difference(X0, X1, similarity='l2', vector=True)
    print "l2:\n", result

    X0 = np.array([[1., 0., 0.], [0.30804075, 0.56206462, 0.12989463],
                   [0.32434628, 0.33782686, 0.33782686],
                   [0.30804075, 0.12989463, 0.56206462],
                   [0.14009173, 0.71981654, 0.14009173],
                   [0.32273419, 0.21860539, 0.45866042],
                   [0.33804084, 0.32391832, 0.33804084],
                   [0.45866042, 0.21860539, 0.32273419]])
    X1 = np.array([[1., 0., 0.], [0.22382029, 0.45296374, 0.32321597],
                   [0.32434628, 0.33782686, 0.33782686],
                   [0.22382029, 0.32321597, 0.45296374],
                   [0.2466463, 0.5067074, 0.2466463],
                   [0.32273419, 0.21860539, 0.45866042],
                   [0.33804084, 0.32391832, 0.33804084],
                   [0.45866042, 0.21860539, 0.32273419]])
    print "\nX0:\n", X0
    print "X1:\n", X1

    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine:\n", result

    # X0z = row_normalize_matrix(X0, norm='zscores')
    # X1z = row_normalize_matrix(X1, norm='zscores')
    X0z = to_centering_beliefs(X0)
    X1z = to_centering_beliefs(X1)

    print "\nX0z:\n", X0z
    print "X1z:\n", X1z

    result = matrix_difference(X0z,
                               X1z,
                               similarity='cosine_ratio',
                               vector=True)
    print "cosine zscores:\n", result

    # actualPercentageConverged = matrix_convergence_percentage(X0z, X1z, threshold=convergenceCosineSimilarity)

    X0 = np.array([1, 0, 0])
    X1 = np.array([1, 1, 0])
    print "\nX0:\n", X0
    print "X1:\n", X1
    result = matrix_difference(X0, X1, similarity='cosine_ratio', vector=True)
    print "cosine zscores:\n", result
Esempio n. 5
0
def test_matrix_difference_with_accuracy_etc():
    print "\n-- 'matrix_difference' (precision/recall/accuracy/cosine), 'max_binary_matrix' --"
    X_true = np.array([[2, 0, 0], [2, 0, 2], [0, 1, 0], [0, 0, 3], [0, 0, 3],
                       [1, 0, 2], [0, 3, 3]])
    X_pred = np.array([[1, 1, 2], [2, 1, 2], [3, 4, 0], [1, 1, 2], [2, 1, 1],
                       [1, 2, 2], [1, 2.99, 3]])
    X_true_b = max_binary_matrix(X_true)
    X_pred_b = max_binary_matrix(X_pred)
    X_pred_b1 = max_binary_matrix(X_pred, threshold=0.1)
    print "X_true:\n", X_true
    print "X_pred:\n", X_pred
    print "X_true binary:\n", X_true_b
    print "X_pred binary:\n", X_pred_b
    print "X_pred binary with threshold 0.1:\n", X_pred_b1

    ind = list([])
    # ind = list([0, 1])
    # ind = list([1, 2, 3, 4, 5])
    # ind = list([0, 2, 3, 4, 5, 6])
    print "\nPrecision:\n", matrix_difference(X_true,
                                              X_pred,
                                              ind,
                                              vector=True,
                                              similarity='precision')

    print "*** type:", type(
        matrix_difference(X_true,
                          X_pred,
                          ind,
                          vector=True,
                          similarity='precision'))

    print "Recall:\n", matrix_difference(X_true,
                                         X_pred,
                                         ind,
                                         vector=True,
                                         similarity='recall')
    print "Accuracy:\n", matrix_difference(X_true,
                                           X_pred,
                                           ind,
                                           vector=True,
                                           similarity='accuracy')
    cosine_list = matrix_difference(X_true,
                                    X_pred,
                                    ind,
                                    vector=True,
                                    similarity='cosine')
    print "Cosine:\n", cosine_list
    print "Cosine sorted:\n", sorted(cosine_list, reverse=True)

    print "\nPrecision:\n", matrix_difference(X_true,
                                              X_pred,
                                              ind,
                                              similarity='precision')
    print "Recall:\n", matrix_difference(X_true,
                                         X_pred,
                                         ind,
                                         similarity='recall')
    print "Accuracy:\n", matrix_difference(X_true, X_pred, ind)
    print "Cosine:\n", matrix_difference(X_true,
                                         X_pred,
                                         ind,
                                         similarity='cosine')
Esempio n. 6
0
def test_matrix_difference_with_cosine_simililarity():
    print "\n-- 'matrix_difference' (cosine), 'row_normalize_matrix' --"
    print "k=3"
    v1 = np.array([1, 0, 0])
    v2 = np.array([0, 1, 0])
    v3 = np.array([1, 1, 0])
    print "Cosine with original:\n  ", \
        matrix_difference(v1,
                          v1, similarity='cosine')
    print "Cosine with original zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v1, norm='zscores'), similarity='cosine')
    print "Cosine with zscore :\n  ", \
        matrix_difference(v1,
                          row_normalize_matrix(v1, norm='zscores'), similarity='cosine')
    print "Cosine with normal:\n  ", \
        matrix_difference(v1,
                          v2, similarity='cosine')
    print "Cosine with normal after both zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v2, norm='zscores'), similarity='cosine')
    print "! Notice that average guessing leads to expectation of 0!"
    print "Cosine v1, v3:\n  ", \
        matrix_difference(v1,
                          v3, similarity='cosine')
    print "Cosine v1, v3 after zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')

    print "\nk=5"
    v1 = np.array([1, 0, 0, 0, 0])
    v2 = np.array([0, 1, 0, 0, 0])
    v3 = np.array([1, 1, 0, 0, 0])
    v4 = np.array([0, 0, 0, 0, 0])
    print "Cosine with normal:\n  ", \
        matrix_difference(v1,
                          v2, similarity='cosine')
    print "Cosine with normal after both zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v2, norm='zscores'), similarity='cosine')
    print "! Notice that average guessing leads to expectation of 0!"
    print "Cosine v1, v3:\n  ", \
        matrix_difference(v1,
                          v3, similarity='cosine')
    print "Cosine v1, v3 after zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')
    print "Average Cos similarity partly zscore:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v3, norm='zscores'), similarity='cosine')
    print "Cosine with 0-vector:\n  ", \
        matrix_difference(row_normalize_matrix(v1, norm='zscores'),
                          row_normalize_matrix(v4, norm='zscores'), similarity='cosine')
    print

    X = np.array([[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0],
                  [1, 0, 0, 0, 0], [1, 1, 0, 0, 0]])
    Y = np.array([[1, 0, 0, 0, 0], [1, 1, 0, 0, 0], [0, 0, 0, 0, 0],
                  [0, 1, 0, 0, 0], [1, 1.1, 0, 0, 0]])
    print "X\n", X
    print "Y\n", Y
    Xs = row_normalize_matrix(X, norm='zscores')
    Ys = row_normalize_matrix(Y, norm='zscores')
    print "Xs\n", Xs
    print "Ys\n", Ys

    print "\nCosine original:\n  ", \
        matrix_difference(X,
                          Y, vector=True, similarity='cosine')
    print "Cosine zscore:\n  ", \
        matrix_difference(Xs,
                          Ys, vector=True, similarity='cosine')
    print "Average cosine zscore:\n  ", \
        matrix_difference(X,
                          Y, similarity='cosine')