From d7ec441ac25f6cea6070f54a1fd07ef36323cf1c Mon Sep 17 00:00:00 2001 From: kaiza_hikaru Date: Fri, 7 Nov 2025 08:35:48 +0800 Subject: [PATCH] fix stat logic --- MOAFStat.py | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/MOAFStat.py b/MOAFStat.py index 5b2acab..f362a80 100644 --- a/MOAFStat.py +++ b/MOAFStat.py @@ -30,38 +30,21 @@ def calculate_advanced_statistics(df_result): result_stats[f'STD_{col}'] = df_result[col].std() # 3. 统计error_ratio_x列中小于等于1/3、1/2、1的比例 - # 将所有error_ratio列合并计算比例 - ratio_data = [] for col in error_ratio_cols: if col in df_result.columns: - ratio_data.extend(df_result[col].dropna().values) - - if ratio_data: - ratio_series = pd.Series(ratio_data) - result_stats['DoFAcc_1_3'] = (ratio_series <= 1/3).mean() - result_stats['DoFAcc_1_2'] = (ratio_series <= 1/2).mean() - result_stats['DoFAcc_1'] = (ratio_series <= 1).mean() - else: - result_stats['DoFAcc_1_3'] = np.nan - result_stats['DoFAcc_1_2'] = np.nan - result_stats['DoFAcc_1'] = np.nan + result_stats[f'DoFAcc_1_3_{col}'] = (df_result[col] <= 1/3).mean() + result_stats[f'DoFAcc_1_2_{col}'] = (df_result[col] <= 1/2).mean() + result_stats[f'DoFAcc_1_{col}'] = (df_result[col] <= 1).mean() # 4. 统计direction_x列中1的比例(DSS - Direction Sign Score) - direction_data = [] for col in direction_cols: if col in df_result.columns: - direction_data.extend(df_result[col].dropna().values) - - if direction_data: - direction_series = pd.Series(direction_data) - result_stats['DSS'] = direction_series.mean() # 1的比例就是均值 - else: - result_stats['DSS'] = np.nan + result_stats[f'DSS_{col}'] = df_result[col].mean() return pd.Series(result_stats) -def process_autofocus_results(input_file, dataset_type, group_size=30): +def process_autofocus_results(input_file, group_size=30): # ========== 图片级统计数据 ========== # 读取原始数据 df_original = pd.read_excel(input_file) @@ -243,7 +226,7 @@ def main(): result_path = f"results/{model_type}_{dataset_type}.xlsx" - _ = process_autofocus_results(result_path, dataset_type) + _ = process_autofocus_results(result_path) if __name__ == "__main__":