Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как по данным и результатам узнать формулу 
:(
    Опции темы
kulibinka
Дата 16.3.2007, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Есть объекты.
Есть информация о параметрах каждого объекта в виде строчки "ai1     ai2    ...ain"

Так в общем виде выглядит вся информация о наших объектах:
a11    a12    a13    ... a1n
a21    a22    a23    ... a2n
a31    a32    a33    ... a3n
...
ak1    ak2    ak3    ... akn

, где аij - конкретное число.

Есть некоторая формула, которая на вход получает информацию о всех объектах, и потом сортирует эти объекты.
Есть практически неограниченное количество данных вида: реальные цифры - как их рассортировала наша формула.

Все, больше ничего нет smile

Подскажите пожалуйста следующее: 
    1. как узнать какие именно из параметров важнее других и насколько
    2. как узнать что это за формула

Это сообщение отредактировал(а) kulibinka - 16.3.2007, 04:05
PM MAIL   Вверх
Bitter
Дата 16.3.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



типичная задача "черный ящик".
Существуют следующие методы, описания которых в тернете полно:

1. Генетические алгоритмы (ГА). Или их подвид Селективные алгоритмы. Решение в кратце такое: выбирается полином, запукается указанный алгоритм, и он подбирает коэфициенты полинома так, чтобы результат совпал с Вами указанным. Этот полином и есть искомая функция.

2. Нейросети. Обучив нейросеть на таких данных, как Вы представили, в дальнейшем она будет сортировать любые другие наборы данных. Однако, функцию в явном виде Вы не получите.

3. МНК или МНВК - методы для восстановления функций по некоторым данным.
4. Интерполяция

Вообще надо Вам почитать теорию систем и системного управления. И методы параметрической идентификации.

Это сообщение отредактировал(а) Bitter - 16.3.2007, 20:22
PM MAIL ICQ Skype   Вверх
kulibinka
Дата 16.3.2007, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Спасибо, теперь вижу что задача имеет решение.

Цитата

Вообще надо Вам почитать теорию систем и системного управления. И методы параметрической идентификации.



Много методов это хорошо smile
Но для моей конкретной задачи
1. какой из вариантов проще всего в реализации?
2. Не подскажете конкретную литературу по этому варианту? Или никакой особо избранной литературы нет, и просто спросить у гугля?

Это сообщение отредактировал(а) kulibinka - 16.3.2007, 21:46
PM MAIL   Вверх
Bitter
Дата 17.3.2007, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



Цитата

для моей конкретной задачи


То, что Вы описали не конкреная задача, а общая постановка задачи черного ящика. По этому какой вариант больше подходит решать Вам. Могу лишь привести несколько ссылок:

1. ГА - http://algolist.manual.ru/ai/ga/index.php

2. Нейросети - http://algolist.manual.ru/ai/neuro/index.php

3. Метод наименьших квадратов (МНК) - http://iglin.exponenta.ru/All/ContData/lsqm.html

4. Интерполяция - 
    http://matlab.exponenta.ru/spline/book1/10.php
    http://www.tspu.tula.ru/ivt/old_site/umr/chislmet/lab7.htm
PM MAIL ICQ Skype   Вверх
kulibinka
Дата 17.3.2007, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Спасибо большое за объяснения, пошел разбираться.
PM MAIL   Вверх
esperant0
Дата 17.3.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Помоему задача не имеет решения в общем случае.


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
SoWa
Дата 17.3.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



В общем нет- так как ни один из приведенных методов не дает 100% результат для всех случаев, а дает для конкретного.

А вот определить, какие данные важнее- это вам помогут приведенные выше алгоритмы.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
_Y_
Дата 19.3.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Мне кажется, что в данной ветке не было произнесено (хотя подразумевалось) нескольких важных вещей:
  • Истинную формулу (т.е. формулу, соответствующую физическому закону, определяющему полученные величины) получить невозможно. Точнее - можно наткнуться на нее случайно, но ничто не укажет, что получена именно она.
  • Получена может быть только формула наиболее точно аппроксимируящая данные.
  • Если задачу можно переформулировать из получить формулу из "ниоткуда" в выбрать формулу из заранее предложенных вариантов, то тут уже можно вполне достоверно говорить о нахождении истинной формулы. Число вариантов формулы в начальном списке может быть очень большое, при условии, что и данных очень много.
  • Метод "в обход": получить формулу "из ниоткуда", а потом придумать для нее физический смысл smile




--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
esperant0
Дата 19.3.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(_Y_ @ 19.3.2007,  14:09)
 
[*]Получена может быть только формула наиболее точно аппроксимируящая данные.
 

Почему только? Можно получить формулу не точно апроксимирующую данные. Потом для того чтобы говорить о точности надо задавать метрику.

Это сообщение отредактировал(а) esperant0 - 19.3.2007, 14:21


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
sergejzr
Дата 19.3.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Формула будет чтото вроде:

SUM(@1*a1+@2*a2+...@n*an)

Цитата(esperant0 @  17.3.2007,  18:51 Найти цитируемый пост)
Помоему задача не имеет решения в общем случае. 

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


Необходимо найти коеффициенты @1..@n (которые по условийу задачи одинаковы, потому что и представляют собой "важность" параметра)

Остальное - дело техники. сортируем N обьектов, выписываем матрицу.

@1*ai1|@2*ai2|...|@n*ain| 0
@1*a(i+1)1|@2*ai(i+1)2|...|@n*a(i+1)n| 1
:
:
@1*a(i+N)1|@2*a(i+N)2|...|@n*a(i+N)n| N

N должно быть N>= n

Упрощаем матрицу в треугольник Гауссом и находим коеффициенты @1..@n

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

Для оптимизации надо возможно специально подбирать обьекты со спец. @

Кстати, почему бы нам не просортировать такие обьекты:

0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
1 0 0 0 0

Узнаем важность каждого коеффициента smile

ПС:
Это я всё так .. набросал думать Вам smile




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 19.3.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Продолжение.. smile

Итак, начинаем с identity matrix I (Это у которой еденицы по диагонали)

Сортируем наши обьекты. Берём самый маленький обьект O0 и увеличиваем его коеффициент с шагом ß до тех пор, пока функция не отсортирует его лучше, обьекта О1. На самом деле идеальным будет найти коеффициент, который приравняет О1 к к О0 Проверить равенство можно запустив эти два обьекта в сортировку в разном порядке. Если на выходе порядок сохранился,  - обьекты равны. 

Всё это проделать с каждым обьектом, пока они все не будут равны.

Таким образом найдём абсолютно точные коеффициенты @ и абсолютно точную функцию сортировки smile

Для определения шага существует куча алгов. Так как тут имеем дело с линеарной разницей коеффоф, подойдёт метод половинок. То есть каждый шаг увеличиваем в два раза, пока порядок сортировки остаётся прежним. А как только он поменяется, берём середину разницы между последним и предпоследним и прибавляем её к предпоследнему.




Цитата(sergejzr @  19.3.2007,  13:43 Найти цитируемый пост)
Цитата(esperant0 @  17.3.2007,  18:51 Найти цитируемый пост)
Помоему задача не имеет решения в общем случае. 

Имхо, если принять "важность" параметров за константы, можно кое что попробовать..


Ну впринципе, надежды оправдались smile
Если в условии задачи коефы целые числа, то проблема решается со 100%. Если дробные - как повезёт, но можно максинально приблизится к 100%.



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Earnest
Дата 19.3.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



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



--------------------
...
PM   Вверх
VictorTsaregorodtsev
Дата 20.3.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.7.2006

Репутация: 3
Всего: 8



Цитата(Bitter @  16.3.2007,  20:20 Найти цитируемый пост)
Нейросети. Обучив нейросеть на таких данных, как Вы представили, в дальнейшем она будет сортировать любые другие наборы данных. Однако, функцию в явном виде Вы не получите

Получим smile Какие проблемы записать нейросетку в виде набора формул? А еще любой приличный нейропакет позволяет по обученной сети сгенерировать код на языке программирования (на том же С, к примеру), который будет реализовывать эту НС и позволит вставить её в программу пользователя - это та же самая запись функции в явном виде, только уже переведенная с языка математики на язык программирования.

Цитата(_Y_ @  19.3.2007,  14:09 Найти цитируемый пост)
Истинную формулу (т.е. формулу, соответствующую физическому закону, определяющему полученные величины) получить невозможно. Точнее - можно наткнуться на нее случайно, но ничто не укажет, что получена именно она.

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

sergejzr, +1. Методы планирования эксперимента рулят. А одновременное изменение переменных (при сохранении ортогональности плана, т.е. эталонных векторов), позволит поймать полиномиальные взаимодействия переменных вида xi*xj, xi*xj*xk в сортирующей функции.
PM MAIL WWW   Вверх
esperant0
Дата 20.3.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(VictorTsaregorodtsev @ 20.3.2007,  10:45)
  - и получим некоторую вероятностную оценку ошибки  

Можно по подробней? Что такое накоторая вероятностная оценка. А главное на каком вероятностном пространстве вы собираетесь ее задавать?


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
VictorTsaregorodtsev
Дата 21.3.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.7.2006

Репутация: 3
Всего: 8



Цитата(esperant0 @  20.3.2007,  17:00 Найти цитируемый пост)
Что такое накоторая вероятностная оценка

Имелись в виду статистики ошибок предсказания - средний модуль ошибки, максимум модуля ошибки, дисперсия, изучение сходимости ошибки при росте размера выборки и т.д.
Вероятностные - в том плане, что если Монте-карла говорит, что на большой куче испытаний какая-то статистика не принимает значений выше или ниже какого-то уровня, то значит такую величину погрешности можно считать за достоверную границу точности сверху или снизу (и решать вопрос о приемлемости такой точности предсказания для дальнейшей работы)
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1865 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.