Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Определить наиболее влиятельные исходные данные в своде  [new]
love_bach
Member

Откуда:
Сообщений: 560
Дано:
Имеется таблица исходных числовых (целые неотрицательные) данных aij. Столбцы упорядочены
B1B2...BM
A1a11a12...a1M
A2a21a22...a2M
...............
ANaN1aN2...aNM


По ней строится сводная таблица, суммированием по строкам
B1B2...BM
SUMSUM(ai1)SUM(ai2)...SUM(aiM)

которую можно рассматривать как функцию

F:{1, 2,..., M} -> N


Функция F может иметь скачки вверх/вниз, которые на графике функции видно "на глаз" - они "сильно" отличаются от других соседних значений функции.

Требуется:
Для скачков определить исходные данные - подмножество заголовков строк исходной таблицы, - которые внесли в скачек наибольший вклад

Подскажите, пожалуйста, куда копать, какие методы анализа использовать?
7 ноя 19, 13:53    [22011492]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 1838
Скачёк имеет место на одну строку или на несколько строк ("плавный холм")?
7 ноя 19, 13:59    [22011502]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
love_bach
Member

Откуда:
Сообщений: 560
Gennadiy Usov
Скачёк имеет место на одну строку или на несколько строк ("плавный холм")?


на несколько строк
7 ноя 19, 14:02    [22011509]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 1838
А от чего сильно отличается: прямая, кривая, парабола, ....

На первый взгляд нужна аппроксимация значений F.
И сравнение значений F с новой формулой.

Либо искать диапазоны, где разные последовательные разности по знаку +-("производная для F").
Тогда холм.
Чем больше последовательных +-, тем выше холм.
7 ноя 19, 16:23    [22011670]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
love_bach, нарисуй характерный(ые) пример(ы) таблицы(15х15), график и определи типы скачков.
Что такое "скачок"?
одиночный выброс(1 2 3 4 99 5 6 7 8),
ступенька (сигмоидная)
ступенька(пьедестал за 1-3 места в спорте)
треугольник, трапеция
всё это только вверх или м.б. вниз?
если типа ступеньки, то насколько должны отличаться высота(глубина) слева и справа, чтобы признать скачком ?..

А вообще в матане есть всё достаточное:
производная=наклон прямой,
ну,или в принципе типа одномерной EDGE()
ИМХО, "высота скачка" относительна,она зависит от соседних столбов, а не только от одного. Соответственно, одна и та же строка может дать разную долю в разные скачки. И как тогда считать, абсолютный вклад или в % ?
7 ноя 19, 21:47    [22011934]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
love_bach
Member

Откуда:
Сообщений: 560
exp98
love_bach, нарисуй характерный(ые) пример(ы) таблицы(15х15), график и определи типы скачков.
Что такое "скачок"?
одиночный выброс(1 2 3 4 99 5 6 7 8),
ступенька (сигмоидная)
ступенька(пьедестал за 1-3 места в спорте)
треугольник, трапеция
всё это только вверх или м.б. вниз?
если типа ступеньки, то насколько должны отличаться высота(глубина) слева и справа, чтобы признать скачком ?..

А вообще в матане есть всё достаточное:
производная=наклон прямой,
ну,или в принципе типа одномерной EDGE()
ИМХО, "высота скачка" относительна,она зависит от соседних столбов, а не только от одного. Соответственно, одна и та же строка может дать разную долю в разные скачки. И как тогда считать, абсолютный вклад или в % ?


эти все вопросы я себе задавал, хотелось бы на них ответы получить исходя из

love_bach
Функция F может иметь скачки вверх/вниз, которые на графике функции видно "на глаз" - они "сильно" отличаются от других соседних значений функции.



