LINUX.ORG.RU
решено ФорумTalks

ПТУ-тред. Составление графика функции по набору точек.


0

1

Грубо говоря, двумерная функция, ось X - набор временных промежутков, ось Y - кол-венная характеристика неких событий, например кол-во входящих звонков. После некоторого времени, требуется восстановить функцию по накопленным значениям, в попытке спрогнозировать возможные нагрузки.

Я прекрасно понимаю, что это как бы целый раздел науки, но хотелось бы узнать откуда начинать изучать предмет хотя бы поверхностно. Может есть книжка какая или раздел вышмата какой прокурить сначала, прежде чем читать что-то по стат.анализу при этом не залипая на первой же странице.


Может есть книжка какая или раздел вышмата какой прокурить сначала, прежде чем читать что-то по стат.анализу при этом не залипая на первой же странице.

Правильный подход --- спросить, какая библиотека твоего языка сделает такое. Пусть всякие лохи читают.

vvff
()
Ответ на: комментарий от kombrig

man экстраполяция.

Точнее «man аппроксимация», экстраполяция тут не катит. Ну и для практики решения «man численные методы».

FeyFre ★★★★
()

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

Jetty ★★★★★
()

Вы понимаете, что вы все равно должны самостоятельно предсказать какой-то вид этой функции?

Кроме того, вы отдаете себе отчет в том, что экстраполяция может дать и очень плохие результаты, особенно если вы плохо «угадаете» функцию?

Раздел вышмата — теория приближений.

buddhist ★★★★★
()

А какой вид функции? Вообще можно метод наименьших квадратов использовать.

Artificial_Thought ★★★★
()

Когда-то в институте восстанавливал функцию по точкам сплайнами в Maple, это довольно просто.

x-signal ★★
()

интерполяция, как частный случай аппроксимации
раздел - вычислительная математика, в любом учебнике по вычмату есть раздел с интерполяцией
если лень вникать в суть, матлаб умеет такое делать, для фанатиков есть gnu octave, тоже умеет

Fatalist
()

предположим ты хочешь аппроксимировать полиномом N степени, то есть функцией вида f(x) = a0 + a1 x + a2 x^2 + ... + aN x^N.

то есть требуется найти неизвестные a0 ... aN

для этого составляется система, в которую входят уравнения для каждой пары данных X, Y которые у тебя есть

/Y0 = a0 + a1 X0 ... + aN X0^N 
{... 
\YM = a0 + a1 XM ... + aN XM^N
если M > N то данная задача решается минимизацией данной системы. т.е. нахождением такого корня, для которого сумма квадратов значений уравнений минимальна.

я использую для подобных задач библиотеку scipy, а именно функцию scipy.optimize.leastsq. основана на каких-то там древних библиотеках на фортране, которые доступны для любого языка.

работает волшебно. можно применять вообще для любого вида уравнений (т.к. они вычисляются через callback), лишь бы были гладкими. я делал такие «уравнения», которые даже нельзя аналитически записать (сложные вычисления алгоритмом) и оно всё равно работало.

olegsov
()

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

Строится регрессия каким то из методов ML умеющих строить регрессии(rabdomForest, svm). Как зависимую берут «число звонков» взятую с лагом на который надо предсказывать. В процессе подгонки решателя станет ясно можно ли предсказывать и на какой лаг.

psv1967 ★★★★★
()

Метод наименьших квадратов, не?

SjZ ★★★★★
()

График по точкам не поможет, для этой задачи (предсказание) он непригоден поскольку вид функции определять будешь ты сам (а алгоритм будет подгонять коэффициенты), и от этого будет зависеть «предсказание».

Вообще, задача, по-моему, хорошо ложится на адаптивные фильтры с предсказанием. Для начала читать Хэмминга «введение в цифровые фильтры», потом Уидроу-Хоффа «адаптивная обработка сигналов». А перед этим, если пропустил в институте - функциональный анализ и тервер.

prischeyadro ★★★☆☆
()

Еще можно сплайнами, она же кусочная интерполяция.

LongLiveUbuntu ★★★★★
()

Ну направление какбы уловил, а как при таком подходе рассчитать погрешность? Ну например каждые (допустим) 57е сутки случается всплеск, но опытным путём подтверждается только 3 случая из 5и? Как в таком случае прогнозируется погрешность? Или погрешность уменьшается с учётом накопленных данных? Или тут ещё как-то хитро подъехать надо?

На всякий случай поясню, я в этом деле - дуб, но очень любопытный дуб. Также понимаю, что если-бы на этот вопрос можно было ответить однозначно - на бирже бы уже давно торговали боты.

И да к финансам и бирже это не имеет отношения. Это прогнозирование нагрузок.

iBliss
() автор топика
Ответ на: комментарий от iBliss

Извините, последний пост был уже совсем наглостью. ВСЕМ спасибо за помощь, ушёл курить маны.

iBliss
() автор топика

Нужна модель. Самое простое, конечная последовательность независимых (хотя корреляция должна быть наверно, лучше это учесть) случайных величин, по одной на каждый промежуток. Какое распределение лучше взять не знаю. Дальше по статистическим данным делаем оценки моментов (и функции коррелации).

http://ru.wikipedia.org/wiki/Случайный_процесс

amaora ★★
()
Ответ на: комментарий от amaora

Перефразируя корейца не дружащего с мацой:

Уууу это страшное слово Стохастика (пытался разобраться, но сдулся)

iBliss
() автор топика
Ответ на: комментарий от iBliss

А то люди не ошибаются (за что потом получают опущение почек от кредиторов).

Биржи пока слишком сложны, чтобы в алгоритме предусмотреть вообще всё. Но основные корреляции работают, и если не случается чего-то экстраординарного, приносят копеечку.

prischeyadro ★★★☆☆
()

Если есть необходимость обрабатывать одномерные данные, советую Сергиенко почитать. Там и примерчики есть, которые можно в Octave прогнать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от iBliss

на бирже бы уже давно торговали боты.

ЕМНИП, они давно уже торгуют.

HerrWeigel ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.