mmobi commited on
Commit
465027d
·
verified ·
1 Parent(s): 2be3700

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. README.md +151 -0
  2. final_random_forest_model.pkl +3 -0
README.md ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ license: mit
4
+ tags:
5
+ - music
6
+ - audio-features
7
+ - popularity-prediction
8
+ - random-forest
9
+ - regression
10
+ - spotify
11
+ library_name: sklearn
12
+ pipeline_tag: tabular-regression
13
+ ---
14
+
15
+ # 🎵 Acoustic Hit Predictor v1.0
16
+
17
+ Модель машинного обучения для прогнозирования популярности музыкальных треков на основе акустических характеристик из Spotify API.
18
+
19
+ ## 📊 Описание модели
20
+
21
+ **Random Forest Regressor** обученная на 114,000 треков для предсказания популярности (0-100).
22
+
23
+ ### Параметры модели:
24
+ - `n_estimators`: 50
25
+ - `max_depth`: 30
26
+ - `min_samples_split`: 5
27
+ - `min_samples_leaf`: 2
28
+ - `max_features`: 'sqrt'
29
+
30
+ ## 📈 Метрики качества
31
+
32
+ | Метрика | Train | Test | Оценка |
33
+ |---------|-------|------|--------|
34
+ | MAE | 6.40 | 11.44 | ✅ Хорошо |
35
+ | R² | - | 0.52 | ⚠️ Средне |
36
+ | Стабильность CV | 0.98% | - | ✅ Отлично |
37
+
38
+ **Погрешность:** ±11 пунктов популярности в среднем
39
+
40
+ ## 🎯 Основные характеристики
41
+
42
+ - ⚡ **Быстрый инференс:** ~1ms на трек
43
+ - 📊 **Признаков:** 30 (оригинальные + производные)
44
+ - ⏱️ **Время обучения:** 67.3 минуты
45
+ - 💾 **Размер:** 231 MB
46
+
47
+ ## 🔍 Feature Importance
48
+
49
+ ### Топ-5 факторов популярности:
50
+ 1. **Danceability** — главный драйвер (среднее: 0.68)
51
+ 2. **Energy** — умеренное влияние (среднее: 0.58)
52
+ 3. **Valence** — позитивность (среднее: 0.47)
53
+ 4. **Loudness** — технический фактор
54
+ 5. **Tempo** — оптимально 110-130 BPM
55
+
56
+ ## 💪 Сильные стороны
57
+
58
+ - ✅ Стабильная работа на средних значениях популярности (40-65)
59
+ - ✅ Хорошая генерализация (MAE 10.74 vs 11.44)
60
+ - ✅ Правильное понимание роли танцевальности
61
+ - ✅ Быстрая batch-обработка
62
+
63
+ ## ⚠️ Слабые стороны
64
+
65
+ - Консервативность (редко предсказывает > 65)
66
+ - Проблемы с мега-хитами (popularity > 80)
67
+ - Систематическая недооценка в 70% случаев
68
+ - Не учитывает временной и культурный контекст
69
+
70
+ ## 📥 Использование
71
+
72
+ ```python
73
+ import pickle
74
+ import pandas as pd
75
+
76
+ # Загрузка модели
77
+ with open('final_random_forest_model.pkl', 'rb') as f:
78
+ model = pickle.load(f)
79
+
80
+ # Подготовка данных (пример)
81
+ features = pd.DataFrame({
82
+ 'danceability': [0.7],
83
+ 'energy': [0.8],
84
+ 'loudness': [-5.0],
85
+ 'speechiness': [0.05],
86
+ 'acousticness': [0.1],
87
+ 'instrumentalness': [0.0],
88
+ 'liveness': [0.1],
89
+ 'valence': [0.6],
90
+ 'tempo': [120.0],
91
+ 'duration_ms': [200000],
92
+ 'key': [5],
93
+ 'mode': [1],
94
+ 'time_signature': [4]
95
+ # + производные признаки (см. feature engineering)
96
+ })
97
+
98
+ # Предсказание
99
+ popularity = model.predict(features)
100
+ print(f"Предсказанная популярность: {popularity[0]:.1f}/100")
101
+ ```
102
+
103
+ ## 🎯 Интерпретация результатов
104
+
105
+ ```
106
+ Предсказанная популярность:
107
+ 0-30 → ❌ Слабый потенциал
108
+ 30-50 → ⚠️ Средний потенциал
109
+ 50-70 → ✅ Хороший потенциал
110
+ 70+ → 🎯 Высокий потенциал (модель редко так предсказывает)
111
+ ```
112
+
113
+ ## ✅ Подходит для:
114
+ - **Независимых артистов** — первичная оценка потенциала трека
115
+ - **Продюсеров** — сравнение разных версий композиции
116
+ - **A&R менеджеров** — скрининг демо-материалов
117
+ - **Исследователей** — анализ факторов популярности
118
+
119
+ ## 🚫 Ограничения:
120
+ - Не предсказывает мега-хиты (80+)
121
+ - Не учитывает маркетинг и промо
122
+ - Не заменяет экспертное мнение
123
+ - Работает только на аудио-характеристиках
124
+
125
+ ## 📚 Дополнительные ресурсы
126
+
127
+ - **GitHub репозиторий:** [Acoustic-Hit-Predictor](https://github.com/mmobik/Acoustic-Hit-Predictor-From-Audio-Features-to-Chart-Success)
128
+ - **Детальный анализ:** См. `reports/model_analysis.md` в репозитории
129
+ - **Техническая спецификация:** См. `TECHNICAL_SPECIFICATION.md`
130
+
131
+ ## 📄 Лицензия
132
+
133
+ MIT License
134
+
135
+ ## 👨‍💻 Автор
136
+
137
+ **mmobik**
138
+ - GitHub: [@mmobik](https://github.com/mmobik)
139
+
140
+ ## 📅 Версия
141
+
142
+ - **Дата обучения:** Декабрь 2024
143
+ - **Версия:** 1.0
144
+ - **Статус:** MVP (Minimum Viable Product)
145
+
146
+ ## 🔄 Планируемые улучшения
147
+
148
+ 1. Добавление большего количества треков с popularity > 80
149
+ 2. Калибровка предсказаний для крайних значений
150
+ 3. Временные признаки (год релиза, сезонность)
151
+ 4. Метаданные (жанр, лейбл, популярность артиста)
final_random_forest_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b37f50b223c82612e45147ce4a8aad896545cb8930a53114bf3425f3e0017e1
3
+ size 242313937