@@ -67,7 +67,7 @@ def load_published_results_in_tall_format(
6767 return pd .DataFrame (data = data , columns = ['model' , 'columns' , 'mean' , 'std' ])
6868
6969
70- def generate_results_table ():
70+ def generate_results_table (with_std : bool ):
7171 all_tables = []
7272 for dataset , dataset_df in read_experiment_collation ().groupby ('dataset' ):
7373 if len (dataset_df ['model' ].unique ()) < 2 :
@@ -78,7 +78,7 @@ def generate_results_table():
7878
7979 published_results_tall_df = load_published_results_in_tall_format (dataset = dataset )
8080 all_results_tall_df = pd .concat ([tall_summary_df , published_results_tall_df ], ignore_index = True )
81- wide_summary_df = reorganize_summary_df (all_results_tall_df )
81+ wide_summary_df = reorganize_summary_df (all_results_tall_df , with_std = with_std )
8282 wide_summary_df = wide_summary_df .applymap (lambda v : ('$' + v + '$' ) if v != '' else '' )
8383
8484 # Save as Latex table
@@ -90,7 +90,8 @@ def generate_results_table():
9090 bold_rows = True ,
9191 )
9292 # table_latex = _process_tex(table_latex)
93- with open (os .path .join (SUMMARIES , f'{ dataset } _table.tex' ), 'w' ) as file :
93+ suffix = '' if with_std else '_without_std'
94+ with open (os .path .join (SUMMARIES , f'{ dataset } _table{ suffix } .tex' ), 'w' ) as file :
9495 print (table_latex , file = file )
9596
9697 dataset = pykeen .datasets .datasets [dataset ].__name__
@@ -133,7 +134,7 @@ def get_width(column):
133134 return prelen , postlen
134135
135136
136- def format_values (mean , std , mean_w , std_w ) :
137+ def format_values (mean , std , mean_w , std_w , with_std : bool ) -> str :
137138 if mean is None :
138139 return ''
139140 # format mean
@@ -145,31 +146,32 @@ def format_values(mean, std, mean_w, std_w):
145146 pre = r'\phantom{' + (pre_len - len (pre )) * '0' + '}' + pre
146147 if len (post ) < post_len :
147148 post = post + r'\phantom{' + (post_len - len (post )) * '0' + '}'
148- mean_str = pre + '.' + post
149- if std is None :
150- pre_len , post_len = std_w
151- std_str = r'\phantom{ \pm ' + '0' * pre_len + '.' + '0' * post_len + '}'
152- else :
153- pre , post = std .split ('.' )
154- pre_len , post_len = std_w
155- if len (pre ) < pre_len :
156- pre = r'\phantom{' + (pre_len - len (pre )) * '0' + '}' + pre
157- if len (post ) < post_len :
158- post = post + r'\phantom{' + (post_len - len (post )) * '0' + '}'
159- std_str = r' \pm ' + pre + '.' + post
160- out = mean_str + std_str
149+ out = pre + '.' + post
150+ if with_std :
151+ if std is None :
152+ pre_len , post_len = std_w
153+ std_str = r'\phantom{ \pm ' + '0' * pre_len + '.' + '0' * post_len + '}'
154+ else :
155+ pre , post = std .split ('.' )
156+ pre_len , post_len = std_w
157+ if len (pre ) < pre_len :
158+ pre = r'\phantom{' + (pre_len - len (pre )) * '0' + '}' + pre
159+ if len (post ) < post_len :
160+ post = post + r'\phantom{' + (post_len - len (post )) * '0' + '}'
161+ std_str = r' \pm ' + pre + '.' + post
162+ out += std_str
161163 out = out .replace (r'}\phantom{' , '' )
162164 return out
163165
164166
165- def reorganize_summary_df (df : pd .DataFrame ) -> pd .DataFrame :
167+ def reorganize_summary_df (df : pd .DataFrame , with_std : bool ) -> pd .DataFrame :
166168 df ['short_columns' ] = df ['columns' ].str .replace ('.((worst)|(avg)|(best)|(pub))' , '' , regex = True )
167169 _n = df .groupby (['short_columns' ]).aggregate ({'mean' : get_width , 'std' : get_width })
168170 n = _n ['std' ]
169171 _mean_n = _n ['mean' ]
170172
171173 df ['values' ] = [
172- format_values (mean = mean , std = std , mean_w = _mean_n [column ], std_w = n [column ])
174+ format_values (mean = mean , std = std , mean_w = _mean_n [column ], std_w = n [column ], with_std = with_std )
173175 for column , mean , std in df [['short_columns' , 'mean' , 'std' ]].values
174176 ]
175177 inconsistent_rank_mask = df [~ df ['columns' ].str .contains ('.pub' )].groupby (by = ['model' ]).agg (
@@ -330,7 +332,8 @@ def generate_size_table():
330332
331333def main ():
332334 size_table = generate_size_table ()
333- all_tables = generate_results_table ()
335+ for with_std in (False , True ):
336+ all_tables = generate_results_table (with_std = with_std )
334337 write_pdfs (all_tables = all_tables , size_table = size_table )
335338
336339
0 commit comments