Страницы: 1 2 3 >>

Тематика: Очистка данных

Предварительное сжатие входных данных

Здравствуйте,

Предсказания нейронной сети во многом зависят от входных данных (ну или мусора), которые идут на вход.

Классически подаются embedding данные, несколько последних значений time series. Опущу здесь варианты предварительной обработки, как вычисление разницы, нормирование итд

А какие есть наилучшие методы для сжатия размерности (dimensionality reduction) входного временного ряда? Есть массив значений пускай 60 данных погружения, надо их сжать и получить скажем 16 данных, которые хорошо описывают особенности time series. Варианты

1) Кусочная линейная аппроксимация
мы используем нелинейный метод нейронных сетей, а такими входами получается обрезаем нелинейность
2) спектр, преобразование фурье
как показывает опыт, плохо работает
3) вейвлеты
можно взять первые значимые коэффициенты вейвлетного разложения. Но вейвлеты хорошо сглаживают середину ряда, а для прогнозирования требуется адекватно описать правый край данных, здесь вейвлеты не очень
4) многочлены
коэффициенты при высоких степенях оказывают очень сильное влияние на выходной ряд
5) сплайны (?)
6) преобразование в грамматический ряд, например в зависимости от количества стандартных отклонений от среднего
7) Разложение по собственным функциям. Как мне кажется это наиболее правильное преобразование, но здесь непонятно насколько базис будет сохраняться в будущем при работе с нестационарными данными?

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

Ярослав

10-02-2012

Обсуждение: Очистка персональных данных, часть 2

Полезная статья, спасибо!

Хочу только напомнить автору - Александре(!), что пример с таблицей сопряжености случай 20 респондентов, указавших имя Александр и пол - "женский", имеет и иную трактовку - пол верный, а в имени ошибка - пропущена последняя буква, "АлександрА".

MATLAB (графики)

помогите в матлабе написать программу.
надо в одной области сделать 2-ва графика(параболлу и гиперболу)

Иван

08-04-2011

Сжатие размерности для временного ряда?

Здравствуйте! Стоит задача сжать временной ряд, преобразовать его в в данные меньшей размерности. Скажем есть 32 входа, надо получить 8 или 16. Чтобы отброшенные данные содержали шум.

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

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

Есть другой вариант, раскладывать ряд по собственным компонентам, SSA методом (гусеница), пока не пробовал. Но тут собственные вектора берутся непосредственно из участка ряда.

В идеале хочется алгоритм data mining, который на большой истории данных определит основной набор главных векторов, а потом любой кусочек ряда будет раскладывать по этим главным компонентам.

Или какие есть стандартные способы?
Заранее спасибо.

Ярослав

28-08-2010

Прогнозируем погоду на луне?

Ну а если серьезно - если хочется сжать данные и при этом терять точность более-менее равномерно по всей длине участка ряда, а не на концах, то попробуйте нейросети-автоассоциаторы на основе многослойного персептрона или deep beliеf nets.

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

Спасибо Виктор,

Я читал ваши статьи по поводу удаления неинформационных данных, вы советуете оставлять все данные в модели, нейросеть сама разберется.

Я использую нейросетку для прогнозирования, поэтому варианты сжатия данных с помощью нейросети не рассматриваю.

Просто одно дело если я подам на вход 32 последних данных time series (разницу цен), а другое если я сожму последние 128 цен до 32 наиболее важных данных, пускай спектр плюс фазы. Это работает лучше, проверено. Вот я и интересуюсь, какие есть альтернативные методы для выявления наиболее важных трендов и колебаний, отбрасывая неинформативный шум.

Мне особенно важен правый край.

Ярослав

30-08-2010

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

