chore: change text output
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user