Добавлено: Пт Апр 21, 2006 6:46 pm Заголовок сообщения: Извлечение знаний для определения соционического типа.
Несколько выдержек из статей, описывающих метод извлечения знаний.
Oracle Data Mining
Опция Oracle Data Mining (ODM) предназначена для анализа данных методами, относящимися к технологии извлечения знаний или "data mining".
Основная задача этой технологии состоит в выявлении в больших наборах данных скрытых закономерностей, зависимостей и взаимосвязей, полезных при принятии решений на различных уровнях управления. Такие закономерности представляются в виде моделей различного типа, позволяющих проводить классификацию ситуаций или объектов, прогнозировать их поведение, выявлять группы сходных объектов и т.п. Существенно, что модели строятся автоматически на основе анализа имеющихся данных об объектах, наблюдениях и ситуациях с помощью специальных алгоритмов.
Методы извлечения знаний применяются в различных областях для решения таких практических задач, как привлечение новых, выявление наиболее перспективных и удержание клиентов, повышение эффективности маркетинговой деятельности по продвижению продуктов и услуг, выявлению причин сбоев оборудования и так далее.
Основу опции составляют процедуры, реализующие различные алгоритмы построения моделей классификации, регрессии, кластеризации. Версия Data Mining 10G поддерживает широкий спектр таких алгоритмов (перечислены в таблице)
Алгоритмы, реализованные в Oracle Data Mining
Классификационные модели Naive Bayes, Adaptive Bayes Network
Классификации и регрессионные модели Support Vector Machine
Поиск существенных атрибутов Minimal Descriptor Length
Кластеризация Enhanced K-means, O-cluster
Поиск ассоциаций Apriory Algorithm
Выделение признаков Non-Negative Matrix Factorization
Важная особенность алгоритмов состоит в том, что все они работают непосредственно с реляционными базами данными и не требуют выгрузки и сохранения данных в специальных форматах. Кроме собственно алгоритмов, в опцию ODM входят средства подготовки данных, оценки результатов, применения моделей к новым наборам данных. Использовать все эти возможности можно как на программном уровне с помощью Java API или PL/SQL API, так и с помощью графической среды ODM Client, ориентированной на работу аналитиков, решающих задачи прогнозирования, выявления тенденций, сегментации и др.
Несложно заметить что практически все алгоритмы могут быть полезны для разработки методики определения соционического типа.
Рассмотрим на примере алгоритма анализа текстов.
1. Сначала мы закачиваем 1000 или более книг разных писателей в Oracle. Огромный плюс в том, что в отличии от нескольких абзацев здесь уже будут проявляться тенденции.
2. Делаем частотный анализ слов => получаем для каждой книги матрицу: (слово, частота).
3. Алгоритм кластеризации позволяет разбивать данные на разные группы. Основное понятие "расстояние" между объектами. Под группами в данном случае могут быть как отдельные ТИМы, так и например гуленковские группы (социалы, саентисты, управленцы, гуманитарии).
Здесь http://articles.socionic.ru/psycholingvist_author.php мне удалось введя понятие расстояние как дисперсию между словарями писателей получить достаточно надежное определение авторства текста, но при этом ТИМ автора по такой методики определить не удалось, значит нужно искать другое наполнение понятия "расстояния".
4. Алгоритм выделения признаков может быть полезен для выявления как основных дихотомий, так и признаков Рейнина.
5. Генерация правил => обнаружение правил, которые могут лечь в основу новой методики типирования по тексту.
6. Генетические алгоритмы, нейронные сети - создание самообучающейся программы, чем больше данных она анализирует, тем выше достоверность результата.
и так далее...
Кроме анализа текстов эти алгоритмы можно использовать для анализа результатов различных тестов, биометрических параметров множества людей, интонаций и речи, поиска генов, отвечающих за ТИМ и так далее.
То есть применение может быть очень широкое.
Основные сложности:
- набор огромного количества данных от сотен людей и занесение их в базу данных
- репрезентатитвность выборки
- для начала обработки необходимы люди, чей ТИМ уже определен, причем нужно учитывать что достоверность этого вовсе не 100%, а вряд ли превышает 60-70%
- очень сложное программное обеспечение _________________ танцы, английский язык, знакомства
Добавлено: Пт Апр 21, 2006 7:33 pm Заголовок сообщения: Re: Извлечение знаний для определения соционического типа.
Oleg писал(а):
Несколько выдержек из статей, описывающих метод извлечения знаний.
Синхра, однако. Оторвался это я от сравнения линейной регрессии с нейросетями, заглядываю в форум, а тут.. )) _________________ Не спрашивай, по ком гудит трансформатор. Это глупый вопрос; он гудит сам по себе.
Интересная идея. Набрать картотеку чего угодно, хоть текстов, хоть кулинарных предпочтений, и натравить на нее самообучалку. Но где мы возьмем достаточное количество данных? Мне так думается, надо не менее 200 достоверных анкет. _________________ Не спрашивай, по ком гудит трансформатор. Это глупый вопрос; он гудит сам по себе.
Так как типов 16, а закон больших чисел начинает работоать примерно со 100, то скорее 1600 человек нужно, причем с определенным ТИМом хотя бы с более-менее нормальной достовреностью.
Если без определения ТИМа, то набрать 1000 человек не так сложно например для тестов. У нас на сайте за день на примерно столько там бывает, и каждый из тестов прохоят по крайней мере 100 человек, то есть накопить статистику даже если сделать регистрацию можно будет за вполне реальное время.
С текстами писателей проблем набрать и загнать в базу данных особых нет (за исключением учета переносов и разных форматов файлов), Oracle позволяет работать с миллиардами строк. Но при этом с определенным ТИМом их не так много, наш эталонный список только частично решает эту проблему.
Есть еще один вариант - использовать дневники или сообщения на форуме, многие участники давно изучают соционику и определили свой ТИМ, поэтому этот вариант тоже возможен для тех кто согласится участовать в эксперименте. Желательно конечно больше народу, чем у нас сейчас, но думаю через год здесь будет вполне достаточно людей. В сообщениях нужно отфильтровать quote, или просто цитаты, когда бросаются куски текста, которые можно узнать по (С), если копирайта нет, то уже никак не определишь.
Вообщем варианты есть, но везде достаточно много времени нужно для того чтобы получить адекватный первоначальный результат. _________________ танцы, английский язык, знакомства
Добавлено: Сб Апр 22, 2006 11:25 am Заголовок сообщения:
Oleg писал(а):
Так как типов 16, а закон больших чисел начинает работоать примерно со 100, то скорее 1600 человек нужно, причем с определенным ТИМом хотя бы с более-менее нормальной достовреностью.
Имхо, меньше. В гидрологических задачах, с которыми я сейчас работаю, тенденции начинают выявляться на порядка 10 случайно подобранных примерах, плюс 3-4 примера на верификацию. Возможно, такая закономерность сработает и здесь, надо только подобрать подходящие анкетные вопросы. 13-14 анкет на каждый ТИМ в сумме дает порядка 200.
Но сегодня утром мне пришла еще одна светлая мысль:
1) ТИМы суть нечто производное от дихотомий;
2) каждая отдельная дихотомия определяется проще и надежнее, чем весь ТИМ сразу;
3) машина может учиться определять каждую пару дихотомий, независимо от других пар, на одном и том же наборе анкет!
4) 4-5 предикторов, 2 целевые категории - 80-100 анкет будет более, чем достаточно.
5) осталось подобрать подходящие предикторы, т.е. анкетные вопросы.
Что скажешь?
Цитата:
Если без определения ТИМа, то набрать 1000 человек не так сложно например для тестов. У нас на сайте за день на примерно столько там бывает, и каждый из тестов прохоят по крайней мере 100 человек, то есть накопить статистику даже если сделать регистрацию можно будет за вполне реальное время.
Да, я тоже об этом подумал. Но здесь тусуется, в основном, 3 и 4 квадра, поэтому было бы полезно проанкетировать посетителей перво- и второквадренных сайтов (чем бы их таким завлечь? ).
Цитата:
С текстами писателей проблем набрать и загнать в базу данных особых нет (за исключением учета переносов и разных форматов файлов), Oracle позволяет работать с миллиардами строк. Но при этом с определенным ТИМом их не так много, наш эталонный список только частично решает эту проблему. Есть еще один вариант - использовать дневники или сообщения на форуме, многие участники давно изучают соционику и определили свой ТИМ, поэтому этот вариант тоже возможен для тех кто согласится участовать в эксперименте. Желательно конечно больше народу, чем у нас сейчас, но думаю через год здесь будет вполне достаточно людей. В сообщениях нужно отфильтровать quote, или просто цитаты, когда бросаются куски текста, которые можно узнать по (С), если копирайта нет, то уже никак не определишь.
Я работал только с нейросетями и деревьями решений. В кластеризации, контент-анализе и Oracle не разбираюсь. _________________ Не спрашивай, по ком гудит трансформатор. Это глупый вопрос; он гудит сам по себе.
__link, по поводу того какой выигрыш дают выделение дихотомий и признаков Рейнина табличку можно посмотреть тут:
http://articles.socionic.ru/reinins.php в пятом пункте. Например, для того чтобы определять ТИМ с вероятностью в 80% нужно уметь определять дихотомии с вероятностью в 95% или признаки Рейнина с вероятностью в 85%.
Пока мне удалось с помощью программы получить точность определения признаков Рейнина по тексту для авторов, которые не участвовали в составлении эталонной выборки: 65%, из таблицы видно, что это дает определение ТИМа с вероятностью всего лишь в 20%. Если же один из текстов автора участвовал в составлении эталонной выборки, то ТИМ правильно определяется примерно в 95% случаев, но это следствие из того, что частотный словарь автора устойчив.
Дихотоими программой определяются несколько лучше чем признаки Рейнина, хотя и ненамного. Основный вывод, к которому я пришел, что лучше сразу пытаться определить 16 кластеров, чем выделять дихотомии. Потом я прочитал, что Таланов и Лытов при составлении своих тестов пришли к тем же выводам.
А вот как с помощью нейронных сетей сделать самообучающую программу я пока слабо представляю. Может у тебя есть идеи по этому поводу? _________________ танцы, английский язык, знакомства
__link, по поводу того какой выигрыш дают выделение дихотомий и признаков Рейнина табличку можно посмотреть тут: (...)
Ага, посмотрел. В первом прочтении я немножко сомневаюсь, что признаки Рейнина можно считать независимыми случайными величинами, особенно в наборе с основными дихотомиями.
Цитата:
Дихотоими программой определяются несколько лучше чем признаки Рейнина, хотя и ненамного. Основный вывод, к которому я пришел, что лучше сразу пытаться определить 16 кластеров, чем выделять дихотомии. Потом я прочитал, что Таланов и Лытов при составлении своих тестов пришли к тем же выводам.
Не знаю, как там с анализом текстов, но если собирать анкетную статистику для нейросетей либо деревьев, то мне кажется, что дихотомии либо ТИМы должен прописывать эксперт либо сам тестируемый. В отличие от признаков Рейнина (семантическое наполнение которых до сих пор под вопросом), юнговские дихотомии довольно часто бывают очевидными и проверяемыми; также довольно часто бывает известен убедительный ТИМ.
Цитата:
А вот как с помощью нейронных сетей сделать самообучающую программу я пока слабо представляю. Может у тебя есть идеи по этому поводу?
Эээ... Ну, так их называют - learning machines, поскольку в процессе подготовки к работе они изучают тренировочные примеры и что-то меняют в своей внутренней консерватории. _________________ Не спрашивай, по ком гудит трансформатор. Это глупый вопрос; он гудит сам по себе.
__link, по поводу того какой выигрыш дают выделение дихотомий и признаков Рейнина табличку можно посмотреть тут: (...)
Ага, посмотрел. В первом прочтении я немножко сомневаюсь, что признаки Рейнина можно считать независимыми случайными величинами, особенно в наборе с основными дихотомиями.
Сами признаки Рейнина не являются независимыми, так как пространство четырехмерное, а признаков 15.
По поводу того можно ли их считать независимыми случайными величинами у меня самого есть некоторые сомнения.
По идее, мы можем определять каждый признак отдельно от других, анализируя совершенно разные события, на которые влияют множество факторов, и поэтому случайные величины независимы, или нет? _________________ танцы, английский язык, знакомства
По идее, мы можем определять каждый признак отдельно от других, анализируя совершенно разные события, на которые влияют множество факторов, и поэтому случайные величины независимы, или нет?
Ушло в личку. _________________ Не спрашивай, по ком гудит трансформатор. Это глупый вопрос; он гудит сам по себе.
Интересная идея. Набрать картотеку чего угодно, хоть текстов, хоть кулинарных предпочтений, и натравить на нее самообучалку. Но где мы возьмем достаточное количество данных? Мне так думается, надо не менее 200 достоверных анкет.
Есть вариант определить (или взять уже наиболее уверенно определенные) тексты писателей-классиков. Благо книжных ресурсов в иенете хоть пруд пруди. Да и врядли возникнет сложность определения ТИМа классика прошлого века. Убивается сразу несколько зайцев. тут и объем текстов и количество авторов. И уже все готовое. Только анализируй.
Так, например, Куприн - драйзер, Желязны - Джек. И так далее. _________________ выпускник Центра Владимира Миронова "Соционика в Санкт-Петербурге"
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах