Skip to content

Instantly share code, notes, and snippets.

@danyaljj
Created August 31, 2021 21:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danyaljj/4f46c832facf3c7420ca04ca199dd90b to your computer and use it in GitHub Desktop.
Save danyaljj/4f46c832facf3c7420ca04ca199dd90b to your computer and use it in GitHub Desktop.
import statistics as st
def metric1(scores, row_aggregator, column_aggregator, cell_aggregator):
row_values = []
for row_idx, row1 in enumerate(scores):
diagonal_x = row1[row_idx]
row_values.append(
column_aggregator(
[cell_aggregator(diagonal_x, x, abs(col_idx - row_idx)) for col_idx, x in enumerate(row1) if col_idx != row_idx]
)
)
score = 1 - row_aggregator(row_values)
print(score)
mean_aggregator = st.mean
max_aggregator = max
# def cell_aggregator(diag, y, dist_years):
# return pow(abs(diag - y), dist_years / 5)
def cell_aggregator(diag, y, dist_years):
return pow(max(diag - y, 0), dist_years / 5)
scores0 = [
[0, 1],
[1, 0],
]
scores1 = [
[1, 0],
[0, 1],
]
scores2 = [
[0, 0],
[0, 0]
]
scores3 = [
[1, 0.5],
[0.5, 1],
]
scores4 = [
[0.5, 0.5],
[0.5, 0.5],
]
scores5 = [
[1, 0.5, 0.5],
[0.5, 1, 0.5],
]
scores6 = [
[1, 0.5, 0.5],
[0.5, 1, 0.5],
[0.5, 0.5, 1],
]
scores7 = [
[x/100.0 for x in [91.3, 76.8, 65.5, 56.3, 56.7, 48.4]],
[x/100.0 for x in [81.3, 83.4, 71.6, 62.2, 56.6, 49.1]],
[x/100.0 for x in [68.2, 74.8, 83.9, 72.9, 63.8, 56.2]],
[x/100.0 for x in [60.6, 65.8, 77.1, 79.2, 69.5, 64.3]],
[x/100.0 for x in [51.9, 58.4, 68.6, 72.6, 80.2, 71.8]],
[x/100.0 for x in [45.8, 53.1, 65.1, 69.6, 76.1, 78.0]]
]
scores8 = [
[x/100.0 for x in [91.3, 76.8, 65.5, 56.3, 56.7]],
[x/100.0 for x in [81.3, 83.4, 71.6, 62.2, 56.6]],
[x/100.0 for x in [68.2, 74.8, 83.9, 72.9, 63.8]],
[x/100.0 for x in [60.6, 65.8, 77.1, 79.2, 69.5]],
[x/100.0 for x in [51.9, 58.4, 68.6, 72.6, 80.2]],
]
metric1(scores0, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores1, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores2, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores3, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores4, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores5, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores6, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores7, mean_aggregator, mean_aggregator, cell_aggregator)
metric1(scores8, mean_aggregator, mean_aggregator, cell_aggregator)
# from scipy import stats
# def metric2(scores):
# out = stats.spearmanr(scores)
# print(out)
#
# metric2(scores1)
# metric2(scores2)
# metric2(scores3)
# # print(scores7)
# metric2(scores6)
# metric2(scores7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment