2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Метод сравнения гистограмм в процентах
Сообщение09.10.2022, 00:03 


29/12/09
366
Привет, всем!

Мне нужен метод для сравнения гистограмм, желательно метрика должна выдавать процент похожести двух гистограмм.
Я хочу вычислить точность работы алгоритма по поиску объектов различной формы. У меня есть истинная гистограмма распределения объектов по размерам и гистограмма, которая получилась в результате работы алгоритма поиска этих объектов. Если посчитать процент точности количества всех найденных объектов, то это легко, мы знаем сколько должно быть объектов и вычитаем из того сколько алгоритм нашёл и делим на число объектов сколько должно быть и таким образом можно получить ошибку в процентах.
А вот когда доходит дело до сравнения гистограмм и причём отличие должно выражаться в процентах, то я не очень понимаю как это сделать.
Если кто знает как такую задачу правильно решить, подскажите плиз. Может есть литература где можно почитать. Спасибо

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение09.10.2022, 10:39 


31/08/22
183
alexey007 если я правильно понял то Вам поможет дивергенция Кульбака-Лейблера. Это метрика сравнения двух распределений.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение09.10.2022, 15:41 


29/12/09
366
Да! Отлично! То что надо, спасибо!

Но, когда я начал применять, то натолкнулся на такую проблему.
Вот допустим мы хотим сравнить близость двух гистограмм представленных на картинке.
Изображение
Приведу данные первой и второй гистограммы:
$P=[1,0,2 ,5 ,7, 4, 3, 0, 1]; Q=[2, 1, 0, 4, 8, 5, 2, 1, 0];
$

Согласно формуле дивергенция Кульбака-Лейблера
$D_{KL}(P||Q)=\sum\limits_{i=1}^np_i\log\frac{p_i}{q_i}$

Если подставить данные в формулу, то например для второго члена суммы мы получим:
$0\cdot\log\frac{0}{1}=0\cdot\log{0}=0\cdot-\infty$
А для третьего столбца получим
$2\cdot\log\frac{2}{0}=2\cdot\log{\infty}=2\cdot\infty=\infty$
Подскажите, пожалуйста, как сравнить правильно близость двух гистограмм

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение09.10.2022, 21:25 
Аватара пользователя


26/05/12
1694
приходит весна?
Я так понимаю, расстояние Кульбака — Лейблера вычисляется для распределений. В вашем же распоряжении имеются выборки. Аппроксимируйте каждую выборку подходящей моделью распределения (например, с помощью ММП), а потом уже к двум аппроксимациям можно будет применить предложенную выше дивергенцию.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 00:26 
Аватара пользователя


26/07/20
50
B@R5uk
Эмпирическое распределение -- тоже распределение (хотя автору нужно еще все нормализировать)

alexey007
Почти все правильно. +бесконечность -- валидное значение для KL-дивергенции, оно выражает то, что мы не сможем нормально закодировать референсное распределение предложенным (так как у референсного распределения ненулевую вероятность имеют точки, которые у данного имеют нулевую). А вот -бесконечность исключено, поскольку такая дивергенция вычисляется только для распределений, связанных абсолютной непрерывностью.

В вашем случае, вероятно, подойдет расстояние Колмогорова-Смирнова.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 01:05 
Аватара пользователя


26/05/12
1694
приходит весна?
KregSeptim в сообщении #1566375 писал(а):
Эмпирическое распределение -- тоже распределение
Так то оно так, да только разница между ними, как между дискретной и непрерывной функцией. Причём в данном конкретном случае это утверждение верно буквально: высота столбика на гистограмме — целое число (количество наблюдений), в то время как матожидание этой высоты — наверняка действительное число. Если б числа были бы большими (прям так много больше единицы), то ещё бы было ничего (в плане погрешности округления).

-- 10.10.2022, 01:20 --

KregSeptim в сообщении #1566375 писал(а):
нужно еще все нормализировать

Можно сделать и после вычислений: вычесть $\log(N_Q/N_P)$ и результат поделить на $N_P$

-- 10.10.2022, 01:22 --

KregSeptim в сообщении #1566375 писал(а):
расстояние Колмогорова-Смирнова

Кстати, отличная штука. Логарифмы считать не надо.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 09:03 


31/08/22
183
Почему бы не попробовать использовать просто RMSE или MAPE? В пределе можно и SE (сумму разностей).
Распределения то совпадают, можно рассматривать их просто как 2 ряда.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 10:29 
Заслуженный участник
Аватара пользователя


