Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

> оптимальная кластеризация больших данных
Де бин Анатолий
сообщение 15.08.2014 - 21:15
Сообщение #1





Группа: Пользователи
Сообщений: 25
Регистрация: 15.08.2014
Пользователь №: 26591



Добрый день. Спасибо администрации за идею создания такого полезного форума. Мой вопрос не столь по медицине, сколь из области маркетинга. Я провожу одно исследование. Не вдаваясь в подробности, цель исследования это изучить какие запросы яндексом воспринимаются как семантически близкие. Как я стал это делать. Я сам программист больше, я написал парсер. Работает он так. Ввожу запрос N1, яндекс в ответ дает какие-то ответы
запрос?1
ответ?1
ответ?2
...
потом в роли ключевого выступают эти ответы.
ответ?1
ответN
ответN
ответN
получается примерно такое. Т.е. по сути все транспонируется.

Далее , я стал высчитывать расстояние. Обратите внимание от фразы ремонт компьютеров столбец A1 до фразы ремонт ноутбуков 1 шаг. А от фразы ремонт ноутбуков столбец d1 до фразы ремонт компьютеров тоже 1 шаг. вычитаем расстояние по модулю. 1-1=0 Но на самом деле 0 я равнял к единицы. Эти запросы стоят очень близко. вообще до 10 шагов это считается недалеко друг от друга запросы. Чтобы высчитать эти шаги, я написал макрос. Получаем такой результат. Типа квадратная матрица.
Решил спрограммировать граф, но там бешенная каша.

Хотелось бы попросить помощи, а именно как лучше мне кластеризовать мои данные . Любой макрос сам напишу.Но меня интересует мнение математиков-профессионалов о том, как лучше визуализировать -кластеризовать мои данные, чтобы не было такое каши. Чтобы была четкая наглядность какие понятие(запросы) близки друг к другу.
Буду благодарен за любую подсказку.


Прикрепленные файлы
Прикрепленный файл  ответ.rar ( 69,8 килобайт ) Кол-во скачиваний: 282
Прикрепленный файл  макрос.rar ( 171,79 килобайт ) Кол-во скачиваний: 290
Прикрепленный файл  корр.граф.rar ( 614,35 килобайт ) Кол-во скачиваний: 278
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
nokh
сообщение 17.08.2014 - 19:24
Сообщение #2





Группа: Пользователи
Сообщений: 1219
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(Де бин Анатолий @ 16.08.2014 - 00:15) *
...Хотелось бы попросить помощи, а именно как лучше мне кластеризовать мои данные . Любой макрос сам напишу.Но меня интересует мнение математиков-профессионалов о том, как лучше визуализировать -кластеризовать мои данные, чтобы не было такое каши. Чтобы была четкая наглядность какие понятие(запросы) близки друг к другу.
Буду благодарен за любую подсказку.

1. Организация данных. Ваши исходные данные организованы таким образом, что никто из посещающих ресурс специалистов не сможет ими воспользоваться. Думаю, что если бы вы выложили кусочек своих данных устроенных иначе, то имели бы уже пару-тройку готовых вариантов решения или рецептов:). В столбцах должны быть атрибуты, которые вы хотите в итоге описать и кластеризовать (хотя кластеризовать можно и случаи по профилям совстречаемости атрибутов), а в строчках - случаи. Пока не совсем понял, что у вас является случаем, скорее всего это конкретные интернет-ресурсы, которые вы с программой мониторите на предмет поиска совстречаемости атрибутов. Такая матрица данных должна содержать только 0 (атрибут не встречается в данном случае) или 1 (встречается). Такую матрицу можно обработать большим числом уже готовых методов, имеющихся в разных статистических пакетах, выбрать наиболее удачные и запрограммировать их уже прицельно - если цель состоит в написании собственного макроса или программы. Если же это исследовательская работа, рациональнее заставить работать макрос только над сбором данных, а анализировать их каком-нибудь в профессиональном и уже давно отлаженном пакете.

