stas: (Default)
stas ([personal profile] stas) wrote2003-10-21 01:31 pm

математическая проблемка

Имеется некая переменная x - время завершения некоего процесса. Для процесса возможно "успешное" завершение, которое примерно занимает одно и то же время, но может варьироваться в некоторых пределах. Возможно также "ненормальное" завершение, при котором время или очень мало, или очень велико. Задача - по истории запусков этого процесса научиться отличать "успешные" времена от "ненормальных" - предполагая, что "ненормальные" очень редки. Тут вопрос - можно ли предположить, что распределение x - нормальное? Особая точность не нужна, главное, чтобы улавливались серьёзные отклонения от "обычного" поведения.

Теперь задача усложняется - допустим, у процесса возможно несколько (небольшое число) вариантов "успешных" завершений, каждое из которых занимает своё время. Какой именно из вариантов происходит каждый раз - выбирается случайно. Как в этом случае отличить "успешное" от "ненормального"? Возможно ли это в общем случае?

[identity profile] ex-ilyavinar899.livejournal.com 2003-10-21 05:25 am (UTC)(link)
Если успешное завершение занимает от 1ms до 5ms, а неуспешное <100µs или >50ms - то очевидно, их можно отличить. Если же границы более размазаны, то ясно дело, отличить нельзя.

[identity profile] ex-ilyavinar899.livejournal.com 2003-10-21 05:36 am (UTC)(link)
Кроме длительности исполнения есть какие-то ещё данные об исполнениях? Одномерную задачу классификации решать несравненно труднее, чем двух-, трёх- и т. п. -мерную.

[identity profile] ex-ilyavinar899.livejournal.com 2003-10-21 05:47 am (UTC)(link)
Любые данные, коррелирующие с успехом и неудачей. Представь себе на листике бумаги много точек, чёрных и синих, причём чёрные точки кучкуются друг с другом, а синие - друг с другом; зная координаты точки, можно определить, к какому скоплению она ближе - к чёрному или синему - и соответственно предсказать её цвет. На полоске это гораздо труднее, а в пространстве ещё легче (со 100 измерениями свои проблемы).

Почитай про алгоритм EM.

[identity profile] meshulash.livejournal.com 2003-10-21 06:04 am (UTC)(link)
Ах ты, враг нехороший! Я-то думал, ты по неудачам тоже статистику ведешь. Иначе - откуда ты знаешь, какие времена у неудач?

[identity profile] meshulash.livejournal.com 2003-10-21 05:32 am (UTC)(link)
В первом случае - распределение, вне всякого сомнения, нормальное.

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

[identity profile] mz1313.livejournal.com 2003-10-21 05:47 am (UTC)(link)
Пмсм, можно верхнюю границу отсчитывать от максимально возможного измерения, а нижнюю от минимально возможного. Я так понимаю, что каждое измерение не абсолютно, а охватывает некую небольшую область (скажем, одно от 99.8 до 100.2, другое от 0.98 до 1.02)? Тогда можно считать каждое отдельное измерение нормально распределенным и воспользоваться твоей формулой для случая одного варианта.

[identity profile] meshulash.livejournal.com 2003-10-21 06:02 am (UTC)(link)
Я имею ввиду следующее. Пусть времена успешных завершений лежат в интервале 1-100, а времена неуспешных - в интервале 0-20. Это примерно так?

[identity profile] meshulash.livejournal.com 2003-10-21 06:21 am (UTC)(link)
Тогда, вероятно, имеет смысл совместить разбиение на интервалы и статистику по неудачам. Т.е. считать, что неудачи распределены в интервалах 0-1 и 20-50 нормально, а в интервале 200-inf - по Пуассону (или нормально, если все же не inf). И все, что не неудача полагать удачей.

Mozhno ukorotit' k etomu delu diskriminantnyj analiz.

[identity profile] d-ohrenelli.livejournal.com 2003-10-21 06:36 am (UTC)(link)
Iskat' oblaka tochek (ili oblasti tochek) blizkie drug k drugu po udacham i neudacham i po rasstojanijam ot centra opredeljat'.
Esli faktor ne odin a 2 ( i oni ne zavsimy linejno )
budet eshe luchshe - a esli bol'she - eshe luchshe.
Esli dannye nechislovye algoritm ocifrovki mozhno pogljadet' v trehtomnike Ajvazjana.

D_Ohrenelli , s uvazheniem.

[identity profile] diam.livejournal.com 2003-10-21 07:20 am (UTC)(link)
тут, наверное, два распределения. одно - для успешного завершения, оно нормальное с небольшим отклонением, а на него накладывается шум - ненормальные завершения. похоже на классическую задачу.

а вообще, если речь о конкретном наборе данных (log-файлы;)?), то надо нарисовать распределение и методом матеметического тыка все решить. :)

[identity profile] meshko.livejournal.com 2003-10-21 08:04 am (UTC)(link)
bayesian network конечно! (ну не извращенец ли я?)
Хотя может ведь сработать. Есть довольно много библиотек, и, скорее всего, их как раз для такой цели можно легко прикрутить. И, если это правда сработает, оно ведь может и потом работать, когда задача изменится (сместятся какие-нибудь интервалы и т.д.).

[identity profile] meshulash.livejournal.com 2003-10-21 08:28 am (UTC)(link)
"bayesian network конечно!"
П..ц котенку :)

Стас, ты понял, что бывает, когда математиков просят посчитать устойчивость стула о четырех ножках? :)

[identity profile] krimsky.livejournal.com 2003-10-21 11:09 am (UTC)(link)
Была. Была такая фишка. :-)
В некотором царстве, в некотором государстве брал я такой курс под названием "Шитот нитур". Целый раздел в статистике, занимающийся именно описанной тобой проблемой в классическом варианте (без добавленного усложнения со случайными вариантами). Существует 5-6 основных подходов к решению этой проблемы, ни один из которых я в двух словах тебе объяснить не в состоянии по многим причинам (терминология, необходим опредённый уровень подготовки, да и я сам боюсь тебе напутать). Однако мне удалось откопать совершенно случайно сохранившийся силибус с курса со списком научных работ, поверхностно ознакомившись, с которыми ты сможешь лучше изучить тему и вытащить оттуда общепринятые способы решения таких задач.
Список книг и 19-ти публикаций, разбитых на подтемы (включая случаи, когда не предполагается определённое распределение), могу выслать те по факсу, еси очень надо. Ну и ва-апще... :-)

[identity profile] heiheneikko.livejournal.com 2003-10-21 02:49 pm (UTC)(link)
Есть такая идея:
Несложно построить функцию "плотности" для значений из истории. Тогда максимумы этой функции будут центрами групп. Дальше для каждой величины находим ближайший центр и получаем группы однотипных запусков (с близким временем). Для каждой группы можно определить успешные это запуски или нет по количеству элементов в группе (другого критерия, кроме редкости ненормальных вроде нет? :) Для новых запусков сразу определяем подходящую группу и по ней - успех или нет

Можно для каждой успешной группы считать mean и stddev и определять вхождение по ним.

(муж)