laba2 / evaluate.py
Shoker2
init
242c54b
import argparse
import pandas as pd
from sklearn.metrics import accuracy_score, confusion_matrix
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--ground-truth", required=True)
parser.add_argument("--predictions", required=True)
args = parser.parse_args()
df_true = pd.read_csv(args.ground_truth)
df_pred = pd.read_csv(args.predictions)
if "label" not in df_true.columns or "label" not in df_pred.columns:
raise ValueError("Оба файла должны содержать колонку 'label'")
if len(df_true) != len(df_pred):
raise ValueError(
f"Разная длина файлов: ground-truth={len(df_true)}, "
f"predictions={len(df_pred)}"
)
y_true = df_true["label"].values
y_pred = df_pred["label"].values
acc = accuracy_score(y_true, y_pred)
cm = confusion_matrix(y_true, y_pred)
print(f"Accuracy: {acc:.4f}")
print("Confusion matrix:")
print(cm)
if __name__ == "__main__":
main()