2. Меры расстояния. Это очень серьёзно. Если два атрибута встречаются вместе (единицы в строке), то здесь всё более-менее понятно - это уже ассоциация. А если не встречаются (нули в строке)? Будем мы считать отсутствие совместной встречаемости за сходство и в какой степени? Или не будем? При использовании в качестве меры расстояния между атрибутами простой корреляции Пирсона (что вообще некорректно для качественных признаков) или даже ранговой корреляции отсутствие совместной встречаемости обрабатывается наравне с совстречаемостью. При использовании в качестве мер расстояния различных коэффициентов ассоциации, вычисляемых по таблицам сопряжённости (которые более уместны в вашем случае) - аналогично. Именно поэтому мне не нравятся результаты анализа соответствий, хотя именно этот анализ используется наиболее часто при редукции данных с обобщением для данных представленных 0 и 1. Часто получаются какие-то странные ассоциации, особенно в случае слабой насыщенности матрицы (больше нулей чем единиц). Дело в том, что какие-то атрибуты могут оказаться сходными не потому что они чаще встречаются вместе, а потому, что наоборот чаще не встречаются. А если для совстречаемости есть малое число поддающемуся осмыслению причин, то для остутствия совстречаемости их - бесчётное множество. Поэтому экологи в таких случаях используют другие меры расстояния, например, коэффициент или индекс сходства Жаккара: отношение числа случаев совместной встречаемости атрибутов к числу случаев, когда встречался хотя бы один из них. Получается, что в таком коэффициенте отсутствие совстречаемости просто не учитывается. Есть и другие меры, но Жаккара я бы посоветовал включить в набор мер расстояний обязательно.

3. Мерность пространства. Кластерный анализ - тупые процедуры, которые ничего не говорят о мерности пространства с которым мы работаем. Я имею в виду не математическую мерность, а смысловую, семантическую. Для семантического анализа более подходят другие методы обработки данных, типа анализа главных координат, многомерного шкалирования, ну или хотя бы тот же анализ соответствий. Каждое измерение нового редуцированного пространства имеет вполне поддающуюся осмыслению интерпретацию: одни атрибуты группируются вместе по одним причинам, другие - по другим... Кластерный анализ не удобен для осмысления, т.к. расстояния по всем семантическим размерностям усредняются и кластер на дендрограмме мы вольны трактовать в меру своей (не)компетенции. Именно поэтому я склоняюсь к использованию готовых пакетов для анализа данных, подобных вашим: зачем изобретать велосипед, когда уже есть весь арсенал транспорта?

4. Кластеризация случаев в редуцированном пространстве. Даже если специалист, интерпретирующий дендрограмму будет в высшей степени компетентен, сама процедура кластеризации располагает к ошибкам интерпретации или к неполноте последней. Дело в том, что может оказаться, например, что из 100 показателей 80 встречаются совместно по одной причине, 15 - по другой и 5 - по третьей. При кластеризации атрибутов мы эти 3 группы увидим. Но вот при кластеризации случаев эти 80 "забьют" оставшиеся 20, которые почти не дадут вклада в итоговое расстояние. Получится, что мы будем думать, что находим некие интегральные кластеры случаев по всем 100 показателям, хотя реально будем находить только те, которые навяжет причина совстречаемости 80-ти. Применительно к вашим данным, например, всё что связано с ремонтом "забьёт" все что связано с тюнингом, апгрейдом и т. д. Поэтому если такую кластеризацию и делать, то в редуцированном пространстве. Т.е. сначала свести 80 - к одной оси, 15 - к другой, и 5 - к третьей, интерпретировать, а уже далее провести кластеризацию случаев в новом трёхмерном пространстве.

5. Про алгоритмы кластеризации не пишу, их тоже куча + полезным может оказаться не один, а сразу несколько вариантов. Ещё один "+" в пользу готовых пакетов.

Такое видение проблемы. Курсивом выделил термины, чтобы вы погуглили на эти темы.

Сообщение отредактировал nokh - 17.08.2014 - 19:39
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме


Добавить ответ в эту темуОткрыть тему