Spaces:
Sleeping
Sleeping
File size: 1,545 Bytes
bcb314a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
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")
|