Нейросетями-автоассоциаторами возможно сделать сжатие 128 в 32, а затем - подать эти 32 на вход новой сети. Поэтому, честно говоря, не понял, почему этот вариант Вам неприемлем.
Очевидно (из-за нейросетевой нелинейности), что по сравнению с использованим линейного метода главных компонент (по сравнению с проецированием на несколько самых первых главных компонент) будет или меньше потерь, или можно будет обойтись меньшим числом итоговых переменных при той же точности описания данных. А по сравнению с вейвлетами - ошибка не будет концентироваться на правом краю, а будет достаточно хорошо размазана по всему окну.

Спасибо, почитаю про нейросети-автоассоциаторы...

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

Ярослав

30-08-2010

Еще:
1. Остановка при достижении максимума обобщающих способностей (контроль по кривым обучения). Похоже на ранний останов, но не в произвольный момент, а в "оптимальный".
2. Добавление штрафного (регуляризующего) слагаемого в целевую функцию
3. Перебор нескольких размеров сети, начиная с некоторого минимального. Если обученная сеть чуть увеличенного размера (по сравнению с предыдущими размерами) имеет бОльшую ошибку обобщения, значит, рост размера пошел во вред.
4. Штрафные функции с люфтом (допуском) на точность запоминания
5. Алгоритмы упрощения нейросети (отстрел неинформативных, дублирующих и/или шумовых входов, отстрел излишних нейронов и синапсов в сети).
6. ...
Очевидно, что не все варианты надо в конкретной задаче использовать - обычно при экспериментах быстро понимаешь, что к чему. Ну и многое видно сразу, без отдельных экспериментов (например, разбегание кривых обучения и обобщения начиная с какой-то эпохи обучения сети). Ну и если реализуется п.3 (эксперименты проводятся начиная буквально с линейных сетей), то последующее упрощение найденной сети околооптимального размера тоже касается, в основном, только её входов.

Я увеличил число данных для обучения в два раза, сетка стала немножко лучше обучаться. Потом добавил новых входов, корреляция прогноза вне выборки еще немножко выросла, а ошибка упала. Но похоже это предел, потому что рост корреляции очень маленький:
Было примерно 0.673 стало 0.677
Ошибка вне выборки была скажем 324 стала 322

Ярослав

11-09-2010

Как лучше обучить нейросеть обобщать данные, вне выборки?

Здравствуйте!

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

Мой текущий алгоритм обучает INCREMENTAL, по одному примеру, после обучения всей эпохи я уменьшаю Learning Rate. Процесс обучения продолжается пока learing rate не становится очень маленьким или не начинает расти ошибка на CV множестве. Это даёт неплохой результат, но хочется еще лучше.

После завершения обучения INCREMENTAL я продолжаю обучение с помощью алгоритма iRPROP, он быстро сходится, а потом ошибка начинает расти. iRPROP алгоритм не использую изначально, потому обученная им сетка имеет довольно высокие веса.

Вопросы:
1) Есть ли зависимость именно Обобщения от INCREMENTAL Learning Rate, быть может я использую в конечном итоге очень малый Rate, а оптимальный learning rate фиксирован, скажем 0.1 или 0.01?

2) Какие есть варианты cost function выходного слоя для задачи регрессии? Для задачи классификации Виктор использует некую функцию на основе кросс-энтропии. А что насчет регрессии?

Я правильно понимаю, что cost function мы можем задавать только для выходного слоя?

По-умолчанию это MSE, я пробовал еще меньшую степень, скажем ошибка выходного слоя рассчитывается как
error = predicted - real
if(error > 0)
error = 1.5 * error ^ 0.5
else
error = -1.5 * (-error) ^ 0.5
вроде результат улучшается. Еще варианты?

3) Топология сети, сейчас это обычный перспептон 32:16:1
миллион входных примеров, выходы расположены гауссово примерно от -1 до +1, с выбросами далеко за пределы, скажем плюс 3.

4) До каких пор обучать, мне не нравится CV множество для проверки, да и часть данных для обучения получается теряются

Заранее спасибо.

Ярослав

30-08-2010

>Есть больше миллиона примеров данных для обучения нейросети. Правда часть из этих данных очень похожи друг на друга.

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

