chore: change text output

This commit is contained in:
zin
2026-05-28 17:15:33 +00:00
parent 39a68bc3c3
commit af3c5a953e
12 changed files with 114 additions and 36 deletions
+1 -8
View File
@@ -9,7 +9,6 @@ from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import joblib
# 1. Алфавитный маппинг EmoSet
EMO_VA_MAP = {
0: (7.5, 6.5), # amusement
1: (2.0, 8.0), # anger
@@ -32,9 +31,7 @@ y_labels = np.load(LABELS_PATH)
y_va = np.array([EMO_VA_MAP[label] for label in y_labels])
X_train, X_test, y_train, y_test = train_test_split(X, y_va, test_size=0.2, random_state=42)
# 2. НОВАЯ, ПРАВИЛЬНАЯ АРХИТЕКТУРА (Pipeline)
print("Обучение масштабатора и RidgeCV регрессора...")
# Pipeline гарантирует, что при предсказании в main.py новые векторы тоже будут масштабированы
model = Pipeline([
('scaler', StandardScaler()),
('regressor', MultiOutputRegressor(RidgeCV(alphas=[0.1, 1.0, 10.0, 100.0, 1000.0])))
@@ -42,23 +39,19 @@ model = Pipeline([
model.fit(X_train, y_train)
# 3. Диагностика и Оценка
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"\n[УСПЕХ] Обучение завершено!")
print(f"\nУспех! Обучение завершено!")
print(f"MSE: {mse:.4f}")
print(f"R^2 Score: {r2:.4f}")
# === ТОТ САМЫЙ ТЕСТ НА КОЛЛАПС ===
print("\n--- ДИАГНОСТИКА РАЗБРОСА ПРЕДСКАЗАНИЙ ---")
print(f"Valence: от {y_pred[:, 0].min():.2f} до {y_pred[:, 0].max():.2f} (Эталон: 2.0 - 8.0)")
print(f"Arousal: от {y_pred[:, 1].min():.2f} до {y_pred[:, 1].max():.2f} (Эталон: 2.0 - 8.0)")
# ===============================================
# 4. Сохранение (Pipeline сохраняется целиком со StandardScaler)
output_model_path = BASE_DIR / "music_engine" / "va_regressor.pkl"
output_model_path.parent.mkdir(parents=True, exist_ok=True)
joblib.dump(model, output_model_path)