Род: Nudnyj Sr. Poster Сообщений: 337 |
Передо мной сейчас стоит задача на основании кучи данных (данные пополняются) построить некую модель для предсказаний. Проблема в том что я никогда подобными вещами не занимался и слегка теряюсь от обилия разнородной информации. Если у кого-либо был ПРАКТИЧЕСКИЙ опыт решения подобных задач, посоветуйте пожалуйста с чего начать. Интересует всё: книги, статьи, программное обеспечение, просто алгоритмы. Только не стоит советовать, то чем сами не пользовались и с чем не работали, я и сам интернет в данный момент копаю Короче если есть что посоветовать - горячий welcome! Если нет, лучше промолчать Заранее спасибо за понимание. |
Род: Nudnyj Sr. Poster Сообщений: 337 |
Я тут подумал, что наверное стоит немного уточнить контекст. Есть внешняя среда, состояние которой представлено вектором параметров: S = (A,B,C .. X) Самих параметров немного, около 10-ка. Возможно они не независимые, пока сказать сложно. Еще есть некий управляемый прибор который я могу прерводить в разные дискретные состояния, ну скажем Sp = [Sp1, Sp2, Sp3 .. Spn], т.е. для входящего вектора S, требуется переключать Sp в одно из состояний от Sp1 до Spn. И наконец есть некая оценочная функция Z=f(S,Sp) которая уже определена и показывает насколько конкретное состояние прибора Sp подходит в качестве реакции на конкретное состояние среды S. Моя задача построить такую модель что бы скормив ей какой-либо конкретный вектор S получить на выходе из этой модели подходяший (рекомендуемый) Sp. Имею сильное подозрение, что 100%-го попадания добиться нереально и случайность там присутсвует вовсю, но этого и не требуется, достаточно что бы в целом при использовании модели функция Z держалась в основном в плюсе. Т.е. если я буду просто выставлять Sp случайным образом, то Z в среднем будет болтаться около 0 (хотя на практике я заметил тенденцию сваливания в минус) и надо что-бы при выставлении Sp по рекомендации разрабатываемой модели, Z выходила в плюс на неких средних отрезках (т.е. локально может давать и минус, но в целом по отрезку должен получаться плюс). У меня существует впечатление, что есть спрятанные зависимости, позволяющие построение такой модели. Задачи выявления этих зависимостей не стоит, т.е. запросто можно использовать техники типа нейронных сетей и иже с ними, чёрный ящик вполне устроит - главное аккуратность предсказаний. |
Род: N_A - админ Сообщений: 444 ICQ: 191-87-85-92 |
Какому множеству принадлежат параметры(целые, действительные)? В каких пределах они меняются? С какой точностью доступны? Чему равно n для Spn? Z=f(S,Sp) – скаляр? Какие значения в каком диапазоне принимает? Точно не зависит ни от чего кроме S и Sp? Насколько непрерывно и плавно меняется при незначительных изменениях параметров? Благодарность от: Nudnyj |
Род: Nudnyj Sr. Poster Сообщений: 337 |
1. Так, я уже успел наврать Естественно Z выглядит по-другому, а именно: Z = f(S,Sp,Vr), где Vr - целочисленный параметер в очень узком диапазоне [0..3], известный для уже собранных данных, но НЕ известный для новых (т.е на момент прогноза). В противном случае понятно что задачи никакой нет в принципе 2. Параметеры S есть как целые, так и действительные, но с невысокой точностью (мах. до тысячных). Возможно я добавлю дополнительные которые будут функциями от исходных, т.к. у меня есть предположения что эти функции ощутимо влияют на результат (эти производные параметры будут точно float). Правда я на данный момент не знаю разумно ли это (то бишь делают ли такие выкрутасы вменяемые люди ) Определенных пределов для праметров нет, но в основном положительные и в пределах +5, но это только по имеющимся у меня данным, а теоретичекого ограничения нет, хоть +1000000000000000000000000000000000000000000000000, правда Z тогда улетит в стратосферу, или наоборот провалится куда-нибудь в район 9-го круга 3. Точность можно считать 100%. 4. Sp = [S1 .. S6] Теоретически в будушем может быть надо будет еще 6 вариантов, но в рамки данной задачи не входит. 5. Z - скаляр, тип float, диапазон в принципе неограничен (от -бесконечности, до +), но в реальности, исходя из имеюшихся данных максимально кучно ложится в отрезке (-10, +10) ну или около того, с тенденцией "прижиматься" к к оси, но не слишком (обычно не ближе -0.5, +0.5), но есть и некоторые вылеты до (-1000, +1000). Но это не анализ самой функции, а наблюдения за её поведением на реальном наборе имеющихся у меня данных. Саму функцию анализировать бестолку, потому что она очень круто зависит от неизвестного Vr. По сути Vr результат моих действий, на который я влияю выбором Sp. T.e модель его должна с некоторой вероятностью предугадывать и рекомендовать мне наиболее предпочтительный Sp, для данного S. Возможно есть смысл и вычистить такие заскоки например за (+-100) (я в принципе вижу как их можно идентифицировать на основе S, с неплохой вероятностю), но не хотелось бы, ибо желательна применимость модели на всём диапазоне Морально я готов на некий meta-learner для обьединения разных предсказаний, заточенных под конкретные диапазоны. 6. Z меняется скачками и непойми как, т.е. для (S,Sp,Vr) - считается элементарно, но очень зависит о Vr. Более того вполне может быть что для одного и того же (S,Sp) в зависимости от Vr - результат будет скакать безумным образом => не зная Vr (а мы его на момент прогноза и не знаем) получить 100% рекомендацию нереально, но это и не требуется. Я имею серьёзные подозрения что между известным S и неизвестным Vr, есть некая связь (это моя гипотеза), следовательно я предполагаю принципиальную возможность построения предсказательной модели, хотя не исключаю и ошибочность это предположения. Убедится в невозможности построения таковой на определенном наборе данных - то же результат, не очень желательный, но приемлемый. 7. Короче, уже имея рабочую модель, процесс выглядел бы так: получив S я скармливаю его "гадалке", получаю от неё рекомендуемый Sp (ну или некую оценку "рекомендуемости" для каждого из 6-ти вариантов Sp), затем используя его, определяю Vr, и считаю Z=f(S,Sp,Vr). Если на случайном наборе из скажем 300 таких процедур суммарный Z будет заметно положительный (ну хотя бы > +20), то цель достигнута. Пока задача стоит так, там видно будет P.S. Ну и на всякий случай маленькое пояснение: задачи запрячь кого-либо реально что-то делать не стоит, более того я в принципе такого рода помощь не хочу, не спортивно (да и раз такой случай подвернулся разобраться с чем-то новым надо пользоваться на всю катушку) А вот любые советы от опытных людей приму с благодарностью. P.P.S. Решил дописать в чём конкретно заключается моя гипотеза. А вот в чем: Vr=f(S,Sp,Hz), где Hz это х/з, т.е. нечто абсолютно внешнее и неподконтрольное, отсюда и неискоренимая вероятносность модели. Единственное что требуется это показать что модель демонстрирует заметно лучшие результаты, чем просто бегающие по клавиатуре тараканы. Могу еще добавить, что в случае верно предсказанного Vr, Z по любому будет > 0, а в случае промаха < 0, амплитуда будет зависить от (S,Sp). T.e. теоретически можно на некоей выборке, напромахиваться в предсказании Vr дофига, но суммарный Z всё равно получить в плюс и наоборот, что усложняет (на мой дилетанский на данный момент взгляд) задачу.
Благодарность от: Nudnyj |
Род: Nudnyj Sr. Poster Сообщений: 337 |
А-а-а-балдедь, можно оказывается самому себе букетик послать, жаль правда что только один |
Род: N_A - админ Сообщений: 444 ICQ: 191-87-85-92 |
Я не спец ни в математике ни в н.с., да и трудно ориентироваться в чистой «теории» среди параметров 3-х типов не имея представления о предмете обсуждения, а задавать еще много вопросов лениво. Но могу сказать, что не имея хороших базовых знаний по н.с. (и реального опыта применения н.с. в более простых ситуациях) не стоит пытаться заюзать нейросеть. В данном случае я так и не понял насколько можно рассчитывать на непрерывность функции Z(), если она непредсказуемо скачет при незначительном изменении входных параметров, то о нормальной аппроксимации врядли можно вести речь. Нейронные сети не способны аппроксимировать случайные функции. ) Благодарность от: Nudnyj |
Род: Nudnyj Sr. Poster Сообщений: 337 |
Спасибо, приму к сведению. |
Олеся УДАЛЕН Сообщений: 1 |
http://elcomrevue.ru/?p=59 |