Pull to refresh
45
0
Сергей Кокорин @kokorins

User

Send message

Медиана: точно, иногда точно и почти точно

Reading time5 min
Views31K
Если пройтись по коллегам и спросить сколько у них сотовых телефонов, то окажется, что в среднем их около 2.5, но при этом у подавляющего большинства их не больше одного. Тут возникает сразу множество вопросов начиная от того, почему их вдруг не целое число и как же все-таки оценить сколько телефонов в среднем у человека.



Для таких целей подойдет оценка медианы. То есть такая статистика, что половина значений выборки меньше, а половина больше. Более формально: упорядочим значения выборки X=(x_1,..., x_n) по порядку (x_{[1]}, ..., x_{[n]}) и выберем среди них с порядковым номером floor(n/2). У такой оценки есть несколько преимуществ. Она менее подвержена влиянию ошибочных данных, значение всегда будет из того множества, что встречалось в выборке, но есть и неприятные недостатки, главный из них, это сложность подсчета, даже для довольно распространенных распределений не существует общей формулы расчета (точнее есть, но ее сложно применить на практике, смотрите Распределение порядковой статистики).
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments6

Скрытые цепи Маркова, алгоритм Баума-Велша

Reading time4 min
Views25K
Скрытые модели/цепи Маркова одни из подходов к представлению данных. Мне очень понравилось как обобщается множество таких подходов в этой статье.

В продолжение же моей предыдущей статьи описания скрытых моделей Маркова, задамся вопросом: откуда взять хорошую модель? Ответ достаточно стандартен, взять неплохую модель и сделать из нее хорошую.

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

Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments4

Скрытые цепи Маркова, алгоритм Витерби

Reading time5 min
Views60K
Нам нужно реализовать детектор лжи, который по подрагиванию рук человека, определяет, говорит он правду или нет. Допустим, когда человек лжет, руки трясутся чуть больше. Сигнал может быть таким:

Исходный сигнал

Интересный метод, описан в статье «A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition» L.R. Rabiner, которая вводит модель скрытой цепи Маркова и описывает три ценных алгоритма: The Forward-Backward Procedure, Viterbi Algorithm и Baum-Welch reestimation. Несмотря на то, что эти алгоритмы представляют интерес только в совокупности, для большего понимания описывать их лучше по отдельности.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments25

Краткое введение в boost::program_options

Reading time5 min
Views43K
Занимаясь разработкой алгоритмов, постоянно одергиваю себя, а вдруг изменения, которые работают на небольшом примере, привнесут разброд и шатание в результаты на других, больших данных. Тогда мне на помощь приходит командная строка. Самое ужасное, что каждый раз реализовывать парсер аргументов уже надоело, а значит, не последним средством для C++ программиста оказывается пакет program_options из библиотеки boost.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments22

Индексный метод генерации конечных дискретных распределений

Reading time2 min
Views4.5K
Иногда очень интересно провести имитацию броска кости. Для этого существует эффективный алгоритм, который позволяет сгенерировать значение выпавшее на верхней грани, используя псевдослучайное число alpha из равномерного распределения на [0,1]. А именно: image, где image — взятие целой части у аргумента.

Но предположим, что у нас «нечестная» кость и грани выпадают неравномерно. Пусть наша кость имеет K граней, и p_i вероятность выпадения грани image. При этом выполняется естественное ограничение image. Постараюсь ответить на вопрос: как смоделировать псевдослучайную последовательность с таким распределением?
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments5

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Registered
Activity