ЭТАЛОН ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ №6 (ЛР6): ПРИМЕР ПОСТРОЕНИЯ МОДЕЛИ МАШИННОГО ОБУЧЕНИЯ
Пример: прогноз популярности трека.
Задача – оценить влияние характеристик трека на количество просмотров.
1. ИМПОРТ БИБЛИОТЕК
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
2. ЗАГРУЗКА ДАННЫХ
df = pd.read_csv("data/spotify_edu_dataset.csv")
3. ПОДГОТОВКА ПРИЗНАКОВ
features = ["energy", "danceability", "tempo", "duration_sec"]
X = df[features]
y = df["views"]
4. РАЗДЕЛЕНИЕ ОБУЧАЮЩЕЙ И ТЕСТОВОЙ ВЫБОРКИ
X_train, X_test, y_train, y_test = train_test_split(
X, y,
test_size=0.2,
random_state=42
)
5. ОБУЧЕНИЕ МОДЕЛИ
model = LinearRegression()
model.fit(X_train, y_train)
6. ПРЕДСКАЗАНИЕ
y_pred = model.predict(X_test)
7. ОЦЕНКА КАЧЕСТВА МОДЕЛИ
r2 = r2_score(y_test, y_pred)
print("R²:", r2)
8. ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ
plt.scatter(y_test, y_pred)
plt.xlabel("Реальные значения")
plt.ylabel("Предсказанные значения")
plt.title("Сравнение реальных и предсказанных значений")
plt.show()
ИНТЕРПРЕТАЦИЯ РЕЗУЛЬТАТОВ
Если точки на графике располагаются близко к диагонали, модель хорошо прогнозирует значения.
Коэффициент R² показывает долю вариации целевой переменной, объясняемую моделью.