Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Измерение "похожести" двух дискретных рядов 
:(
    Опции темы
sergejzr
Дата 21.2.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Допустим у меня есть два дискретных ряда R1, R2 допустим это измерения одного и того же процесса разными инструментами. Количество измерений не обязательно равно.

Как определить их похожесть? Понятно, когда "похожесть" 100%, но не понятно, где обратная граница. Ведь "непохожесть" может быть какой угодно большой. И как её измерять...




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
maxim1000
Дата 21.2.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



чаще всего "похожесть" понимается сходно с расстоянием
т.е. фраза получается "эти города близки на 30%" - не очень-то осмысленно

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

для более специфического случая с рядами нужно уточнить по каким параметрам сравниваются ряды, если в процессе сравнения происходит поиск какой-то общей части, можно сравнивать её длину с длинами двух рядов и оттуда получать какие-то проценты


--------------------
qqq
PM WWW   Вверх
Sardar
Дата 21.2.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Можно на манер вычисления расстояния между строками (вставка/удаление символов) вычислить "наименьшую" разницу между элементами, т.е. (вставка/удаление/+дельта), где каждой из этих операций можно дать разный вес. Задача по идее квадратична ("динамическое программирование"), если данных не много, то вполне быстро.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 21.2.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Спасибо за ответы smile
Цитата(maxim1000 @  21.2.2008,  15:56 Найти цитируемый пост)
для более специфического случая с рядами нужно уточнить по каким параметрам сравниваются ряды, если в процессе сравнения происходит поиск какой-то общей части, можно сравнивать её длину с длинами двух рядов и оттуда получать какие-то проценты 
 

Я тут обмозговал это, получился такой пример:


R1 - N точек на f1(x)
R2 - L точек на f2(x)

"Похожесть" определяется количеством точек, которые однозначно принадлежат или f1, или f2 

Если точек нет - похожесть 0%
Если по имеющимся точкам не определить, к какой функции они относятся - 100%

При этом есть точки примеры из f1 и точки - примеры из f2 по которым можно примерно f1 и f2 восстановить. (просто дело идёт не о функции, а о дискретном ряде, поэтому не говорю, что f1,f2 известны) 


Цитата(Sardar @  21.2.2008,  16:10 Найти цитируемый пост)
Задача по идее квадратична ("динамическое программирование"), если данных не много, то вполне быстро. 

Мне именно измерение "похожести" необходимо, а не само решение задачи.

Цитата(maxim1000 @  21.2.2008,  15:56 Найти цитируемый пост)
с другой стороны стоит разобраться, зачем нужно представление именно в процентах
если только для того, чтобы сравнить с порогом, то совсем необязательно в процентах - можно просто какое-то значение, характеризующее меру отличия, необязательно даже ограниченное сверху

Скажем так... в процентах не совсем необходимо, но намного удобнее сравнивать множество таких пар рядов между собой, особенно если каждая пара специфична..




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
maxim1000
Дата 21.2.2008, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(sergejzr @  21.2.2008,  17:35 Найти цитируемый пост)
f1(x)


Цитата(sergejzr @  21.2.2008,  17:35 Найти цитируемый пост)
f2(x)


что подразумевается?


--------------------
qqq
PM WWW   Вверх
sergejzr
Дата 21.2.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Цитата(maxim1000 @  21.2.2008,  20:45 Найти цитируемый пост)
Цитата(sergejzr @  21.2.2008,  17:35 Найти цитируемый пост)
f1(x)


Цитата(sergejzr @  21.2.2008,  17:35 Найти цитируемый пост)
f2(x)


что подразумевается? 

Любая функция.
Например f1(x) - парабола, a f2(x)- прямая.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
maxim1000
Дата 22.2.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(sergejzr @  21.2.2008,  17:35 Найти цитируемый пост)
"Похожесть" определяется количеством точек, которые однозначно принадлежат или f1, или f2

тогда не очень понятна эта фраза

насколько я понял, сравниваются два ряда (R1, R2?)
если это так - при чём тут функции?


--------------------
qqq
PM WWW   Вверх
Akina
Дата 22.2.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Из институтского курса высшей математики вспоминается слово "корреляция"...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
_Y_
Дата 22.2.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Именно корреляция и методы борьбы с ним опусаны в куче книг по обработке результатов измерений.

В простейшем случае применяется метод наименьших квадратов. Две величины наносятся на график по двум осям, ищется зависимость (проще всего - линейная) и считается коэффициент корреляции. Метод наименьших квадратов - самый распространенный подход к поиску такой зависимости. В общем виде:
sum[(x(i) - y(i))**2]=min

Ну а если есть желание погуглить - клучевое слово коэффициент корреляции.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
podval
Дата 22.2.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Сдаётся мне, корреляция здесь и даром не нужна. 
Ну, допустим, получили значение коэффициента корреляции 0.78. Дальше что? Какие из этого выводы (случаи 0, 1 и близкие к ним не рассматриваем) ? Что с этим делать?


sergejzr, разжевал бы подробнее, какова цель? Ведь по неё можно подогнать любую науку smile

Для чего тебе нужна похожесть/непохожесть рядов измерений? Чтобы угадывать, одним инструментом они получены или разными? Где цель, вобщем?

А то для начала я бы, например, поработал с сырыми данными и посмотрел: 

1) а не образуют ли данные хотя бы 2 кластера? 
2) не попадают ли результаты измерений разными инструментами в разные кластеры?