PS
про "производную=наклон" я тоже знаю
8 ноя 19, 09:27    [22012092]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
love_bach, коль скоро вам всё известно, то ответ на единственный вопрос
автор
какие методы анализа
не должен вызывать затруднений.
Уже упомянуто: по типу EDGE - копать в матан, но, похоже, что этот звук прошёл мимо чьих-то ушей. Ещё СКО - копать в обработку временнЫх рядов.
Вместо ТСа я сам приведу пример.

К сообщению приложен файл. Размер - 7Kb
8 ноя 19, 11:49    [22012204]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
Дополнительно спрашиваю: есть понимание того, как определять "соседние" значения ?
как определять "сильно отличается" уже намёкнуто, это не единственные споосбы, может зависеть от происхождения процесса,от потребностей, даже от объёма данных, не говоря уже об их величине в привязке к компу.
8 ноя 19, 11:53    [22012211]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
love_bach
Member

Откуда:
Сообщений: 560
exp98
Дополнительно спрашиваю: есть понимание того, как определять "соседние" значения ?
как определять "сильно отличается" уже намёкнуто, это не единственные споосбы


нет понимания, это является частью задачи
8 ноя 19, 14:29    [22012364]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48628
love_bach
нет понимания, это является частью задачи

Берёшь окно, вычисляешь в нём среднее, определяешь девиацию целевой функции. При превышении этой девиацией некоторого порогового значения, диагностируешь "скачок". После чего определяешь девиации заголовков и считаешь, что в скачок наибольший вклад внесли те, у которых они самые большие. Если скачок на всём пространстве заведомо один, то и окном можно считать всё пространство. Но возможно, его придётся нормализовать по аппроксимирующей функции как уже сказали выше.
8 ноя 19, 15:21    [22012406]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
Dimitry Sibiryakov,
пусть характерный пример выложит, может там и считать нечего. Потому как в моём примере на вопрос "сколько там скачков?" ответов будет столько же как отвечающих. Потому как мне там нужны были необязательно "горбы", а для кого-то там только один (широкий центральный) скачок.

Ктому же для большого кол-ва данных обычно нужна плавающая дисперсия и плавающее среднее. В экономических задачах чаще всего именно так, хотя не обязательно. Для преобразования Ф тоже желательно снять средний тренд, а их столько же видов сколько отвечающих.
Можно вычесть плавающее робастное среднее (желательно смещённое), а ту единственнуо оставшуюся огромную амплитуду назначить скачком (хорошо бы она была выше хотя бы 1 СКО). Да много разных приёмов можно навертеть.
А у ТС наверняка что-то учебное, типа психолого-социологического. И трудно представить сводную таблицу в сотни и тысячи колонок. Бывают, конечно, но и класс задач тогда соответствует. Аздесь ведь Тайна ... А потом он(она) попорсит эллипс рассеяния построить для выбора главных компонент)), тоже метод.

И, да, ТСе лучше уточнить постановку у препа.
А здесь для начала пример, начальные действия, затруднения, если не спешно. Тем более пишет, что "на глаз всё видит, только сказать не может".
8 ноя 19, 17:58    [22012537]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
mayton
Member

Откуда: loopback
Сообщений: 42902
Можно попробовать наложить на строку вейвлетик. Подвигать вправо-влево. Подвигать период. И когда скалярное произведение
даст величину выше порога - зафиксировать амплитуду и период всплеска.

Есть мысль что нейронная с учителем сделает это более ... технично. От пользователя надо просто
вручную указать мышкой "интересные точки". И учебная выборка также должна содержать
ложные ряды где 100% нет интересных точек. Чтобы не было ложных срабатываний и переобучений.
8 ноя 19, 23:13    [22012630]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5341
love_bach,

вторая производная на границе разделения равна нулю
дальше просто объединяешь участки, которые "не сильно отличаются"
9 ноя 19, 00:25    [22012636]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 1838
kealon(Ruslan)
love_bach,
вторая производная на границе разделения равна нулю
дальше просто объединяешь участки, которые "не сильно отличаются"
Ошибка.

У графика x^3 в точке 0 тоже 2-я производная равна 0, а "границы разделения" нет.

