Environment.sortedDistance module¶
sortedDistance: define function to measure of sortedness of permutations of [0..N-1].
-
Environment.sortedDistance.
weightedDistance
(choices, weights, n=None)[source]¶ Relative difference between the best possible weighted choices and the actual choices.
>>> weights = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] >>> choices = [8, 6, 5, 2] >>> weightedDistance(choices, weights) # not a bad choice 0.8333... >>> choices = [8, 6, 5, 7] >>> weightedDistance(choices, weights) # best choice! 1.000... >>> choices = [3, 2, 1, 0] >>> weightedDistance(choices, weights) # worst choice! 0.3333...
-
Environment.sortedDistance.
manhattan
(permutation, comp=None)[source]¶ A certain measure of sortedness for the list A, based on Manhattan distance.
>>> perm = [0, 1, 2, 3, 4] >>> manhattan(perm) # sorted 1.0...
>>> perm = [0, 1, 2, 5, 4, 3] >>> manhattan(perm) # almost sorted! 0.777...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> manhattan(perm) 0.4
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> manhattan(perm) 0.72
-
Environment.sortedDistance.
kendalltau
(permutation, comp=None)[source]¶ A certain measure of sortedness for the list A, based on Kendall Tau ranking coefficient.
>>> perm = [0, 1, 2, 3, 4] >>> kendalltau(perm) # sorted 0.98...
>>> perm = [0, 1, 2, 5, 4, 3] >>> kendalltau(perm) # almost sorted! 0.90...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> kendalltau(perm) 0.211...
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> kendalltau(perm) 0.984...
-
Environment.sortedDistance.
spearmanr
(permutation, comp=None)[source]¶ A certain measure of sortedness for the list A, based on Spearman ranking coefficient.
>>> perm = [0, 1, 2, 3, 4] >>> spearmanr(perm) # sorted 1.0...
>>> perm = [0, 1, 2, 5, 4, 3] >>> spearmanr(perm) # almost sorted! 0.92...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> spearmanr(perm) 0.248...
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> spearmanr(perm) 0.986...
-
Environment.sortedDistance.
gestalt
(permutation, comp=None)[source]¶ A certain measure of sortedness for the list A, based on Gestalt pattern matching.
>>> perm = [0, 1, 2, 3, 4] >>> gestalt(perm) # sorted 1.0...
>>> perm = [0, 1, 2, 5, 4, 3] >>> gestalt(perm) # almost sorted! 0.666...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> gestalt(perm) 0.4...
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> gestalt(perm) 0.5...
>>> import random >>> random.seed(0) >>> ratings = [random.gauss(1200, 200) for i in range(100000)] >>> gestalt(ratings) 8e-05...
-
Environment.sortedDistance.
meanDistance
(permutation, comp=None, methods=(<function manhattan>, <function gestalt>))[source]¶ A certain measure of sortedness for the list A, based on mean of the 2 distances: manhattan and gestalt.
>>> perm = [0, 1, 2, 3, 4] >>> meanDistance(perm) # sorted 1.0
>>> perm = [0, 1, 2, 5, 4, 3] >>> meanDistance(perm) # almost sorted! 0.722...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> meanDistance(perm) 0.4
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> meanDistance(perm) 0.61
Warning
I removed
kendalltau()
andspearmanr()
as they were giving 100% for many cases where clearly there were no reason to give 100%…
-
Environment.sortedDistance.
sortedDistance
(permutation, comp=None, methods=(<function manhattan>, <function gestalt>))¶ A certain measure of sortedness for the list A, based on mean of the 2 distances: manhattan and gestalt.
>>> perm = [0, 1, 2, 3, 4] >>> meanDistance(perm) # sorted 1.0
>>> perm = [0, 1, 2, 5, 4, 3] >>> meanDistance(perm) # almost sorted! 0.722...
>>> perm = [2, 9, 6, 4, 0, 3, 1, 7, 8, 5] >>> meanDistance(perm) 0.4
>>> perm = [2, 1, 6, 4, 0, 3, 5, 7, 8, 9] # better sorted! >>> meanDistance(perm) 0.61
Warning
I removed
kendalltau()
andspearmanr()
as they were giving 100% for many cases where clearly there were no reason to give 100%…