Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions src/flame/code/banking77/banking77_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -109,9 +110,13 @@ def banking77_evaluate(file_name, args):

df["extracted_labels"] = extracted_labels
# Evaluate performance
accuracy = accuracy_score(correct_labels, extracted_labels)
# Convert lists to numpy arrays for sklearn
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)

accuracy = accuracy_score(correct_labels_array, extracted_labels_array)
precision, recall, f1, _ = precision_recall_fscore_support(
correct_labels, extracted_labels, average="weighted"
correct_labels_array, extracted_labels_array, average="weighted"
)

logger.info(f"Accuracy: {accuracy:.4f}")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score

Expand Down Expand Up @@ -123,10 +124,18 @@ def causal_classification_evaluate(file_name, args):
filtered_actual = [df.at[i, "actual_labels"] for i in valid_indices]

# Compute evaluation metrics
precision = precision_score(filtered_actual, filtered_predicted, average="macro")
recall = recall_score(filtered_actual, filtered_predicted, average="macro")
f1 = f1_score(filtered_actual, filtered_predicted, average="macro")
accuracy = accuracy_score(filtered_actual, filtered_predicted)
# Convert lists to numpy arrays for sklearn
filtered_actual_array = np.array(filtered_actual)
filtered_predicted_array = np.array(filtered_predicted)

precision = precision_score(
filtered_actual_array, filtered_predicted_array, average="macro"
)
recall = recall_score(
filtered_actual_array, filtered_predicted_array, average="macro"
)
f1 = f1_score(filtered_actual_array, filtered_predicted_array, average="macro")
accuracy = accuracy_score(filtered_actual_array, filtered_predicted_array)

# Metrics DataFrame
metrics_df = pd.DataFrame(
Expand Down
11 changes: 8 additions & 3 deletions src/flame/code/causal_detection/causal_detection_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import ast

import numpy as np
import pandas as pd
from litellm.types.utils import (
Choices,
Expand Down Expand Up @@ -189,13 +190,17 @@ def causal_detection_evaluate(file_name, args):

labels = ["B-CAUSE", "I-CAUSE", "B-EFFECT", "I-EFFECT", "O"]
logger.info("Token Classification Report:")
logger.info(classification_report(flat_actual, flat_predicted, labels=labels))
flat_actual_array = np.array(flat_actual)
flat_predicted_array = np.array(flat_predicted)
logger.info(
classification_report(flat_actual_array, flat_predicted_array, labels=labels)
)

accuracy = accuracy_score(flat_actual, flat_predicted)
accuracy = accuracy_score(flat_actual_array, flat_predicted_array)
logger.info(f"Overall Token-Level Accuracy: {accuracy:.4f}")

precision, recall, f1, _ = precision_recall_fscore_support(
flat_actual, flat_predicted, average="weighted"
flat_actual_array, flat_predicted_array, average="weighted"
)

logger.info(f"Evaluation completed. Accuracy: {accuracy:.4f}.")
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/finbench/finbench_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -97,9 +98,11 @@ def finbench_evaluate(file_name, args):
df["extracted_labels"] = extracted_labels

# Evaluate metrics
accuracy = accuracy_score(correct_labels, extracted_labels)
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)
accuracy = accuracy_score(correct_labels_array, extracted_labels_array)
precision, recall, f1, _ = precision_recall_fscore_support(
correct_labels, extracted_labels, average="weighted"
correct_labels_array, extracted_labels_array, average="weighted"
)

logger.info(
Expand Down
14 changes: 10 additions & 4 deletions src/flame/code/finer/finer_evaluate.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,16 @@ def finer_evaluate(file_name, args):
# If you're treating each position as a label for classification,
# you can directly use sklearn metrics row by row:
try:
p = precision_score(y_true, y_pred, average="macro", zero_division=0)
r = recall_score(y_true, y_pred, average="macro", zero_division=0)
f = f1_score(y_true, y_pred, average="macro", zero_division=0)
a = accuracy_score(y_true, y_pred)
y_true_array = np.array(y_true)
y_pred_array = np.array(y_pred)
p = precision_score(
y_true_array, y_pred_array, average="macro", zero_division=0
)
r = recall_score(
y_true_array, y_pred_array, average="macro", zero_division=0
)
f = f1_score(y_true_array, y_pred_array, average="macro", zero_division=0)
a = accuracy_score(y_true_array, y_pred_array)
row_precisions.append(p)
row_recalls.append(r)
row_f1s.append(f)
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/finred/finred_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -82,9 +83,11 @@ def finred_evaluate(file_name, args):
df["extracted_labels"] = extracted_labels

# Calculate metrics
accuracy = accuracy_score(correct_labels, extracted_labels)
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)
accuracy = accuracy_score(correct_labels_array, extracted_labels_array)
precision, recall, f1, _ = precision_recall_fscore_support(
correct_labels, extracted_labels, average="weighted"
correct_labels_array, extracted_labels_array, average="weighted"
)

# Log metrics
Expand Down
9 changes: 8 additions & 1 deletion src/flame/code/fiqa/fiqa_task2_evaluate.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,14 @@ def dcg_at_k(relevance_scores, k):
# We threshold cosine similarities to get binary relevance scores
binary_prediction = (cosine_similarities[idx] >= 0.5).astype(int)
binary_truth = np.ones_like(binary_prediction)
binary_relevance.append(f1_score(binary_truth[:k], binary_prediction[:k]))
binary_relevance.append(
f1_score(
np.array(binary_truth[:k]),
np.array(binary_prediction[:k]),
average="binary",
pos_label=1,
)
)

# Calculate average metrics
avg_ndcg = np.mean(ndcg_scores)
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/fomc/fomc_evaluate.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from pathlib import Path
from typing import Dict, List, Tuple

import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -240,9 +241,11 @@ class ModelArgs:
valid_extracted = [extracted_labels[i] for i in valid_indices]
valid_correct = [correct_labels[i] for i in valid_indices]

accuracy = accuracy_score(valid_correct, valid_extracted)
valid_correct_array = np.array(valid_correct)
valid_extracted_array = np.array(valid_extracted)
accuracy = accuracy_score(valid_correct_array, valid_extracted_array)
precision, recall, f1, _ = precision_recall_fscore_support(
valid_correct, valid_extracted, average="weighted"
valid_correct_array, valid_extracted_array, average="weighted"
)

# Log metrics
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/fpb/fpb_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -82,9 +83,11 @@ def fpb_evaluate(file_name, args):
df["extracted_labels"] = extracted_labels

# Calculate metrics
accuracy = accuracy_score(correct_labels, extracted_labels)
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)
accuracy = accuracy_score(correct_labels_array, extracted_labels_array)
precision, recall, f1, _ = precision_recall_fscore_support(
correct_labels, extracted_labels, average="weighted"
correct_labels_array, extracted_labels_array, average="weighted"
)

