|
1 / 1 / 1
Регистрация: 30.05.2014
Сообщений: 35
|
|
Какую модель в sklearn использовать для кластеризации векторов doc2vec?17.10.2019, 10:54. Показов 2298. Ответов 6
Метки нет (Все метки)
Доброго времени суток! У меня есть необходимость отсортировать тексты по тематикам. Я использую логическую регрессионную модель для обучения системы "LogisticRegression", и при этом, чтобы ее корректно обучить я должен подать на вход минимум два массива (например позитивные и негативные отзывы). Из классического примера все исправно работает, но если я подам на вход модели например новости спортивной тематики, то классификатор продолжит относить их либо к одному либо к другому классу (позитивным и негативным отзывам). Вопросов несколько:
1) Могу ли я таким образом обучить систему чтобы модель распознавала на входе другие темы и относила их к другому классу, или сообщала каким то образом что она не относиться ни к какому классу? (с учетом того чтобы заранее не обучать систему) 2) Если такой возможности нет, могу ли я как-то обучить систему на каждый из классов (т.е. создать 2 модели вместо одной) и в процентном соотношении измерять подходит ли конкретный текст к каждой модели? Заранее извиняюсь за возможную путаницу в научных терминах
0
|
|
| 17.10.2019, 10:54 | |
|
Ответы с готовыми решениями:
6
Sklearn. Названия для кластеров и использование результатов кластеризации для последующей классификации Какую математическую модель использовать? Какую модель связи отношений использовать? EF Core |
|
2742 / 1668 / 269
Регистрация: 19.02.2010
Сообщений: 4,415
|
||
| 17.10.2019, 11:26 | ||
|
К обычному класстерному анализу методом динамических ядер (k-means) надо пришить индикатор расстояния от вектора до кластера. Т.е. при "боевой работе" для вектора не просто определять ближайший кластер - но затем ещё и смотреть, чтобы расстояние не вышло за пределы типичного разброса точек этого кластера (и если получается сильно большое расстояние - то сигналить, что это какой-то новый случай). Если же хочется/можется программировать метод с нуля самому - то можно посмотреть и в сторону растущих кластеризующих нейросеток, типа японских SOINN/ESOINN. У них тоже встроенный индикатор похожести/новизны векторов. Метки же классов кластерам (хоть k-means'овским, хоть нейронным) и, затем, классифицируемым при "боевой работе" векторам вешать в соответствии с наиболее частым классом в каждом кластере (но можно и не скалярный ответ выдавать - а вероятности в соответствии с частотами классов, ранее попавших в кластер). И, наверное, лучше будет предварительно сжать размерность данных - перейти хотя-бы в пространство нескольких десятков первых главных компонент (нелинейный вариант сжатия=проецирования - глубокий автоенкодер).
0
|
||
|
1 / 1 / 1
Регистрация: 30.05.2014
Сообщений: 35
|
|
| 17.10.2019, 14:28 [ТС] | |
|
Спасибо большое за быстрый ответ, суть я саму уловил, тогда встречный вопрос. Используя нейросети SOINN/ESOINN я так понимаю получу более качественный результат нежели вычисляя примитивное расстояние между векторами? В любом случае постораюсь потестировать на небольшой выборке отпишусь по результатам
0
|
|
|
2742 / 1668 / 269
Регистрация: 19.02.2010
Сообщений: 4,415
|
||
| 17.10.2019, 16:39 | ||
|
Т.е. на положения центров масс кластеров эти отсеянные "диссиденты" не повлияют (в отличие от k-means, где каждый выброс потянет ядро ближайшего к нему кластера на себя). Но ведь и в k-means можно ввести (как при кластеризации, так и затем при "боевой работе") уникальное расстояние для каждого кластера. Например, расстояние Махаланобиса на основе ковариационной матрицы попадающих в кластер точек - хорошо ловит геометрию эллипсоида рассеяния многомерного нормального распределения (в отличие от евклидова расстояния, которое "шарообразно"). Т.е. можно учитывать растянутость облака точек каждого кластера по его собственным "внутренним" осям, и одновременно иметь хороший порог для отсеивания нетипичных точек (если расстояние М. >3 - значит, точка отстоит от центра распределения более чем на 3 сигмы, и с точки зрения нормального распределения является очень нетипичной). ЗЫ. Сорри, если немного свернул Ваши мысли в сторону от задачи обучения к задаче кластеризации без учителя (и навешивании меток классов уже на выявленные кластеры). Ибо всех смысловых/прикладных подробностей Вашей задачи Вы не описали - и приходится стрелять наугад (может быть, в совсем не ту сторону, которая Вам реально нужна/поможет). ЗЗЫ. Ещё раз сорри - я с sklearn дела не имел, поэтому чисто насчёт вариантов постановки прикладной задачи даю советы. А можно ли (и как) эти советы с помощью sklearn реализовать... Понятно, что на питоне-то всё можно сделать, но в рамках возможностей конкретной библиотеки...
0
|
||
|
1 / 1 / 1
Регистрация: 30.05.2014
Сообщений: 35
|
||
| 17.10.2019, 17:01 [ТС] | ||
|
Суть она правильная, обучение без учителя в моем случае выглядит предпочтительно, k-means я хотел бы использовать в крайнем случае раз есть реализации основанные на нейронных сетях .Единственное я не могу разобраться с практической точки зрения.
https://github.com/huagc/ESoin... er/demo.py Выдает такую ошибку Use the np.resize function or refcheck=False Добавлено через 3 минуты Добавлено через 5 минут Еще заметил одну особенность, незнаю с чем это связанно, когда запускаю год без точек остановок, код работает исправно, но стоит запускать через деббагер и ошибки выдает))
0
|
||
|
2742 / 1668 / 269
Регистрация: 19.02.2010
Сообщений: 4,415
|
|||
| 20.10.2019, 21:58 | |||
![]() В этом разделе я отвечаю чисто по мат.методам. Ибо питоном не владею. Вернее, прочитать-то (и понять логику чьей-то проги исходя из в т.ч. из названий функций) код смогу, но что/как делает какая-то функция - ХЗ в большинстве случаев. А недоопределённую задачу (когда точек или условий меньше, чем размерность данных) не хочется иметь не только для обучения с учителем - но и для кластеризации тоже.
0
|
|||
|
1 / 1 / 1
Регистрация: 30.05.2014
Сообщений: 35
|
||||||
| 25.10.2019, 14:39 [ТС] | ||||||
|
Спасибо большое за ответ! Нейросети SOINN/ESOINN действительно достаточно интересная вещь, есть тонкости в плане кода, но это тема для отдельного вопроса.
Кроме того, я посмотрел открытый курс машинного обучения на хабре Открытый курс машинного обучения и там частично нашел решение для моей задачи, с помощью которого, можно подобрать оптимальное количество кластеров. На этом, вопрос можно считать закрытым.
0
|
||||||
| 25.10.2019, 14:39 | |
|
Помогаю со студенческими работами здесь
7
Какую систему управления использовать для лэндинг пейдж и нужно ли ее использовать? Матрица несоответствия с использованием table в иерархической кластеризации и кластеризации к-средними Какую использовать БД для программы Какую ОС использовать для Python Создать класс для обработки векторов разность векторов норму векторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|