Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import matplotlib.pyplot as plt | |
| from pathlib import Path | |
| import re | |
| # Пути | |
| pred_path = Path("data/processed/predicted.csv") | |
| # Читаем CSV | |
| df = pd.read_csv(pred_path, encoding="utf-8-sig") | |
| # Удаляем HTML и NBSP, если есть | |
| def clean_text(text): | |
| if isinstance(text, str): | |
| text = re.sub(r"<[^>]*>", "", text) # убираем HTML-теги | |
| text = text.replace(" ", " ") # заменяем HTML NBSP | |
| text = text.replace(" ", " ") # убираем неразрывные пробелы | |
| return text | |
| df = df.applymap(clean_text) | |
| # Проверяем нужные колонки | |
| if "Оценка экзаменатора" in df.columns and "pred_score" in df.columns: | |
| df["abs_error"] = (df["pred_score"] - df["Оценка экзаменатора"]).abs() | |
| print(f"Средняя ошибка (MAE): {df['abs_error'].mean():.3f}") | |
| print(f"Максимальная ошибка: {df['abs_error'].max():.2f}") | |
| # Строим гистограмму ошибок | |
| plt.figure(figsize=(8, 5)) | |
| plt.hist(df["abs_error"], bins=10, color='skyblue', edgecolor='black') | |
| plt.title("Распределение ошибок предсказаний (|pred - human|)") | |
| plt.xlabel("Абсолютная ошибка") | |
| plt.ylabel("Количество ответов") | |
| plt.grid(alpha=0.3) | |
| plt.show() | |
| else: | |
| print("⚠️ Нет нужных колонок ('Оценка экзаменатора' и 'pred_score') в predicted.csv") | |