Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
ImFine
Заблокирован
#1

Сравнить два вектора признаков и получить процент схожести этих векторов - C#

09.04.2014, 01:35. Просмотров 1272. Ответов 9
Метки нет (Все метки)

Добрый день нужно сравнить 2 вектора признаков и получить процент схожести этих векторов.

Нашел как найти расстояние использовав эвклидову формулу в таком виде

C#
1
2
3
4
 for (int i = 0; i < features1.length; i++) {
                double diff = features1[i] - features2[i];
                distance += diff * diff;
            }
А как найти процент схожести между векторами?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 01:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнить два вектора признаков и получить процент схожести этих векторов (C#):

Процент схожести 2-ух чисел
Нужно найти процент схожести 2-ух чисел, допустим числа 99 и 98 они похожи на...

Заданы координаты концов двух векторов, выходящих из начала координат. Найти длины этих векторов
Заданы координаты концов двух векторов, выходящих из начала координат. Найти...

Даны два числа: N1 и N2, и две строки: S1 и S2. Получить из этих строк новую строку, объединив N1 первых с
Даны два числа: N1 и N2, и две строки: S1 и S2. Получить из этих строк новую...

Даны два действительных числа. Найти среднее арифметическое кубов этих чисел и среднее геометрическое модулей этих чисел
Даны два действительных числа. Найти среднее арифметическое кубов этих чисел и...

Два вектора заданы своими координатами. вычислив длины этих векторов и сравнить их
два вектора заданы своими координатами. вычислив длины этих векторов и сравнить...

Два вектора заданы своими координатами.Вычислить длины этих векторов и сравнить их.
Два вектора заданы своими координатами.Вычислить длины этих векторов и сравнить...

9
IamRain
1279 / 1171 / 360
Регистрация: 02.08.2011
Сообщений: 3,416
09.04.2014, 02:37 #2
Лучший ответ Сообщение было отмечено ImFine как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
sum =0;
length1 =0;
length2=0;
for (int i = 0; i < features1.length; i++) {
               sum += features1[i]*features2[i];
               length1 += features1[i]*features1[i];
               length2 += features2[i]*features2[i];
            }
distance = Math.Sqrt(distance);
length1 = Math.Sqrt(length1);
length2 = Math.Sqrt(length2); 
var  correlation =  sum/length1/length2;
Смотрите модуль этого значения - чем ближе к единице, тем больше схожесть в поведении векторов(функций).
1
ImFine
Заблокирован
09.04.2014, 02:40  [ТС] #3
разброс значений от 0 до 1 ?

Выходит вы использовали методы корреляции для нахождения числа?
0
IamRain
1279 / 1171 / 360
Регистрация: 02.08.2011
Сообщений: 3,416
09.04.2014, 02:43 #4
Добавлено через 43 секунды
Цитата Сообщение от ImFine Посмотреть сообщение
разброс значений от 0 до 1 ?
от -1 до 1.
Цитата Сообщение от ImFine Посмотреть сообщение
Выходит вы использовали методы корреляции для нахождения числа?
Да.

Добавлено через 1 минуту
А нет, виноват, от 0 до 1.
1
ImFine
Заблокирован
09.04.2014, 02:44  [ТС] #5
Большое спасибо. Решал задачу по одному из предметов все сделал кроме сравнения ломал голову не знал как)

Пс. Корреляцию будем изучать на другом предмете через неделю) буду теперь знать что такое и с чем едят)
0
IamRain
1279 / 1171 / 360
Регистрация: 02.08.2011
Сообщений: 3,416
09.04.2014, 02:48 #6
Почитайте вот это: Без паники. Юкио Сато. Там про цифровую обработку сигналов, но во 2 и 3 главе очень доходчиво объясняется о том, что вам нужно знать. (книга для школьников )

Добавлено через 1 минуту
Все-таки от -1 до 1 варьируется.
0
ImFine
Заблокирован
09.04.2014, 03:03  [ТС] #7
все значения которые я получаю после получения мел-кепстральных коэфф после прогонки через вашу функцию дают от 0 до 1 мой голос распознается на 0.991 что очень радует)
1
IamRain
1279 / 1171 / 360
Регистрация: 02.08.2011
Сообщений: 3,416
09.04.2014, 03:06 #8
Цитата Сообщение от ImFine Посмотреть сообщение
все значения которые я получаю после получения мел-кепстральных коэфф после прогонки через вашу функцию дают от 0 до 1 мой голос распознается на 0.991 что очень радует)
Отлично), тоже, кстати с MFCC работал в своей бакалаврской. Как у вас фильтрация шума реализуется?
0
ImFine
Заблокирован
09.04.2014, 11:25  [ТС] #9
Ну как минимум провожу пиковую нормализацию. Возможно вы и в этом что-то сможете подсказать? что можно использовать для лучшей обработки?
0
IamRain
1279 / 1171 / 360
Регистрация: 02.08.2011
Сообщений: 3,416
09.04.2014, 18:49 #10
Я пытался реализовать алгоритм Райнера Мартина, но где-то до этого еще закосячил, в итоге ничего толком не работало, поэтому сделал через примитивное прямоугольное окно. Вообщем, работа была запорота... But to be continued...
0
09.04.2014, 18:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2014, 18:49
Привет! Вот еще темы с решениями:

Процент схожести строк
Всем здрасте. Вообщем дали мне по лабораторным ОСиСП такое задание:...

Сравнить два вектора
Есть вектор а1=. Нужно умножить его на матрицу W. А затем в полученном векторе...

Сравнить два вектора размерности n
Как сравнить два вектора размерности n? Например вектор a(2,3,2) сравнить с...

Два вектора, сравнить длину
Заданы два векторы Х(х1,х2,х3) и . Переменной А присвоить значение 1, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru