Методы классификации нескольких меток для большого набора данных - PullRequest
0 голосов
/ 01 мая 2018

Я понимаю, что есть другой вопрос с похожим названием, но мой набор данных сильно отличается.

У меня около 40 миллионов строк и около 3 тысяч меток. Запуск просто sklearn train_test_split занимает почти 20 минут.

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

Я ищу рекомендации о том, как сделать это эффективно. Я попробовал бинарную релевантность, на обучение которой ушло почти 4 часа. Цепи классификатора с ошибкой памяти через 22 часа. Я боюсь попробовать лейбл powerset, поскольку я прочитал, что они плохо работают с тонной данных. Наконец, у меня есть адаптированный алгоритм, MlkNN, а затем ансамблевые подходы (которые я также беспокоюсь о производительности).

Кто-нибудь еще имеет опыт работы с этим типом проблемы и объемом данных? В дополнение к предлагаемым моделям, я также надеюсь на советы по лучшим методам обучения, таким как отношения train_test_split или другие / лучшие методы.

1 Ответ

0 голосов
/ 01 мая 2018

20 минут для такого размера работы не кажутся такими длинными, как и 4 часа для обучения.

Я бы действительно попробовал vowpal wabbit. Он отлично справляется с такой проблемой, связанной с несколькими метками, и, вероятно, даст непревзойденную производительность, если вы к этому стремитесь. Это требует значительной настройки и все еще потребует качественных данных обучения, но оно того стоит. По сути, это просто проблема двоичной классификации. Ансамбль, конечно, займет больше времени, поэтому подумайте, нужно ли это, учитывая ваши требования к точности.

...