11/03/08
9905
Москва
А $\chi^2$ не спасёт гиганта мысли? :?
Обычная проверка однородности распределений.
$\chi^2=n\Sigma_i\Sigma_j \frac{\nu_{i,j}-\frac {\nu_{i.}\nu_{.j}} n }{\nu_{i.}\nu_{.j}}$
Где $\nu_{i,j}$ число попаданий в ячейку, n - общее число наблюдений во всех выборках, $\nu_{i.} \nu_{.j}$ суммы по гистограмме и по ячейке по всем гистограммам.
Для двух ещё проще$\chi^2=n_1 n_2\Sigma \frac {\frac {\mu_i} {n_1}-\frac {\nu_i} {n_2}}{\mu_i+\nu_i}$
где мю и ню число в соответствующей ячейке первой и второй гистограммы, Эн один и два - общее число наблюдений в первой и второй гистограммах.
Распределение с $(r-1)(k-1)$ степенями свободы, где r число ячеек гистограмм, k - число гистограмм (для двух просто $r-1$)

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 10:49 
Аватара пользователя


26/07/20
50
B@R5uk в сообщении #1566377 писал(а):
Так то оно так, да только разница между ними, как между дискретной и непрерывной функцией. Причём в данном конкретном случае это утверждение верно буквально: высота столбика на гистограмме — целое число (количество наблюдений), в то время как матожидание этой высоты — наверняка действительное число. Если б числа были бы большими (прям так много больше единицы), то ещё бы было ничего (в плане погрешности округления).

Ну у индикатора тоже матожидание не 0 или 1 (кроме тривиальных случаев). :)
В плане расстояний дискретные распределения почти ничем не хуже, чем абсолютно непрерывные. Более того, "непрерывные распределения" это распределения, которые абсолютно непрерывны относительно (как правило) меры Лебега, а дискретные -- которые абсолютно непрерывны относительно считающей меры. Фундаментально это суть одна и та же конструкция.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 11:15 
Заслуженный участник
Аватара пользователя


16/07/14
9151
Цюрих
Если у вас распределение дискретное на отрезке - то можно просто прибавить к высоте каждого столбика 1 и избавиться от нулей в знаменателе. Научно это соответствует тому, что вместо выборочного распределения мы используем байесовскую оценку, взяв распределение Дирихле в качестве приора.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 11:38 
Аватара пользователя


26/07/20
50
Schrodinger's cat в сообщении #1566381 писал(а):
Почему бы не попробовать использовать просто RMSE или MAPE?

В чем будет смысл полученных чисел? Они никак не учитывают, что у нас именно распределения, а не просто ряды. Это вносит большую разницу (грубо говоря, метрики должны иметь статистический/информационный смысл).

mihaild в сообщении #1566388 писал(а):
Научно это соответствует тому, что вместо выборочного распределения мы используем байесовскую оценку, взяв распределение Дирихле в качестве приора.

Адекватен ли этот приор задаче?

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 12:08 
Заслуженный участник
Аватара пользователя


11/03/08
9905
Москва
Евгений Машеров в сообщении #1566384 писал(а):
А $\chi^2$ не спасёт гиганта мысли? :?
Обычная проверка однородности распределений.
$\chi^2=n\Sigma_i\Sigma_j \frac{(\nu_{i,j}-\frac {\nu_{i.}\nu_{.j}} n )^2}{\nu_{i.}\nu_{.j}}$
Где $\nu_{i,j}$ число попаданий в ячейку, n - общее число наблюдений во всех выборках, $\nu_{i.} \nu_{.j}$ суммы по гистограмме и по ячейке по всем гистограммам.
Для двух ещё проще$\chi^2=n_1 n_2\Sigma \frac {(\frac {\mu_i} {n_1}-\frac {\nu_i} {n_2})^2}{\mu_i+\nu_i}$
где мю и ню число в соответствующей ячейке первой и второй гистограммы, Эн один и два - общее число наблюдений в первой и второй гистограммах.
Распределение с $(r-1)(k-1)$ степенями свободы, где r число ячеек гистограмм, k - число гистограмм (для двух просто $r-1$)


Сорри, очепятался. Приведен исправленный вариант.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 14:02 


31/08/22
183
KregSeptim в сообщении #1566389 писал(а):
В чем будет смысл полученных чисел?

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

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 14:21 
Аватара пользователя


26/07/20
50
Schrodinger's cat
В алгоритмах ML (вы это имеете в виду под алгоритмами обучения?) эта штука тоже плохая. В качестве функции потерь плохая, ибо не завязана на какой-либо inference в статмодели, так что само обучение будет под вопросом; в качестве метрики плохая, ибо сложно ее нормально проинтерпретировать.

 Профиль  
                  
 
 Re: Метод сравнения гистограмм в процентах
Сообщение10.10.2022, 14:49 
Аватара пользователя


21/01/09
3925
Дивногорск
alexey007 в сообщении #1566333 писал(а):
Приведу данные первой и второй гистограммы:
$P=[1,0,2 ,5 ,7, 4, 3, 0, 1]; Q=[2, 1, 0, 4, 8, 5, 2, 1, 0];
$

Обычно объединяют интервалы с малыми частотами.
$P=[3,5 ,7, 4, 4]; Q=[3, 4, 8, 5, 3]
$. А потом можно воспользоваться советом Евгений Машеров

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group