# Лабораторная работа №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](output.png) ```text Значение метрик среднеквадратической ошибки (MSE) и коэффициента детерминации (R^2 Score) ``` ### Вывод На основе выходных данных можно сделать следующий вывод о работе модели: 1. Значение среднеквадратической ошибки (Mean Squared Error) составляет 7538542.116221244. Это означает, что среднеквадратичное отклонение прогнозов модели от фактических значений составляет примерно 7538542.116221244. Чем меньше это значение, тем ближе прогнозы модели к фактическим значениям. 2. Значение коэффициента детерминации (R^2 Score) составляет 0.8520198757619463. Это означает, что модель объясняет примерно 85.2% дисперсии зависимой переменной (изменчивости в данных). Чем ближе значение коэффициента детерминации к 1, тем лучше модель соответствует данным. Таким образом, на основе предоставленных данных можно сказать, что модель имеет достаточно низкую среднеквадратическую ошибку и высокий коэффициент детерминации, пожтому MLPRegressor не подходит для сформулированной задачи.