@@ -118,29 +118,30 @@ def calc_aAcc(data):
118118 data ['figure_id' ] = [x .split ('_' )[4 ] for x in data ['index' ]]
119119 data ['question_id' ] = [x .split ('_' )[5 ] for x in data ['index' ]]
120120
121- res = dict (split = [], aAcc = [], fAcc = [], qAcc = [])
122- res ['split' ].append ('Overall' )
123- res ['aAcc' ].append (calc_aAcc (data ))
124- res ['fAcc' ].append (calc_fAcc (data ))
125- res ['qAcc' ].append (calc_qAcc (data ))
121+ res = dict (split = [], aAcc = [], fAcc = [], qAcc = [], Avg = [])
122+
123+ def append_split (name , subset ):
124+ aacc = calc_aAcc (subset )
125+ facc = calc_fAcc (subset )
126+ qacc = calc_qAcc (subset )
127+ res ['split' ].append (name )
128+ res ['aAcc' ].append (aacc )
129+ res ['fAcc' ].append (facc )
130+ res ['qAcc' ].append (qacc )
131+ # OpenCompass MM leaderboard overall: (aAcc + fAcc + qAcc) / 3
132+ res ['Avg' ].append ((aacc + facc + qacc ) / 3 )
133+
134+ append_split ('Overall' , data )
126135
127136 if 'category' in data :
128137 cates = list (set (data ['category' ]))
129138 for c in cates :
130- sub = data [data ['category' ] == c ]
131- res ['split' ].append (c )
132- res ['aAcc' ].append (calc_aAcc (sub ))
133- res ['fAcc' ].append (calc_fAcc (sub ))
134- res ['qAcc' ].append (calc_qAcc (sub ))
139+ append_split (c , data [data ['category' ] == c ])
135140
136141 if 'l2-category' in data :
137142 cates = list (set (data ['l2-category' ]))
138143 for c in cates :
139- sub = data [data ['l2-category' ] == c ]
140- res ['split' ].append (c )
141- res ['aAcc' ].append (calc_aAcc (sub ))
142- res ['fAcc' ].append (calc_fAcc (sub ))
143- res ['qAcc' ].append (calc_qAcc (sub ))
144+ append_split (c , data [data ['l2-category' ] == c ])
144145 ret = pd .DataFrame (res )
145146 return ret
146147
0 commit comments