IIS_2023_1/kozlov_alexey_lab_6
2024-01-12 11:59:16 +04:00
..
lab6.py lab6 2024-01-12 11:59:16 +04:00
output.png lab6 2024-01-12 11:59:16 +04:00
README.md lab6 2024-01-12 11:59:16 +04:00
spotify.csv lab6 2024-01-12 11:59:16 +04:00

Лабораторная работа №6. Нейронная сеть

14 вариант


Задание:

Использовать нейронную сеть (четные варианты MLPRegressor, нечетные MLPClassifier) для данных из таблицы 1 по варианту, самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо она подходит для решения сформулированной вами задачи.

Описание используемого набора данных:

Объектом исследования является набор данных, который размещен на платформе Kaggle (https://www.kaggle.com/datasets/nelgiriyewithana/top-spotify-songs-2023/data). Он представляет собой полный список самых известных песен 2023 года, перечисленных на Spotify. Данный набор представлен в виде файла spotify.csv

Столбцами являются:

  1. track_name Название композиции
  2. artist(s)_name Имя исполнителя/имена исполнителей песни.
  3. artist_count Количество исполнителей, участвовавших в со-здании песни
  4. released_year Год, когда песня была выпущена
  5. released_month Месяц, когда песня была выпущена
  6. released_day День месяца, когда песня была выпущена.
  7. in_spotify_playlists Количество плейлистов Spotify, в которые песня включена
  8. in_spotify_charts Присутствие и рейтинг песни в чартах Spotify.
  9. streams Общее количество прослушиваний в Spotify.
  10. in_apple_playlists Количество плейлистов Apple Music, в которые песня включена.
  11. in_apple_charts Присутствие и рейтинг песни в чартах Apple Music.
  12. in_deezer_playlists Количество плейлистов Deezer, в ко-торые песня включена.
  13. in_deezer_charts Присутствие и рейтинг песни в чартах Deezer
  14. in_shazam_charts Присутствие и рейтинг песни в чартах Shazam.
  15. bpm Количество ударов в минуту, показатель темпа песни.
  16. key Тональность песни.
  17. mode Режим песни (мажорный или минорный).
  18. danceability_% Процент, указывающий, насколько песня подходит для танцев.
  19. valence_% - Позитивность музыкального содержания пес-ни
  20. energy_% - Воспринимаемый уровень энергии песни
  21. acousticness_% - Количество акустического звука в песне
  22. instrumentalness_% - Количество инструментального кон-тента в песне
  23. liveness_% - Наличие элементов живого исполнения
  24. speechiness_% - Количество произнесенных слов в песне

Задачей регрессии на данном наборе данных является прогнозирование значения столбца «in_spotify_playlists» по столбцам «streams», «in_apple_playlists», «in_deezer_playlists» и «bpm».


Запуск

  • Запустить файл lab6.py

Используемые технологии

  • Язык программирования Python
  • Среда разработки PyCharm
  • Библиотеки:
    • sklearn
    • matplotlib
    • numpy
    • pandas

Описание программы

Код программы выполняет следующие действия:

  1. Импортирует необходимые библиотеки: pandas, numpy, sklearn.metrics, sklearn.model_selection, sklearn.neural_network и sklearn.preprocessing.
  2. Загружает данные из файла "spotify.csv" в объект DataFrame.
  3. Удаляет все строки с пропущенными значениями из DataFrame.
  4. Удаляет столбец 'artist(s)_name' из DataFrame.
  5. Заменяет запятые в столбце 'in_deezer_playlists' на пустые символы.
  6. Преобразует значения в столбце 'in_deezer_playlists' в тип int64.
  7. Заменяет запятые в столбце 'in_shazam_charts' на пустые символы.
  8. Преобразует значения в столбце 'in_shazam_charts' в тип int64.
  9. Создает словарь соответствия числовых значений и названий треков.
  10. Заменяет значения в столбце 'track_name' на числовые значения, используя словарь из пункта 9.
  11. Создает словарь соответствия числовых значений и названий тональности.
  12. Заменяет значения в столбце 'key' на числовые значения, используя словарь из пункта 11.
  13. Создает словарь соответствия числовых значений и режимов песни.
  14. Заменяет значения в столбце 'mode' на числовые значения, используя словарь из пункта 13.
  15. Разделяет данные на обучающую и тестовую выборки, используя train_test_split.
  16. Нормализует данные обучающей и тестовой выборок с помощью StandardScaler.
  17. Создает и обучает модель MLPRegressor с заданными параметрами (скрытые слои размером (100, 100), функция активации - 'relu', оптимизатор - 'adam').
  18. Предсказывает значения на тестовой выборке с помощью обученной модели.
  19. Вычисляет оценки качества модели - среднеквадратическую ошибку (MSE) и коэффициент детерминации (R^2 Score).
  20. Выводит значения MSE и R^2 Score.

Пример работы

Graphics

Значение метрик среднеквадратической ошибки (MSE) и коэффициента детерминации (R^2 Score)

Вывод

На основе выходных данных можно сделать следующий вывод о работе модели:

  1. Значение среднеквадратической ошибки (Mean Squared Error) составляет 7538542.116221244. Это означает, что среднеквадратичное отклонение прогнозов модели от фактических значений составляет примерно 7538542.116221244. Чем меньше это значение, тем ближе прогнозы модели к фактическим значениям.

  2. Значение коэффициента детерминации (R^2 Score) составляет 0.8520198757619463. Это означает, что модель объясняет примерно 85.2% дисперсии зависимой переменной (изменчивости в данных). Чем ближе значение коэффициента детерминации к 1, тем лучше модель соответствует данным.

Таким образом, на основе предоставленных данных можно сказать, что модель имеет достаточно низкую среднеквадратическую ошибку и высокий коэффициент детерминации, пожтому MLPRegressor не подходит для сформулированной задачи.