>Какие есть варианты cost function выходного слоя для задачи регрессии?

Знаковый, например. Sign-basef cost function. Это когда требуется, чтобы ошибок со знаком "минус" было столько же, сколько ошибок со знаком "плюс".

>Я правильно понимаю, что cost function мы можем задавать только для выходного слоя?

Нет, её можно вешать куда угодно. Два примера.
1. Штрафное слагаемое за ненулевые веса синапсов (в методе Weight decay). Может включать веса любого слоя.
2. Для нейросети-автоассоциатора была предложена ЦФ, максимально "ортогонализующая" выходы нейронов среднего ("узкого" слоя) сети, и при этом ранжирующая эти нейроны так, что первый нейрон выбирает самый большой "разброс" данных, второй - меньшую долю варьирования данных, третий и т.д. - так далее, до самых мелких подробностей. В общем, была сделана попытка воспроизвести свойства статистического метода выделения главных компонент (когда первая ГК выбирает максимум дисперсии данных, а последняя - что от предыдущих останется).

>>Не понимаю я как правильно обучить сетку, обучить 1000 сеток и выбрать лучшую, ну это будет ручная подгонка. Слишком много факторов влияет.

Например, уменьшил число нейронов в скрытом слое, 32:8:1. Но обучал я с малым количеством примеров, 800 000, получилось что с learning rate 0.01 лучше обучилось.

Потом взял сетку 32:16:1 и обучал с таким же learning rate, вне выборки результаты сильно ухудшились.

Но ведь перед этим я прекрасно обучал такую сетку на 2 миллионах примеров. Получается даже оптимальный размер сети зависит от количества примеров для обучения.

А другие факторы это
-Тип активационной функции
-Steepness
-Learning Rate, постоянный/переменный
-cost function
-масштабирование входов и выходов
-размер нейросети и топология

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

Ярослав

04-09-2010

1) Про кластеризацию, я могу разбить данные на кластеры методом k-means. Потом в каждом кластере обучать свою нейросетку для предсказания. Мне кажется что проблемы возникнут на краях кластеров :( когда точка лежит на границе нескольких кластеров.

2) Интересно про нейросети-автоассоциаторы, которые ведут себя как метод главных компонент. Подскажите пожалуйста ссылку, а быть может есть готовые реализации? Спасибо!

3) Остался вопрос, зависит ли Обобщение от Learning Rate? Сейчас обучил три сетки, rate=0.01, rate=0.001, rate=0.0001, но я туда добавляю случайную составляющую и сейчас сходу не видно различий. Плохо обучаются.

4) Есть ли зависимость Обобщения от Steepness, я использую симметричный сигмоид (-1 .. +1). Начиная с какого-то шага обучения я последовательно уменьшаю Steepness (на каждом шаге умножаю на 0.99), это даёт резкое уменьшение ошибки внутри выборки (да и вне тоже). Но после какого-то шага уменьшения Steepness ошибка начинает резво расти

Не понимаю я как правильно обучить сетку, обучить 1000 сеток и выбрать лучшую, ну это будет ручная подгонка. Слишком много факторов влияет.

Гость

04-09-2010

>Интересно про нейросети-автоассоциаторы, которые ведут себя как метод главных компонент.

Тут было:
Takahashi T., Tokunaga R. Energy functions for efficient nonlinear dimensionality reduction by multi layer perceptrons / Proc. Int. Conf. Neural Information Processing, 1998, Vol.1. - pp.494-497.

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

Добрый день! Разыскиваю материалы на темы:
- АНАЛИЗ ДОСТОВЕРНОСТИ ПОКАЗАНИЙ СЧЁТЧИКОВ ЭЛЕКТРОЭНЕРГИИ;
- Обнаружение плохих данных в телеизмерениях;
Интересуют иностранные источники.

Геннадий

12-07-2010

Как реализован процесс расчета корреляции