Есть что-то другое, может быть для задачи тоже интересное.
9 ноя 19, 07:22    [22012661]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5341
Gennadiy Usov,

в общем то там и есть, 0 как раз делит на два разнородных участка
9 ноя 19, 14:28    [22012755]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
mayton
Member

Откуда: loopback
Сообщений: 42902
love_bach, а есть живые тестовые данные?
9 ноя 19, 22:05    [22012874]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
mayton, тухляк. Аналогично недавнему "контуру". Уверен, там что-нить типа 50 товарных групп, либо 20 филиалов, либо 12 месяцев. Ничего по-настоящему прецезионного, можно и отсебятину, +- сотню млн $.

Безотносительно ко всему предыдущему, рецепт для желающих:
Откуда взять данные, чтоб прочувствовать ситуации?
-Берём боле-мене контрастныое фото.
- Суммируем (в сером цвете либо одну координату) каждый столб(строку).
-Полученный массив нормируем до вменяемо небольших значений.
-Смотрим график, вибираем на нём интересный участок.
-Тренируемся.
К слову, график выше так примерно и сделан.

-Предварительно, договариваемся, что точки независимы, выбираем вариант направления обработки в одну сторону либо индифферентно 2-сторонний (т.к. влияний из будущего для времени не д.б.).
11 ноя 19, 22:50    [22013989]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
mayton
Member

Откуда: loopback
Сообщений: 42902
Во времена модемных интернетов я заинтересовался как восстановить повреждённые картинки JPG.
У них обычно один фрейм (кубик 8х8) очень резко менял цвет и как-то выпадал из общего фона.

Тогда придумал тот-же анализ Фурье соседних кубиков. С каким-то усреднением.
14 ноя 19, 18:02    [22016489]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
Между прочим, если речь только о заметном изменении оттенка (не столько об интенсивности), то можно было попробовать пронумеровать оттенки ~30(или меньше)=3*10 низкой интенсивности, средней и высокой. Там, где номер делает скачок .... и никаких заморочек с Ф.
Только для лучшей линейности в индексах ргб нужно переводить в более равномерную сетку спец. нелинейным преобразованием. Я делал такой перевод на топокартах 256ргб. Без этого всё было плохо.
14 ноя 19, 20:30    [22016601]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
mayton
Member

Откуда: loopback
Сообщений: 42902
Там надо не скачок считать а угол поворота в полярных координатах. Потому как на краях
красный и синий заворачиваются в фиолетовый.

Картинка с другого сайта.
14 ноя 19, 22:16    [22016637]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
Ну, не скажу наверняка. Имел ввиду, что соседние регионы, их средние (по твоим словам) не сильно отличаются, а один выделяется по тону. Вот по среднему притянуть к индексу (вроде постеризации). Близкие регионы будут с одним индексом, а этот с другим. Про скачок плохо сказал, надо попробовать, не умозрительно как я.
15 ноя 19, 13:22    [22017118]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
Если дашь пример с плохим регионом, я попробую. А то ведь я не знаю, насколько он должен выделяться.
А мне не говори, пусть загадкой будет.Только пусть честные 8х8, т.е. не смещённые, иначе метод не сработает скорее всего.
15 ноя 19, 13:34    [22017132]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
mayton
Member

Откуда: loopback
Сообщений: 42902
ОК. Я поищу. Пока нахожу такой артефакт что вся картинка после битого фрейма как-бы сдвинулась вправо или влево
и окрасилась во все цвета радуги.

Тот артефакт единичного квадратика не могу найти.
15 ноя 19, 15:35    [22017387]     Ответить | Цитировать Сообщить модератору
 Re: Определить наиболее влиятельные исходные данные в своде  [new]
exp98
Member

Откуда:
Сообщений: 1847
А мож он просто по периметру контрастировал, вот и показалось, что цвет не тот. Например поворт на 90.
15 ноя 19, 18:11    [22017659]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить