import warnings
warnings.filterwarnings("ignore", category=UserWarning)

import pandas as pd
import joblib
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score

model = joblib.load("gesture_model.joblib")

df = pd.read_csv("gesture_val.csv")
X = df.drop(columns=["label"]).values
y = df["label"].values
print(f"Validation samples: {len(df)}")

pred = model.predict(X)

print(f"\nOverall accuracy: {accuracy_score(y, pred):.4f}\n")
print("=== Classification report (validation set) ===")
print(classification_report(y, pred))

labels = sorted(set(y))
print("=== Confusion matrix (rows=true, cols=predicted) ===")
print("labels:", labels)
print(confusion_matrix(y, pred, labels=labels))