Вопрос или проблема
У меня есть проект по созданию компьютерной музыки, и я хотел бы классифицировать короткие фрагменты музыки как “хорошие” или “плохие” с помощью машинного обучения.
У меня не будет большого набора для обучения. Я начну с генерации 500 примеров как хорошей, так и плохой музыки вручную. Эти примеры можно транспонировать и отражать, чтобы получить 12 000 примеров как хорошей, так и плохой музыки.
У меня есть способ извлечения признаков из музыки интеллектуальным образом, который имитирует то, как это делает восприимчивый слушатель. Проблема в том, что это требует тысячи признаков для одного фрагмента. Каждый признак — это число от 0 до 1.
Я довольно нов в области науки о данных, и, насколько я понимаю, бинарные классификаторы, такие как деревья решений, будут плохо работать с таким количеством признаков. Но надо отметить, что у меня будет много скоплений и зависимости признаков. Я просто не знаю, как предсказать эту структуру. Также хорошие примеры, вероятно, будут скопляться вокруг нескольких категорий, в то время как плохие примеры будут разбросаны и “далеки” от хороших примеров.
Мне пришло в голову, что, возможно, может сработать система рекомендаций.
Если взять пример рекомендательных систем для фильмов, оценка каждого из моих признаков будет похожа на рейтинг, который зритель ставит фильму. Каждый пример будет оценивать тысячи признаков, т.е. зритель будет оценивать тысячи фильмов.
Затем у нас есть один фильм, который мы назовем “Хороший фильм”. Каждый обучающий пример получает от него либо 5 звезд, либо 0 звезд в зависимости от того, хороший он или плохой.
Затем мы берем тестовый пример и предсказываем, понравится ли ему “Хороший фильм”.
Может ли такая схема сработать? Есть ли другой подход к работе с тысячами признаков?
ИЗМЕНЕНИЕ: добавляю комментарий о зависимости или “скоплении” признаков: интуитивно я думаю, что “хорошая” музыка, вероятно, будет скопляться вокруг нескольких категорий, и внутри этих скоплений будет сильная корреляция между признаками. Скажем, внутри скопления #1 признаки A и B коррелируют. Но внутри скопления #2 A и B могут быть некоррелированы друг с другом, хотя каждый из них может коррелировать с другими признаками. Я упоминаю это на случай, если это имеет значение для уменьшения признаков с помощью PCA или других методов.
- Сработает ли этот подход?
Не знаю, вам стоит попробовать, это вполне может сработать.
- Можно ли использовать рекомендательные системы как классификаторы?
Определенно! Но сначала давайте проясним несколько моментов. Рекомендательные системы — это системы. Это то, что вы пытаетесь достичь. Теоретически это можно сделать без машинного обучения, но в целом создание рекомендательных систем происходит с помощью алгоритма обучения (т.е. совместная фильтрация, нейронные сети и т.д.).
Что делает этот алгоритм обучения, так это учится предоставлять “оценку” каждому элементу, учитывая конкретный контекст (т.е. пользователь X хотел посмотреть фильм в вечер вторника), так чтобы наивысшие баллы присуждались элементам, которые стоит рекомендовать.
Это можно напрямую применить к задаче классификации, где ваш алгоритм обучения учится давать высокие оценки правильному классу.
Таким образом, подводя итог, вы все равно будете строить систему классификации (что она делает), используя алгоритм обучения рекомендациям (как она это делает).
Пожалуйста, не создавайте рекомендательную систему, чтобы решить задачу бинарной классификации. Если вам нравится идея с рейтингами, вы всегда можете создать новый признак, который будет ранжированием. Рассмотрите возможность использования случайного леса, SVM, логистической регрессии, XGBoost, LightGBM. Некоторые из этих моделей способны возвращать важность признаков, поэтому вы можете увидеть, насколько важны ваши рейтинги, если, конечно, вы решите реализовать их как признак.
Ответ или решение
Может ли рекомендательная система быть использована как бинарный классификатор?
Ваша задача заключается в классификации музыкальных фрагментов на «хорошие» и «плохие» с помощью методов машинного обучения. Рассмотрим, как можно адаптировать понятия рекомендательных систем для решения вашей проблемы.
Понимание рекомендательных систем
Рекомендательные системы, как правило, предназначены для оценки и предсказания предпочтений пользователя на основе анализа больших объемов данных. Эти системы могут использовать различные методы: от фильтрации по содержимому до коллаборативной фильтрации и глубокого обучения. Основная задача таких систем — присвоить «оценку» объектам на основе определенного контекста.
Применение к бинарной классификации
В вашем случае, возможный подход заключается в рассмотрении вашей классификационной задачи как аналогии работы рекомендательной системы. Например, вы можете взять «хорошую музыку» как объект, к которому вы будете пытаться классифицировать другие музыкальные фрагменты. Тут «оценка» будет зависеть от того, насколько фрагмент соответствует критериям качества, установленным для «хорошей музыки».
Возможные методологии
Вы можете рассмотреть следующие подходы:
-
Модели классификации:
Чтобы решить вашу задачу, традиционные модели классификации, такие как случайный лес, SVM (методы опорных векторов), логистическая регрессия или градиентный бустинг (XGBoost и LightGBM), могли бы быть более прямолинейными и эффективными. Эти модели могут обработать множество признаков и предоставить информацию о важности каждого из них, что поможет в понимании, какие характеристики наиболее влияют на результат. -
Обработка многомерных данных:
Учитывая, что у вас большое количество признаков (тысячи) и наличие корелляций (клампов) между ними, вы можете использовать методы понижения размерности, такие как PCA (метод главных компонент). Это поможет выявить основные компоненты и уменьшить количество признаков до более управляемого уровня, что может улучшить производительность выбранной классификационной модели.
Формулирование новой задачи
Рекомендательные системы теоретически могут быть адаптированы для классификации, но это может усложнить задачу без реальной необходимости. Ваши данные больше подходят для использования непосредственно в классификационных моделях, которые были разработаны для работы с бинарными метками.
Важно помнить, что построение рекомендательной системы для решения бинарной классификационной задачи может избыточно усложнить ваш проект и не привести к оптимальным результатам. Адаптация дополнительных признаков, таких как «рейтинг» по определенным характеристикам, может расширить ваши возможности, но здесь лучше сосредоточиться на надежных и проверенных методах классификации.
Заключение
В заключение, хотя теоретически использование рекомендательных систем в задачах классификации возможно, более целесообразно и эффективно использовать современные классификационные алгоритмы, которые поддерживают обработку множества признаков и могут предоставить данные о важности этих признаков. Это приведет вас к более четким и интерпретируемым результатам, что, в конечном итоге, поможет вам достичь вашей цели — определения качества музыки.