@@ -72,6 +72,7 @@ def display_ranking_comparison(query_results, expected_ranking: list[str]) -> No
7272
7373def display_benchmark_results (results , queries , models ) -> None :
7474 """Display benchmark results with simple metrics and visual comparisons."""
75+ from statistics import median
7576
7677 # Group results by model
7778 results_by_model = defaultdict (list )
@@ -81,22 +82,22 @@ def display_benchmark_results(results, queries, models) -> None:
8182 console .print ("\n === Summary by Model ===\n " )
8283 summary_table = Table (show_header = True )
8384 summary_table .add_column ("Model" )
84- summary_table .add_column ("Avg Latency" , justify = "right" )
85- summary_table .add_column ("Avg Rank Corr" , justify = "right" )
86- summary_table .add_column ("Avg Top-5 Overlap" , justify = "right" )
85+ summary_table .add_column ("Median Latency" , justify = "right" )
86+ summary_table .add_column ("Median Rank Corr" , justify = "right" )
87+ summary_table .add_column ("Median Top-5 Overlap" , justify = "right" )
8788
8889 for model_name , model_results in results_by_model .items ():
89- avg_latency = sum (r .latency_ms for r in model_results ) / len ( model_results )
90+ median_latency = median (r .latency_ms for r in model_results )
9091
9192 corr_values = [r .rank_correlation for r in model_results if r .rank_correlation is not None ]
9293 top5_values = [r .top_k_overlap [5 ] for r in model_results if r .top_k_overlap and 5 in r .top_k_overlap ]
9394
9495 if corr_values :
95- avg_corr = sum ( corr_values ) / len (corr_values )
96- avg_top5 = sum ( top5_values ) / len (top5_values ) if top5_values else 0.0
97- summary_table .add_row (model_name , f"{ avg_latency :.1f} ms" , f"{ avg_corr :.3f} " , f"{ avg_top5 :.1%} " )
96+ median_corr = median (corr_values )
97+ median_top5 = median (top5_values ) if top5_values else 0.0
98+ summary_table .add_row (model_name , f"{ median_latency :.1f} ms" , f"{ median_corr :.3f} " , f"{ median_top5 :.1%} " )
9899 else :
99- summary_table .add_row (model_name , f"{ avg_latency :.1f} ms" , "N/A" , "N/A" )
100+ summary_table .add_row (model_name , f"{ median_latency :.1f} ms" , "N/A" , "N/A" )
100101
101102 console .print (summary_table )
102103
0 commit comments