fix stat logic
This commit is contained in:
parent
5d09516151
commit
d7ec441ac2
29
MOAFStat.py
29
MOAFStat.py
@ -30,38 +30,21 @@ def calculate_advanced_statistics(df_result):
|
|||||||
result_stats[f'STD_{col}'] = df_result[col].std()
|
result_stats[f'STD_{col}'] = df_result[col].std()
|
||||||
|
|
||||||
# 3. 统计error_ratio_x列中小于等于1/3、1/2、1的比例
|
# 3. 统计error_ratio_x列中小于等于1/3、1/2、1的比例
|
||||||
# 将所有error_ratio列合并计算比例
|
|
||||||
ratio_data = []
|
|
||||||
for col in error_ratio_cols:
|
for col in error_ratio_cols:
|
||||||
if col in df_result.columns:
|
if col in df_result.columns:
|
||||||
ratio_data.extend(df_result[col].dropna().values)
|
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()
|
||||||
if ratio_data:
|
result_stats[f'DoFAcc_1_{col}'] = (df_result[col] <= 1).mean()
|
||||||
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
|
|
||||||
|
|
||||||
# 4. 统计direction_x列中1的比例(DSS - Direction Sign Score)
|
# 4. 统计direction_x列中1的比例(DSS - Direction Sign Score)
|
||||||
direction_data = []
|
|
||||||
for col in direction_cols:
|
for col in direction_cols:
|
||||||
if col in df_result.columns:
|
if col in df_result.columns:
|
||||||
direction_data.extend(df_result[col].dropna().values)
|
result_stats[f'DSS_{col}'] = df_result[col].mean()
|
||||||
|
|
||||||
if direction_data:
|
|
||||||
direction_series = pd.Series(direction_data)
|
|
||||||
result_stats['DSS'] = direction_series.mean() # 1的比例就是均值
|
|
||||||
else:
|
|
||||||
result_stats['DSS'] = np.nan
|
|
||||||
|
|
||||||
return pd.Series(result_stats)
|
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)
|
df_original = pd.read_excel(input_file)
|
||||||
@ -243,7 +226,7 @@ def main():
|
|||||||
|
|
||||||
result_path = f"results/{model_type}_{dataset_type}.xlsx"
|
result_path = f"results/{model_type}_{dataset_type}.xlsx"
|
||||||
|
|
||||||
_ = process_autofocus_results(result_path, dataset_type)
|
_ = process_autofocus_results(result_path)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user