Вот было бы тогда за что цепляться. 
PM WWW ICQ   Вверх
Akina
Дата 22.2.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(podval @  22.2.2008,  21:47 Найти цитируемый пост)
Сдаётся мне, корреляция здесь и даром не нужна. 
Ну, допустим, получили значение коэффициента корреляции 0.78. Дальше что? Какие из этого выводы (случаи 0, 1 и близкие к ним не рассматриваем) ? Что с этим делать?

Я что-то не въезжаю... 
Цитата(sergejzr @  21.2.2008,  17:26 Найти цитируемый пост)
Как определить их похожесть? Понятно, когда "похожесть" 100%, но не понятно, где обратная граница. Ведь "непохожесть" может быть какой угодно большой. И как её измерять...

В ответ дали КОЛИЧЕСТВЕННУЮ оценку похожести. В полном соответствии с просьбой. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
podval
Дата 22.2.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Akina, у корреляционного анализа малость другое предназначение. 

Если бы Серж пытался найти, скажем, как изменение R1 отражается на значениях R2, тогда велкам. Но он ведь не ищет взаимосвязь R1 и R2, ибо и так дано, что это измерения одного и того же процесса, только разными инструментами. 
PM WWW ICQ   Вверх
sergejzr
Дата 25.2.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Ребята, спасибо за дискуссию. сейчас разобрался вроде, что мне на самом деле надо. smile

Цитата(podval @  22.2.2008,  19:47 Найти цитируемый пост)
А то для начала я бы, например, поработал с сырыми данными и посмотрел: 

1) а не образуют ли данные хотя бы 2 кластера? 
2) не попадают ли результаты измерений разными инструментами в разные кластеры?

Вот было бы тогда за что цепляться.  


Для кластеризации необходимо фичерсы как-то выделить, а в том и проблема, что их как-то определить надо..

Цитата(podval @  22.2.2008,  19:47 Найти цитируемый пост)
sergejzr, разжевал бы подробнее, какова цель? Ведь по неё можно подогнать любую науку smile

Для чего тебе нужна похожесть/непохожесть рядов измерений? Чтобы угадывать, одним инструментом они получены или разными? Где цель, вобщем?


Попробую открыть "секрет" smile 

Я тут занимаюсь "security in information outsourcing and retrieval".  

Надеюсь народ имеет представление об "inverted index"
Смысл в том, что коллекция из документов записывается в виде: слово:указатели_на_документы_содержащие_это_слово


Допустим следующие документы:

1) "светило солнце"
2)"солнце - самая близкая звезда и самая большая"

составят следующий индекс (по схеме: слово документ(кол-во)):

светило 1(1)
солнце 1(1),2(1)
самая 2(2)
близкая 2(1)
звезда 2(1)
большая 2(1)

Таким образом имея индекс очень легко найти интересующий документ без того, чтобы перелопачивать всё содержимое коллекции, а количество искомого слова в документе определяет "важность" документа. Но и имеющий индекс, может сказать всё про всё коллекцию. Чего нам и нельзя допускать. Даже если зашифровать слова и отдельные указатели, по их количеству можно догадаться, о каком слове идёт речь.


В первой работе нам удалось скрыть всю инфу тем, что некоторые строки в таблице мы соединяли вместе и после шифровки без "ключа" уже нельзя было сказать, какое слово в каком документе находится. Например:

светило,солнце,звезда 1(1), 1(1), 2(1),  2(1)
самая,близкая,большая  2(2), 2(1), 2(1)

Это всё основано на теорвере и акцептировано научным миром (бумажка 109).

Вот только информация о количестве тоже зашифрована, потому что её распределение может рассказать о слове. Проблему эту решали (и решили здесь). Тем, что просто равномерно распределяем вероятностно обоснованные значения в одинаковых пределах для всех слов.

Осалось только проверитъ, насколько функция хорошо защищает слова, то есть может ли нападающий сказать, что например "в хвосте" слово "большая" более вероятно, или нет 




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
podval
Дата 27.2.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



 smile 

зубодробительно
PM WWW ICQ   Вверх
sergejzr
Дата 27.2.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Цитата(podval @  27.2.2008,  19:35 Найти цитируемый пост)
зубодробительно 

Пока - да. Но ведь и работа пока не закончена. Сейчас причёсываю. Поэтому и пришлось конкретную проблему описать "на пальцах"..


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.