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')
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
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')
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
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')