В процессе работы с программой встала проблема какого-то иного, нежели с помощью Excel, результата расчета корреляции. Обратились к "Руководству анлитика", там есть пример для расчета корреляции. На его данных провели тестирование. Результат: при расчете корреляции в Excel результат с примером сходится только по 2 и 3 товарам, по товару 4 - расхождения. При загрузке данных примера в Deductor, результат отличается от результатов, заявленных а примере по всем товарам. Отсюда вопрос: почему возникает подобная разница???

Иван

24-10-2008

Я наткнулся на подобное расхождение при вычислении АКФ для временного ряда. Странно, что Statistica и SPSS дают одни и те же результаты, но отличные от Deductor. Этот вопрос мы также выяснили с разработчиками. Однако, больше в Deductor по этому поводу я не суюсь, дабы не влезать в дебри - расхождения алгоритмов. Делаю все в других пакетах, гарантирующих классический алгоритм и поэтому правильность выводов в соответствии с известной методикой анализа.

Что касается Deductor, то это очень неплохой пакет для своих задач. Начинать работать с нейросетями, к примеру, с ним проще. Первое знакомство и с другими методами происходит значительно приятнее и понятнее. Но также есть и ряд подводных камней. Не все эти вещи очевидны большинству пользователей. Скажу больше - не все даже понимают описанный алгоритм с переводом в чатсотную область. Однако это непонимание не запрещает на практике вполне успешно и с толком использовать стат. методы, помня о некоторых важных аспектах.

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

В том же Statistica постороение нейросетей реализовано более гибко, но и более запутанно, зато с большими возможностями интерпретации результатов. В Deductor не хватает некоторых штуковин. Например, не совсем понятно, почему условия остановки обучения реализованы только по принципу ИЛИ, хотя очень часто хочется поставить там сразу несколько условий, которые должны быть выполнены одновременно.

Эти и другие вопросы я обсуждал с разработчиками.

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

Очень хочется, чтобы Руководство Аналитика было доработано. Примеры отличные, все вполне доступно, но выглядит это как-то кустарно: нелогичные переходы, проглатывание важных моментов, опечатки, пунктуационные ошибки. Думаю, что это в некотором смысле - "лицо" пакета и фирмы-разработчика.

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

Дмитрий

29-10-2008

Классическая мера линейной корреляции - это произведение одной функции на другую, и нормированная к единице, то есть деленная на некую величину, которая как-то связана с энергиями сравниваемых процессов. Это значение корреляции в одной точке. Но что будет, если процессы коррелируют, но с некоторым временным лагом. То есть максимум, корреляции будет между исходным процессом и сравниваемым, но смещенным по времени. То есть, чтобы это выяснить, надо взять исходный процесс и вычислять его корреляцию с опорным процессом для некоторого множества смещений их друг по отношению другу по времени. То есть, считаем корреляцию для смещения 0, затем для смещения минус тау, плюс тау, минус два тау, плюс два тау и т.д. Если считать в лоб - будет долго. Поэтому оба процесса переводится в частотную область (получаем их спектры), спектры перемножаются и возвращаются во временную область. В результате получаем функцию корреляции двух процессов для всевозможных сдвигов их относительно друг друга. Потом берется максимум этой корреляции, естественно по модулю, и на этом все. Спектры перемножаются и результат возвращается во временную область при помощи обратного преобразования Фурье.

Как оказалось в Excel-е реализован классический алгоритм вычисления линейной корреляции, в Deductor-е же коэффициент корреляции это максимум из возможных коэффициентов корреляции с учетом всевозможных временных лагов. Иногда эти коэффициенты могут совпадать, но чаще всего в Deductor-е рассчитанные коэффициенты корреляции будут отличаться от рассчитанных Exсel-ем в силу различия алгоритмов их расчета.

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

