Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расстояние Махалонобиса, применительно к идентификации дикторов 
:(
    Опции темы
Sou4astneg
Дата 29.1.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 28.6.2007

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



Здесь уважаемый podval поделился алгоритмом идентификации дикторов. После изучения у меня остался вопрос, а топик , к сожалению, уже закрыт. Итак, при разложении исходного сигнала в вейвлет-пакет мы получаем вектор-столбец, состоящий из коэффициетов, характеризующих распределение энергии в частотно-временной области. Т.е. коэффициенты 1-го, .., n-го уровней друг за другом. Формирование эталона происходит простым усреднением этих коэффициентов на множестве реализаций сигнала. Т.е. скажем я повторю 10 раз в микрофон одно и то же слово, получу 10 различных векторов разложения, затем простым усреднением получу эталон. Так же могу получить еще несколько эталонов для других дикторов, получив таким образом несколько классов. Вопрос: как применить расстояние Махаланобиса для задачи идентификации диктора, т.е. соотнесения анализируемой реализации с одним из существующиз классов? На входе имеем вектор-столбец разложения тестируемого сигнала в вейвлет пакет.

Цитата

ОК. Пишу сразу в матричном виде. Найдем сначала ковариационные матрицы (точнее, их оценки) для выборок А1 и А2. Соответствующие им векторы средних Х1 и Х2 мы уже имеем.
1. Центрирование:
В1 = А1 - Х1 - из каждого столбца матрицы А1 надо вычесть вектор средних Х1. То же делаем для А2:
В2 = А2 - Х2.

2. Определяем ковариационные матрицы 

Cov1 = В1'*В1 - это значит умножить В1 транспонированную на В1 (по правилам умножения матриц!) Соответственно
Cov2 = В2'*В2.

Лирическое отступление: строго говоря, чтобы получились действительно ковариационные матрицы, надо поделить Соv1/(n1 - 1) и Соv1/(n2 - 1) , где n1 и n2 - длины векторов Х1 и Х2. Но это сейчас не понадобится.

3. Вычисляем объединенную (пардон, выше сделал очепятку ) матрицу:

Cov12 = (Cov1 + Cov2)/(n1 + n2 - 2)

А для вычисления расстояния Махаланобиса Cov12 надо обратить.



Цитата

Расстояние Махаланобиса и классификация. Для каждой совокупности в выборке вы можете определить положение точки, представляющей средние для всех переменных в многомерном пространстве, определенном переменными рассматриваемой модели. Эти точки называются центроидами группы. Для каждого наблюдения вы можете затем вычислить его расстояние Махаланобиса от каждого центроида группы. Снова, вы признаете наблюдение принадлежащим к той группе, к которой он ближе, т.е. когда расстояние Махаланобиса до нее минимально.




Цитата

Расстояние Махаланобиса:

Dm = [(X1-X2)'*inv(S)*(X1-X2)], 

где X1, X2 - векторы средних для матриц М1 и М2, 
S - объединенная ковариационная матрица, 
inv - операция обращения матриц,
' - операция транспонирования.

Объединенная ковариационная матрица считается так:

S = (Cov1 + Cov2)/(n1 + n2 - 2),

где Cov1 = M1'*M1, Cov2 = M2'*M2.
n1, n2 - длины X1, X2.


Может ли кто-либо прокомментировать эти определения и формулы применительно к вышеописанной ситуации? спасибо

PS. поиск юзал  smile 

Черт, в названии ошибся, пардон, МахалАнобис

Это сообщение отредактировал(а) Sou4astneg - 29.1.2008, 12:49
PM MAIL   Вверх
podval
Дата 29.1.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Sou4astneg @  29.1.2008,  12:32 Найти цитируемый пост)
Вопрос: как применить расстояние Махаланобиса для задачи идентификации диктора, т.е. соотнесения анализируемой реализации с одним из существующиз классов?


Допустим для простоты, что у нас 3 класса. Для них имеем 3 образца: Х1, Х2, Х3. 
Пришла какая-то реализация Х0, которую надо классифицировать.

Вычисляем  3 расстояния:
  • D01 - расстояние от Х0 до Х1
  • D02 - расстояние от Х0 до Х2
  • D03 - расстояние от Х0 до Х3

Ищем минимум Dmin из (D01, D02, D03).

Если Dmin = D01, то Х0 принадлежит класу Х1.
Если Dmin = D02, то Х0 принадлежит класу Х2.
Если Dmin = D03, то Х0 принадлежит класу Х3.
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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