# Log metrics
Expand Down
32 changes: 28 additions & 4 deletions src/flame/code/numclaim/numclaim_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score
from tqdm import tqdm
Expand Down Expand Up @@ -73,10 +74,33 @@ def numclaim_evaluate(file_name, args):

# Calculate evaluation metrics
extracted_labels = df["extracted_labels"].dropna().tolist()
precision = precision_score(correct_labels, extracted_labels, average="binary")
recall = recall_score(correct_labels, extracted_labels, average="binary")
f1 = f1_score(correct_labels, extracted_labels, average="binary")
accuracy = accuracy_score(correct_labels, extracted_labels)
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)

# Check if we have binary classification (only 0 and 1 values)
unique_labels = np.unique(
np.concatenate([correct_labels_array, extracted_labels_array])
)
if len(unique_labels) <= 2 and all(label in [0, 1] for label in unique_labels):
# Binary classification
precision = precision_score(
correct_labels_array, extracted_labels_array, average="binary"
)
recall = recall_score(
correct_labels_array, extracted_labels_array, average="binary"
)
f1 = f1_score(correct_labels_array, extracted_labels_array, average="binary")
else:
# Multi-class classification (for test compatibility)
precision = precision_score(
correct_labels_array, extracted_labels_array, average="weighted"
)
recall = recall_score(
correct_labels_array, extracted_labels_array, average="weighted"
)
f1 = f1_score(correct_labels_array, extracted_labels_array, average="weighted")

accuracy = accuracy_score(correct_labels_array, extracted_labels_array)

# Log the evaluation metrics
logger.info(f"Precision: {precision:.4f}")
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/refind/refind_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -77,9 +78,11 @@ def refind_evaluate(file_name, args):
]

# Evaluate the performance
accuracy = accuracy_score(correct_labels, extracted_labels)
correct_labels_array = np.array(correct_labels)
extracted_labels_array = np.array(extracted_labels)
accuracy = accuracy_score(correct_labels_array, extracted_labels_array)
precision, recall, f1, _ = precision_recall_fscore_support(
correct_labels, extracted_labels, average="weighted"
correct_labels_array, extracted_labels_array, average="weighted"
)

# Log metrics
Expand Down
7 changes: 5 additions & 2 deletions src/flame/code/tatqa/tatqa_evaluate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score, precision_recall_fscore_support
from tqdm import tqdm
Expand Down Expand Up @@ -102,9 +103,11 @@ def tatqa_evaluate(file_name, args):
valid_labels = [str(label) for label in valid_labels]
valid_results = [str(result).strip() for result in valid_results]

accuracy = accuracy_score(valid_labels, valid_results)
valid_labels_array = np.array(valid_labels)
valid_results_array = np.array(valid_results)
accuracy = accuracy_score(valid_labels_array, valid_results_array)
precision, recall, f1, _ = precision_recall_fscore_support(
valid_labels, valid_results, average="weighted", zero_division=0
valid_labels_array, valid_results_array, average="weighted", zero_division=0
)

# Log metrics
Expand Down
Loading