Это все понятно. Вот только имеется еще пару вопросов: механизм расчета корреляции, реализованный в Deductor-е можно использовать только для временных рядов?
Берем набор данных, классическая корреляция которых равна 1. Загоняем их в Deductor, получаем результат отличной от 1. Почему???
Судя по документации в ранних версиях программы была реализована классическая корреляция. А в версии 5.1 уже "модифицированная". Считаете ли Вы подобные вещи нормальной практикой, меняя порядок расчетов показателей без предупреждения???

Иван

24-10-2008

Описанный выше алгоритм, кстати, он называется взаимная корреляция либо cross-corelation использовался в Deductor-е во всех предыдущих версиях и в текущей тоже.
Теперь по поводу изменения работы алгоритмов:
Все ранее (в старых версиях) настроенные сценарии обрабатываются и будут обрабатываться точно также в новых версиях.

Спасибо за оперативный ответ. В Deductor-е в качестве примера для ознакомления с корреляционным анализом приводится массив данных, в котором ищется взаимосвязь между возвратом кредита и различным набором факторов, относящихся к конкретному человеку. Как Вы считаете насколько применима кросс-корреляция для анализа такого типа данных???
При всем при этом Вы не ответили на некоторые предыдущие вопросы. Очень хочется узнать у Вас, есть ли какой-либо набор данных, корреляция которых в Deductor-у равна 1???

Иван

24-10-2008

"...описание используемого алгоритма в прилагаемую документацию, а также дадим возможность использовать и классический алгоритм расчета коэффициентов корреляции...." - это было бы здорово! А то использовать cross-correlation в приложении к анализу анкет на выдачу кредита как-то не комильфо. Смешно может получиться.

Программа замечательная, но без четкого описания по каким алгоритмам она работает (желательно с формулами и ссылками на источники) использовать ее для серьезного анализа не представляется возможным. Если бы это было (строгое описание методик в справке) - купили бы прямо завтра в полном варианте :)

Михаил

24-10-2008

Демо-пример с использованием кросс-корреляции мы изменим. Выберем что-то логически более подходящее. У нас вообще готовится большой сквозной пример, в котором должны быть продемонстрированы в деле большинство (если не все) алгоритмы. Задачи там будут более проработаны с точки зрения бизнеса. В нынешних демо-примерах мы старались просто показать что алгоритм работает, не очень заморачиваясь на логике самого примера.

Спасибо.

Но дело не в сквозном примере. Дело в безопасности использования Дедуктора как инструмента для принятия ответственных решений. А оная безопасность (для нас) может быть достигнута лишь в случае, когда мы можем проверить результаты расчета. А это возможно лишь при условии четкого описания в справке самого метода. Только это позволит осуществить независимую проверку метода на тестовых данных. Без такой проверки использовать Дедуктор в серьезных делах просто небезопасно.

Михаил

27-10-2008

Ну что тут сказать... Используйте более безопасные продукты. Разве это кто-то запрещает?

Странная логика. "Продукт не нравится, потому что какие-то вещи реализованы не так". Ну, да, не так. Мы сказали, что в следующих версиях введем еще один алгоритм расчета (чтобы не было разночтений) и исправим демо-пример. "В связи с этим он небезопасный", ну, для Вас это наверно так. Из этого следует, этот продукт Вам не подходит. Ну что-ж, значит не судьба... Значит он рассчитан на другую аудиторию. Так применяете другие системы. При чем тут далеко идущие выводы о том, что "использовать Дедуктор в серьезных делах просто небезопасно"?

Берите бесплатную открытую программу, типа Weka и проверяйте корректность реализации алгоритма.

Не обижайтесь, пожалуйста. Продукт как раз очень нравится. Замечательная концепция и очень неплохая реализация. Обидно, что не можем использовать без должной документации.

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

Вы же имеете естественно-научное образование? Как бы Вы отнеслись к научной группе, которая бы опубликовала результаты эксперимента, но отказалась бы публиковать схему установки на которой эти результаты получены?

Описание алгоритма собственно не нужно (это ваш код), нужно описание МЕТОДА. Т.е. описание математического аппарата, который использовался. С формулами и желательно ссылками на классические справочники/работы по этой теме. Имея описание метода мы сможем проверить результат используя ДРУГИЕ алгоритмы.

Пример с корреляцией/кросс-корреляцией как раз очень показателен. Была бы формула - обсуждалась бы лишь некорректность примера, но не сам метод.

Михаил

27-10-2008

В догонку:

Речь идет всего лишь о документировании используемых методов на уровне MS Excel.

Можно вызвать справку по функции КОРРЕЛ (CORREL), что бы был понятен уровень о котором идет речь (текстовое описание, формула, пример).

При этом никакие алгоритмы не раскрываются, но все проверяемо :)

Михаил

27-10-2008

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

Спасибо БОЛЬШОЕ! :)

Михаил

27-10-2008

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

Это вы свертку сделали, для корреляции надо спектр(комплексный) одного из сигналовов сделать комплексно-сопряженным

Гость

25-03-2010

Сегментация временного ряда

Добрый день!
Подскажите, пожалуйста, в каком направлении двигаться при решении следующей задачи:
- есть дискретный временной ряд, описывающий некоторый технологический процесс (показания датчика давления);
- есть карта технологических событий (словесное описание событий на объекте, происходящих в определенный момент времени и влияющих на показания датчика давления.
Задача заключается в том, чтобы:
1) автоматически разбить ряд на сегменты
2) сегменты объединить в кластеры
3) каждому кластеру приписать тип того или иного технологического события
4) построить НС для идентификации события, опираясь на временной ряда.

В общих чертах решение пп.2-4 более-менее ясно, а вот с задачей разбиения ряда на сегменты возникли сложности. На текущий момент, проанализировав литературу, думаю о следующих подходах:
1) сегментация на основе АР-модели (авторегрессионное среднее - изменение основных характеристик ряда) см. http://geo.web.ru/Mirrors/ivs/publication/volc_day/2005/art26.pdf
2) теория регулярности сигнала - анализ показателя Гёльдера http://iai.dn.ua/public/JournalAI.../42-52_Vostrov_Polyakova_Lyubchenko.pdf и зарубежные публикации Малла
3) карты Кохонена - Дебок Г., Кохонен Т. Анализ финансовых данных с помощью самоорганизующихся карт.
По первым двум пунктам все достаточно ясно, по третьему - слабо представляю именно алгоритм проведения такой сегментации.

Прошу поделится соображениями по данному вопросу и посоветовать, в какую сторону смотреть.
Спасибо

Алексей

20-11-2009

День добрый!

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

--
С ув. Дмитрий Прокопьев

Dmitry Prokopiev

20-11-2009

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

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

Алексей

20-11-2009

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

Dmitry Prokopiev

20-11-2009

анализ отклонение

у меня есть набор данных:
время;аналитика;сумма

как мне выявить аномальные суммы, допустим которые отклоняются от средней более 30%?

Алексей

17-08-2009

А что, простыми арифметическими операциями такое не посчитать?

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

Вот тут есть парочка сценариев для выявления аномалий: Поиск аномалий с помощью евклидова расстояния - http://www.basegroup.ru/solutions/scripts/details/euclidean_distance/ и Поиск аномалий с помощью правила "сигм" - http://www.basegroup.ru/solutions/scripts/details/mean_square_deviation/

Спасибо за помощь

Алексей

25-08-2009

специфика прогнозирования длинных временных рядов

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

Olesia

02-06-2009

Страницы: 1 2 3 >>

Форум: технологии анализа данных

Обсуждаются темы, связанные с математическим аппаратом и алгоритмами поиска закономерностей, моделирования, прогнозирования, визуализации и т.п. Все, что связано с Data Warehouse, OLAP, Data Mining, Knowledge Discovery in Databases..

Подпишитесь!

Микроблог BaseGroup в Twitter
Блог BaseGroup в Live Journal (ЖЖ)
Почтовая рассылка BaseGroup на Subscribe.ru

Тематика на форуме