ИНТЕРАКТИВНОЕ ПРЕДСКАЗАНИЕ В РЕАЛЬНОМ ВРЕМЕНИ
INTERACTIVE PREDICTION IN REAL TIME

УРОВЕНЬ ТЕХНИКИ
[0001] Компьютеры и вычислительные системы повлияли практически на каждый аспект современной жизни. Компьютеры, как правило, используются в работе, отдыхе, здравоохранении, транспортировке, развлечении, ведении домашнего хозяйства и т. д.
[0002] Прогнозирование данных относится к компьютеризованным способам, которые анализируют прошлые точки данных набора данных и пытаются предсказать значения будущих точек данных для того же самого набора данных. Например, система может исследовать набор данных, имеющий точки данных для хронологической цены бензина. На основе хронологических точек данных алгоритмы могут пытаться предсказать будущую цену бензина.
[0003] Прогнозирование данных обычно требует ручного, сложного процесса подготовки хронологических данных, определения обучения и испытания системы, определения целей прогноза и в большинстве случаев точного выбора одной или нескольких конфигураций алгоритмов и параметров прогноза. Операция прогноза предполагает, что хронологические данные хорошо подготовлены к употреблению алгоритмами прогноза, включая формат данных и полноту.
[0004] Статистический анализ прогнозирования данных может быть усовершенствован путем исследования связанных наборов данных. Например, более точное предсказание цен на бензин может иметь возможность генерироваться, когда алгоритм прогнозирования имеет доступ к другим связанным наборам данных. Например, хронологическая средняя температура может коррелироваться с хронологической ценой бензина. Таким образом, более хорошее предсказание будущей цены бензина может быть получено посредством использования обеих из хронологической цены бензина и хронологической средней температуры. Хронологические данные связанного набора данных отдельно обычно не используются для предсказывания целевого набора данных. В действительности, используются также будущие данные для связанного набора данных. Системы могут анализировать, как связанный набор данных коррелируется с целевым набором данных в прошлом, и, предполагая ту же самую корреляцию в будущем, системы могут использовать будущие данные связанного набора данных для регулирования прогноза целевого набора данных.
[0005] В некоторых случаях пользователь может знать или планировать будущие данные связанного набора данных. Например, компания может планировать бюджет для рекламы или торговых агентов. Или в примере с погодой может быть использован метеорологический прогноз. В других случаях, когда нет будущих данных для связанного набора данных, системы могут сначала предсказывать фактор и затем использовать его в прогнозе целевого набора данных.
[0006] Однако может быть сложно определить, какие другие наборы данных должны быть использованы для улучшения точности прогнозирования. Действительно, в современном прогнозировании выбор коррелирующих наборов данных не является просто ручным процессом, а является ручным процессом, который обычно ограничен маленькой группой так называемых "экспертов", которые обладают знанием о том, какие дополнительные наборы данных должны быть использованы для улучшения прогнозирования. Таким образом, это дает в результате анализы, которые ограничены человеческими возможностями, очень затратны и отнимают существенное время на выполнение.
[0007] Изобретение, заявляемое здесь, не ограничивается вариантами осуществления, которые решают любые недостатки или которые оперируют только в таких средах, как описанные выше. В действительности этот уровень техники обеспечен только для иллюстрации одной примерной области технологии, где некоторые варианты осуществления, описанные здесь, могут осуществляться на практике.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0008] Один вариант осуществления, иллюстрируемый здесь, включает в себя способ, который может осуществляться на практике в вычислительной среде. Способ включает в себя действия для обеспечения предсказательных данных, предсказывающих значения данных для хронологического набора данных. Предсказательные данные предсказывают либо будущие значения для хронологического набора данных, либо прошлые значения для хронологического набора данных. Способ дополнительно способствует улучшению точности предсказательных данных путем идентификации для пользователя и обеспечения возможности пользователю выбирать вспомогательные наборы данных, которые могут быть оценены с использованием предсказательной оценки, вместе с хронологическим набором данных для улучшения точности предсказательных данных. Способ включает в себя обеспечение пользовательского интерфейса пользователю. Пользовательский интерфейс идентифицирует один или несколько вспомогательных наборов данных. Вспомогательные наборы данных идентифицируются для пользователя на основе вспомогательных наборов данных, удовлетворяющих пороговому условию для хронологического набора данных. Вспомогательные наборы данных выбираются пользователем в пользовательском интерфейсе. Способ дополнительно включает в себя прием ввода пользователя в пользовательском интерфейсе с выбором одного или нескольких из вспомогательных наборов данных. Способ дополнительно включает в себя отображение предсказательного набора данных пользователю. Предсказательный набор данных предсказывает либо будущие значения данных, либо прошлые значения данных для хронологического набора данных. Предсказательный набор данных определяется путем предсказательной оценки хронологического набора данных и одного или нескольких выбранных вспомогательных наборов данных.
[0009] Это краткое описание сущности изобретения обеспечено для представления выбора концепций в упрощенной форме, которые дополнительно описываются ниже в подробном описании. Это краткое описание сущности изобретения не предназначено для идентификации ключевых признаков или существенных признаков заявляемого изобретения, как не предназначено и для использования в качестве помощи в определении объема заявляемого изобретения.
[0010] Дополнительные признаки и преимущества будут изложены в описании, которое следует далее, и частично будут очевидны из описания или могут быть поняты путем применения на практике идей, описанных здесь. Признаки и преимущества изобретения могут быть осуществлены и получены посредством инструментов и комбинаций, в частности указанных в прилагаемой формуле изобретения. Признаки настоящего изобретения станут более очевидны из последующего описания и прилагаемой формулы изобретения или могут быть поняты путем применения на практике изобретения, изложенного далее.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011] Для того, чтобы описать метод, которым вышеперечисленные и другие преимущества и признаки могут быть получены, более конкретное описание изобретения, кратко описанного выше, будет предоставлено посредством ссылки на конкретные варианты осуществления, которые иллюстрируются на приложенных чертежах. С пониманием, что эти чертежи изображают только типичные варианты осуществления и, таким образом, не должны рассматриваться как ограничивающие объем изобретения, варианты осуществления будут описаны и объяснены с дополнительный конкретикой и подробностями посредством использования сопроводительных чертежей, на которых:
[0012] фиг.1 изображает систему для обеспечения предсказательных данных;
[0013] фиг.2 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0014] фиг.3 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0015] фиг.4 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0016] фиг.5 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0017] фиг.6 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0018] фиг.7 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0019] фиг.8 иллюстрирует a снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0020] фиг.9 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0021] фиг.10 изображает снимок экрана пользовательского интерфейса, используемого в системе предсказания данных;
[0022] фиг.11 изображает способ обеспечения предсказанных данных; и
[0023] фиг.12 изображает способ обеспечения предсказанных данных.
ПОДРОБНОЕ ОПИСАНИЕ
[0024] Варианты осуществления здесь могут иметь различные признаки для содействия предсказанию данных. Предсказание данных, используемое здесь, относится к предсказыванию значений данных. Предсказывание значений данных может выполняться перспективным образом для предсказания будущих результатов (т. е. прогнозирования) или может выполняться ретроспективным образом для предсказания прошлых результатов (т. е. ретроспективного прогнозирования).
[0025] Некоторые варианты осуществления здесь могут осуществлять систему интерактивного предсказания данных в реальном времени. Например, пользователь может регулировать различные параметры, такие как хронологические точки данных, период предсказания, определяющий, насколько далеко в будущее (или в прошлое) прогноз (или ретроспективный прогноз) должен выполняться, сезонность, определяющую циклические эффекты, которые могут влиять на предсказание, то, какие вспомогательные наборы данных используются для оценки набора данных, и т. д. Система может использовать ввод пользователя и автоматически в реальном времени предсказывать будущие или прошлые данные.
[0026] Система может в качестве дополнения или альтернативы включать в себя функциональные возможности для автоматической подготовки наборов данных для анализа. Например, варианты осуществления могут добавлять недостающие точки данных к набору данных, исправлять искаженные данные и другим образом автоматически готовить наборы данных для предсказательного анализа.
[0027] Система может в качестве дополнения или альтернативы включать в себя функциональные возможности для автоматического выбора некоторых параметров предсказания. Например, часто существует некоторое количество различных алгоритмов предсказания, которые могут быть выбраны для выполнения функциональных возможностей предсказания. Варианты осуществления могут быть сконфигурированы для идентификации конкретного алгоритма из набора алгоритмов и применения набора данных к выбранному алгоритму. В альтернативном или дополнительном примере система может быть сконфигурирована для автоматического выбора сезонности. В еще одном примере вариант осуществления может автоматически выбирать вспомогательные наборы данных, которые должны быть использованы для детализации предсказания для заданного набора данных. Варианты осуществления могут обеспечивать возможность для регулирований над вспомогательными наборами данных. Регулирования могут быть ситуативными одноразовыми регулированиями. В качестве альтернативы или дополнения регулирования могут делаться с использованием политик. Например, политики могут быть выбраны из предварительно определенного набора или определяться заново. Например, политики могут включать в себя политики дополнения данных, политики заполнения нулями, политики линейной интерполяции, политики на основе календаря и т. д. В частности, варианты осуществления могут обеспечивать возможность пользователю замещать автоматические выборы на основе политик.
[0028] Система может в качестве альтернативы или дополнения включать в себя функциональные возможности для предложения вспомогательных наборов данных, которые могут быть использованы в оценке заданного набора данных. Пользователь может затем выбирать один или несколько предложенных вспомогательных наборов данных, чтобы наблюдать, как оценка набора данных в контексте одного или нескольких вспомогательных наборов данных влияет на оцениваемый набор данных. Вспомогательные наборы данных могут быть определены системой на основе одного или нескольких условий. Например, вспомогательный набор данных может быть идентифицирован системой на основе уровня корреляции между вспомогательным набором данных и подчиненным набором данных. В некоторых вариантах осуществления дополнительные вспомогательные наборы данных могут быть идентифицированы на основе дополнительных вспомогательных наборов данных, имеющих высокий уровень корреляции с уже идентифицированным вспомогательным набором данных. В некоторых вариантах осуществления дополнительные вспомогательные наборы данных могут продолжать идентифицироваться по мере того, как происходят надлежащие условия.
[0029] Теперь со ссылками на фиг.1 иллюстрируется система 100 предсказания данных. Система 100 предсказания данных включает в себя дисплей 102, сконфигурированный для отображения данных в наборах данных. В иллюстрируемом примере показан дисплей 102, отображающий графические представления точек данных. Дисплей 102 соединен с обрабатывающей системой 104. Некоторые варианты осуществления могут осуществляться, когда все из компонентов, изображенных на фиг.1, включаются в одну систему. Например, компоненты могут быть включены в программу динамических таблиц, такую как Excel, доступную от Microsoft Corporation Редмонд, штат Вашингтон.
[0030] Обрабатывающая система 104 может осуществляться, например, путем конфигурирования компьютерной системы в специализированную вычислительную систему, сконфигурированную для осуществления доступа к наборам данных и оперирующую над наборами данных для генерирования предсказанных данных. В некоторых вариантах осуществления это может осуществляться путем добавления признаков прогнозирования в различные компьютерные программы. Например, в некоторых вариантах осуществления функциональные возможности предсказания могут осуществляться в качестве интерактивного признака в средстве Power View, осуществляемом в составе программных средств динамических таблиц Excel, доступных от Microsoft Corporation Редмонд, штат Вашингтон. Функциональные возможности предсказания могут осуществляться вместе для усовершенствования существующих моделей данных и/или существующих отчетов. Обрабатывающая система 104 может быть сконфигурирована, чтобы осуществлять доступ к данным, форматировать данные, генерировать новые данные и управлять дисплеем 102 для отображения различных представлений данных. В некоторых вариантах осуществления обрабатывающая система может осуществляться в виде так называемого "облачного сервиса".
[0031] Обрабатывающая система 104 может быть сконфигурирована для осуществления пользовательского интерфейса 106 с использованием дисплея 102 и различных периферийных устройств, таких как клавиатуры, мышь, сенсорные экраны, датчики движения, камеры и т. д. Это может обеспечивать возможность пользователю взаимодействовать с данными или управляющими элементами, отображаемыми на дисплее 102, которые могут затем приниматься в расчет при выполнении операций предсказания.
[0032] Фиг.1 дополнительно иллюстрирует базу 108 данных. База данных соединена с обрабатывающей системой 104, и в действительности во многих случаях является неотъемлемой частью обрабатывающей системы 104. В качестве альтернативы, иллюстрируемая база 108 данных может представлять собой несколько баз данных, некоторые из которых могут быть локальными для обрабатывающей системы 104 и некоторые из которых могут быть более удаленными от обрабатывающей системы 104. База данных может иметь различные локальные, удаленные и/или распределенные формы. База 104 данных, как будет рассмотрено подробно ниже, включает в себя различные наборы данных. В частности, база данных включает в себя различные наборы данных, для которых операции предсказания будут выполняться (как представлено набором 110 данных). База данных также включает в себя различные вспомогательные наборы данных (иллюстрируемые на 112), которые могут быть использованы для усовершенствования алгоритмов предсказания, применяемых к набору 110 данных при анализе.
[0033] Таким образом, обрабатывающая система 104 может осуществлять доступ к набору 110 данных. Обрабатывающая система 104 может побуждать представление набора 110 данных для отображения на дисплее 102 вместе с различными элементами пользовательского интерфейса. Пользователь может взаимодействовать с представлением набора 110 данных путем взаимодействия с пользовательским интерфейсом 106. Например, пользователь может вручную регулировать существующие точки данных, устанавливать сезонность (т. е. ожидаемые циклические факторы) для предсказания, выбирать один или несколько вспомогательных наборов данных из наборов 112 данных, которые должны быть использованы в процессе предсказания, применяемом к набору 110 данных, и т.д. Алгоритмы предсказания могут затем осуществляться обрабатывающей системой 104, принимая в расчет ввод пользователя для обеспечения предсказания, такого как прогноз или ретроспективный прогноз данных.
[0034] Теперь со ссылками на фиг.2-10 иллюстрируется несколько снимков экрана для иллюстрации впечатлений пользователя и функциональных возможностей различных вариантов осуществления.
[0035] Фиг.2 изображает графическое представление 200 набора данных (например, набора 110 данных), отображаемого на дисплее 102 (см. фиг.1), фиксирующего смерти в автомобильных авариях в Соединенных штатах. Набор данных включает в себя данные вплоть до февраля 2013 г. Может существовать потребность прогнозировать смертельные случаи, которые будут происходить в будущем после февраля 2013 г. В иллюстрируемом примере пользовательский интерфейс 106 обеспечивает возможность пользователю взаимодействовать с графическим представлением 200 или с различными другими элементами управления и установками, доступными в пользовательском интерфейсе 106. Фиг.2 изображает манипулятор 202 прогноза. Манипулятор 202 прогноза может быть выбран пользователем и может быть вытянут пользователем до точки, до которой желателен прогноз. Например, фиг.3 изображает период 204 времени предсказания, созданный путем перетаскивания манипулятора 202 в местоположение желаемой даты. Надлежащие данные 206 прогноза затем создаются обрабатывающей системой 106 с использованием надлежащего алгоритма прогнозирования. Таким образом, операция прогноза может быть легко осуществлена путем форматирования существующего отчета.
[0036] Теперь со ссылками на фиг.4 иллюстрируются различные опции с возможностью выбора пользователя. В частности, пользователю могут быть представлены различные опции, и он может иметь возможность выбирать различные варианты для управления тем, как предсказанные данные генерируется и/или как о них осуществляется отчет. Например, как иллюстрируется на 208, пользователь может иметь возможность выбирать диапазон данных, используемый для предсказания данных. В частности, пользователь выбирает даты, которые желательны, для использования в качестве входных данных для алгоритма предсказания данных.
[0037] Как иллюстрируется на 210, пользователь может выбирать конкретный метод предсказания данных. В иллюстрируемом примере пользователю представляется метод линейной регрессии или метод наилучшей подгонки.
[0038] Как иллюстрируется на 212, пользователь может выбирать сезонность. Сезонность определяет циклическую природу набора данных. Например, для данных продаж ожидается, что существует ежегодная сезонность, поскольку существуют конкретные времена года, когда конкретные товары или услуги более (или менее) часто потребляются. В иллюстрируемом примере сезонность может быть выбрана бегунком, который может обеспечивать возможность пользователю выбирать варианты, такие как по часам, по дням, по неделям, по месяцам, по кварталам, по годам или по некоторому другому надлежащему периоду.
[0039] Как иллюстрируется на 214, обрабатывающая система 104 может представлять пользователю различные предлагаемые факторы прогноза. Факторами прогноза являются вспомогательные наборы 112 данных, которые могут быть полезны для детализации предсказания для заданного набора 110 данных. В частности, вспомогательные наборы данных могут быть использованы в алгоритме предсказания в качестве входных данных, которые помогают детализации предсказания. Факторами прогноза могут быть наборы данных, которые связаны некоторым показателем корреляции с базовым набором данных или иным образом относятся к базовому набору данных. Например, вспомогательный набор данных может иметь данные, которые изменяются подобно базовому набору 110 данных. Чем ближе вспомогательный набор данных следует за базовым набором данных, тем более коррелирован вспомогательный набор данных с базовым набором данных. Например, как иллюстрируется на фиг.4, вспомогательный набор данных, включающий в себя данные, касающиеся процента безработных, имеет корреляцию с базовым набором данных 67% для смертей в автомобильных авариях в Соединенных штатах. Набор данных, имеющий данные, касающиеся количества миль, пройденных транспортным средством, имеет корреляцию с базовым набором данных 56%. Набор данных, имеющий данные, касающиеся цен на бензин в долларах за галлон, имеет корреляцию с базовым набором данных 10%. Таким образом, пользователь может выбрать один или несколько из факторов прогноза (т. е. вспомогательных наборов данных) для оценки вместе с базовыми данными для детализации любых предсказаний.
[0040] Фиг.4 дополнительно иллюстрирует на 216, что варианты осуществления могут обеспечивать возможность пользователям выбирать, показываются ли предсказанные данные в пределах некоторого количества среднеквадратических отклонений или нет. Если пользователь делает выбор отображать предсказанные данные со среднеквадратическими отклонениями, будет показана огибающая возможных предсказанных точек данных. Различные другие метрики качества прогнозирования могут быть использованы в качестве альтернативы или дополнения. Например, некоторые варианты осуществления могут отображать огибающую, показывающую метрику средней абсолютной масштабированной ошибки или некоторой другой ошибки.
[0041] Варианты осуществления могут быть сконфигурированы для автоматизации некоторого количества различных аспектов. Например, варианты осуществления могут предлагать и/или автоматически устанавливать надлежащий диапазон дат, метод предсказания, сезонность, вспомогательные наборы данных факторов, среднеквадратические отклонения и т. д. Пользователь может переопределять эти установки или может переопределять фактические точки данных в наборе 110 данных.
[0042] Ссылка направлена на фиг.5, которая иллюстрирует такие функциональные возможности. Например, фиг.5 изображает точку 218, где пользователь выбрал точку данных и перетащил точку данных в новое местоположение для создания гипотетических данных. В частности, исходные данные из набора 110 данных продолжают отображаться вместе с гипотетическими данными. Однако данные 206 прогноза основаны на любых гипотетических данных вместе с другими данными из набора 110 данных, которые не были изменены.
[0043] Существует несколько способов, которыми гипотетические данные могут добавляться. Например, пользовательский интерфейс 106 может просто обеспечивать возможность пользователю "захватывать" точку данных (или набор точек данных) и перемещать точку данных (или набор точек данных). В иллюстрируемом примере близкие данные на графике регулируются в операции подбора линейного сглаживания для создания гипотетической части графика. В альтернативном варианте осуществления точка может быть выбрана так, как иллюстрируется на 220. Варианты осуществления могут включать в себя элементы пользовательского интерфейса, такие как всплывающее окно 222, которое изображает информацию о выбранной точке. В качестве дополнения или альтернативы, варианты осуществления могут включать в себя элемент пользовательского интерфейса для редактирования, такой как иллюстрируется на 224. Элемент пользовательского интерфейса для редактирования обеспечивает возможность пользователю вручную вводить конкретное значение для точки 220. Когда пользователь вводит новое значение в элемент 224 пользовательского интерфейса для редактирования, точка будет регулироваться на графике, и надлежащий подбор линии или кривой будет выполняться для гипотетической точки. Однако фактические хронологические данные также удерживаются и необязательно отображаются вместе с гипотетическими данными.
[0044] В частности, варианты осуществления могут удерживать одновременно фактические хронологические данные вместе с гипотетическими данными. Таким образом, пользователь может манипулировать данными из набора 110 данных в режиме "песочницы", что обеспечивает возможность исходным хронологическим данным удерживаться, в то время как пользователь может выполнять различные операции "а что, если", чтобы посмотреть на эффекты, оказываемые на предсказанные данные, когда гипотетические данные применяются.
[0045] Варианты осуществления могут повышать качество прогноза путем принятия в расчет множества факторов. Как отмечено выше, факторы (такие как вспомогательные наборы 112 данных) должны быть приняты в расчет при выполнении предсказания данных.
[0046] При использовании внешних факторов, таких как вспомогательные наборы данных, для усовершенствования алгоритмов предсказания, существует несколько факторов, которые может быть необходимо учесть. Во-первых, надлежащие факторы должны быть идентифицированы. Во-вторых, факторы должны быть форматированы таким образом, чтобы эти факторы могли быть должным образом применены к алгоритму предсказания.
[0047] Как изображено на фиг.1, факторы были идентифицированы в качестве вспомогательных наборов 112 данных. В конкретном примере наборы данных могут иметь некоторый показатель корреляции, который позволяет считать их коррелирующими. Например, данные во вспомогательном наборе данных могут следовать, с течением времени, пути данных, аналогичному первичному набору 110 данных. Чем ближе данные во вспомогательном наборе данных следуют первичному набору 110 данных, тем более коррелирован вспомогательный набор данных с первичным набором 110 данных. Таким образом, известные наборы данных могут быть коррелированы с первичным набором данных путем определения того, насколько близко данные в известных наборах данных следуют данным в первичном наборе 110 данных. Чем ближе данные в известном наборе данных следуют первичному набору 110 данных, тем более коррелированы два набора данных. Это может указываться показателем корреляции. В некоторых вариантах осуществления этим показателем корреляции может быть вероятность, исходная оценка, отрегулированная оценка или некоторое другое указание корреляции. Хотя здесь иллюстрируются наборы данных, следует понимать, что другие факторы могут быть идентифицированы для применения к ним алгоритма предсказания.
[0048] Наборы данных факторов или другие факторы, которые могут быть высоко коррелированы с первичным набором 110 данных, могут затем быть представлены пользователю для выбора. Например, фиг.4 изображает на 214 некоторое количество факторов, которые могут быть выбраны пользователем. Фиг.6 изображает, когда фактор был выбран. В примере фиг.6 изображает представление 226 первичного набора данных и представление 228 вспомогательного набора данных, который был выбран пользователем. Данные 206 прогноза усовершенствуются ввиду оценки данных из первичного набора 110 данных вместе с данными из вспомогательного набора данных. Таким образом, пользователь может интерактивно применять и визуализировать различные факторы для принятия в расчет путем выбора их из списка рекомендаций или непосредственно из представления данных.
[0049] В частности, корреляция может быть определена для различных версий набора данных. Например, рассмотрим случай, когда фактор влияет на значения данных в наборе данных, но делает это сдвинутым по времени образом. Например, рассмотрим набор данных, отслеживающий продажи, и другой набор данных, отслеживающий уплаченные налоги. В то время как эти два набора данных могут коррелировать, они могут это делать сдвинутым по времени образом, где высокие продажи в один момент будут давать в результате высокие налоги в некоторый другой момент через несколько месяцев в будущем. Варианты осуществления могут определять корреляцию на основе некоторого сдвига по времени. Кроме того, варианты осуществления могут обеспечивать возможность пользователю выбирать один или несколько из некоторого количества различных наборов данных, которые являются сдвинутыми по времени версиями вспомогательного набора данных. Таким образом, пользователь может выбирать из набора различных наборов данных, где набор состоит из различных сдвинутых по времени версий одного и того же набора данных.
[0050] Варианты осуществления могут предлагать наиболее подходящие факторы из модели данных в качестве кандидатов для факторов, которые следует принять в расчет при выполнении предсказательного алгоритма. Факторы могут сортироваться на основе их уровня корреляции с целевым предсказанием для первичного набора 110 данных. Варианты осуществления могут фильтровать факторы с высокой вероятностью случайной корреляции, чтобы препятствовать использованию кажущихся подходящими факторов, когда они в действительности неподходящие. Это может выполняться, например, путем оценки p-значения t-критерия.
[0051] Компоненты рекомендации факторов системы могут оптимизировать предложения факторов. Например, варианты осуществления могут осуществлять оптимизацию путем генерирования данных, например путем генерирования предсказанных или будущих данных для фактора. В качестве альтернативы или дополнения, каждый набор данных фактора может быть оценен с использованием различных методов агрегации, таких как, например, сумма, средняя величина, максимум, минимум и т. д. Таким образом, могут создаваться различные версии одного и того же вспомогательного набора данных, где каждая версия была агрегирована различным образом. Агрегации могут иметь различные уровни корреляции. В качестве альтернативы или дополнения, как объяснено выше, оптимизации могут делаться для доступных комбинаций столбцов времени в различных смещениях. Таким образом, различные вспомогательные наборы данных могут создаваться для одного и того же набора данных путем объединения в пары данных фактора с различными столбцами времени. Когда факторы генерируются, варианты осуществления могут отсекать конкретные типы агрегации на основе связанных результатов агрегации, чтобы оптимизировать производительность.
[0052] Варианты осуществления могут дополнительно включать в себя функциональные возможности для идентификации дополнительных факторов. Например, варианты осуществления могут иметь доступ к различным наборам данных и могут иметь возможность вычислять индекс корреляции между заново идентифицированным набором данных и первичным набором 110 данных или могут иметь возможность осуществлять доступ к предварительно вычисленным индексам корреляции для наборов данных. В некоторых вариантах осуществления дополнительные вспомогательные наборы данных могут быть идентифицированы путем идентификации наборов данных, которые высоко коррелируют с другими вспомогательными наборами данных. Например, если известно, что первый вспомогательный набор данных высоко коррелирован с первичным набором 110 данных и что второй вспомогательный набор данных высоко коррелирован с первым вспомогательным набором данных, варианты осуществления могут предлагать второй вспомогательный набор данных для использования с предсказательными алгоритмами для первичного набора 110 данных. Дополнительно, новые наборы данных для использования в детализации предсказательных алгоритмов могут продолжать идентифицироваться путем нахождения цепочек связанных наборов данных.
[0053] В некоторых вариантах осуществления рынок наборов данных может быть использован. Например, центр обмена информацией, который хранит различные наборы данных, может быть доступен для обрабатывающей системы 104. Рынок наборов данных может накапливать наборы данных, вычислять корреляции между наборами данных и другим образом управлять наборами данных. Если существует потребность в улучшении предсказаний для некоторого заданного набора данных, пользователь может консультироваться с рынком наборов данных, чтобы найти вспомогательные наборы данных, которые могут быть использованы в предсказательных алгоритмах.
[0054] При применении вспомогательных наборов данных к алгоритму предсказания может быть некоторая необходимость обусловить вспомогательный набор данных перед тем, как он может быть применен к алгоритму предсказания для первичного набора 110 данных. В частности, вспомогательные наборы данных могут иметь отсутствующие или искаженные данные. В качестве альтернативы или дополнения, вспомогательные наборы данных могут не иметь форму, которая совпадает с первичным набором 110 данных. Например, первичный набор данных может иметь точки данных, которые собираются каждую неделю, в то время как вспомогательный набор данных может иметь точки данных, которые собираются только по месяцам. В качестве альтернативы, первичный набор данных может иметь годовую сезонность в то время как вспомогательный набор данных иметь месячную сезонность.
[0055] Варианты осуществления могут включать в себя функциональные возможности для того, чтобы автоматически обусловливать вспомогательные наборы данных. Например, варианты осуществления могут обеспечивать отсутствующие точки данных, сглаживать данные или другим образом обусловливать данные, которые должны быть использованы с предсказательным алгоритмом для первичного набора 110 данных. Дополнительно, точки данных могут быть экстраполированы на надлежащие точки, для предписания вспомогательному набору данных иметь надлежащую частоту точек данных и сезонность, которая должна быть использована в предсказательном алгоритме для первичного набора 110 данных.
[0056] Таким образом, варианты осуществления могут автоматически готовить данные факторов для предсказания. Это может делаться путем дополнения и фиксирования данных и/или выравнивания их с целевым первичным набором данных, такого как выравнивание диапазона времени, типа, формата и т. д.
[0057] Варианты осуществления могут искать компоненты, либо внутренние, либо внешние, для системы, чтобы усовершенствовать режим данных. Некоторые варианты осуществления могут урезать поиск по квалификационным критериям временного ряда, таким как тип данных и доступные пары значений времени, чтобы оптимизировать производительность.
[0058] Как отмечено выше, варианты осуществления могут включать в себя функциональные возможности для изображения огибающей предсказанных результатов путем обеспечения возможности пользователю выбирать количество среднеквадратических отклонений для изображения на графике. В частности, управляющий элемент, иллюстрируемый на 216, обеспечивает возможность пользователю выбирать диапазон результатов прогноза для изображения. Как изображено на фиг.7, пользователь выбрал одно среднеквадратическое отклонение. Это вызывает отображение огибающей 230, показывающей единственное среднеквадратическое отклонение для предсказанных точек данных.
[0059] Варианты осуществления могут в качестве дополнения или альтернативы поддерживать ретроспективное прогнозирование. Ретроспективное прогнозирование часто используется для удостоверения в правильности предсказательных алгоритмов. Оно может быть использовано для получения уверенности в результатах предсказания. Конкретным образом, ретроспективное прогнозирование является методом прогнозирования, относящегося к прошлому. В частности, как только данные прогноза доступны, ретроспективный прогноз может выполняться с использованием данных прогноза для генерирования ретроспективных точек данных, чтобы посмотреть, дает ли ретроспективный прогноз правдоподобные результаты, тем самым удостоверяя правильность предсказательного алгоритма. В качестве альтернативы, варианты осуществления могут производить данные прогноза с использованием меньшего количества хронологических данных. Таким образом, создание ретроспективного прогноза на два месяца может выполняться путем создания прогноза на основе хронологических данных без последних двух месяцев.
[0060] Варианты осуществления здесь могут осуществлять впечатление интерактивного ретроспективного прогноза. В одном примере, как только прогноз доступен и визуализирован, как иллюстрируется на фиг.8, манипулятор 232 ретроспективного прогноза готов для использования на последней хронологической точке данных (т. е. самой свежей фактической хронологической точке данных).
[0061] Как изображено на фиг.9, результаты 234 ретроспективного прогноза могут генерироваться и отображаться.
[0062] Как изображено на фиг.10, результаты 234 ретроспективных прогнозов обновляются динамически в реальном времени. Это может включать в себя обновление представления допустимой ошибки. Результаты ретроспективного прогноза могут быть отражены вместе с действительными хронологическими данными. Пользователь может перемещать манипулятор 232 ретроспективного прогноза вперед и назад во времени с поддержкой возможностей динамического анализа и отката, интерактивного повествования и совместного использования ретроспективного прогноза в реальном времени.
[0063] Следующее рассмотрение теперь ссылается на некоторое количество способов и действий способов, которые могут выполняться. Хотя действия способов могут рассматриваться в некотором порядке или иллюстрироваться на блок-схеме последовательности операций как происходящие в конкретном порядке, никакое конкретное упорядочивание не требуется, если конкретным образом не указано обратное или если не требуется ввиду того, что некоторое действие зависит от того, чтобы другое действие было завершено перед выполнением этого действия.
[0064] Теперь со ссылками на фиг.11 иллюстрируется способ 1100. Способ 1100 может осуществляться на практике в вычислительной среде. Способ 1100 включает в себя действия для обеспечения предсказанных данных. Способ 1100 включает в себя представление пользователю хронологического набора данных (действие 1102). Например, как иллюстрируется выше на фиг.5, график, иллюстрирующий хронологические данные, представляется пользователю.
[0065] Способ 1100 дополнительно включает в себя, одновременно с представлением пользователю хронологического набора данных, представление пользователю гипотетического набора данных, который основан на хронологическом наборе данных (действие 1104). Например, как иллюстрируется на фиг.5, пользователю представляются как хронологические данные, так и гипотетические данные. Гипотетические данные иллюстрируются, например, в качестве точки 218, которая представляет отклонение от хронологических данных. Однако хронологические данные, из которых точка 218 была получена, продолжают отображаться точкой 218.
[0066] Способ 1100 дополнительно включает в себя представление пользователю предсказанного набора данных на основе гипотетического набора данных (действие 1106). Например, фиг.5 изображает данные 206 прогноза, которые генерируются с использованием предсказательных алгоритмов с по меньшей мере частью хронологических данных и гипотетических данных, взятых в качестве входных данных. Например, предсказательный алгоритм может использовать все хронологические данные, кроме как в точке 218, где алгоритм будет использовать гипотетические данные.
[0067] Способ 1100 может осуществляться на практике, где гипотетический набор данных является набором данных прогноза, предсказывающим будущие значения данных. Это иллюстрируется на фиг.5 данными 206 прогноза.
[0068] Способ 1100 может осуществляться на практике, когда гипотетический набор данных является набором данных ретроспективного прогноза, предсказывающим прошлые значения данных. Примеры ретроспективного прогнозирования иллюстрируются на фиг.9 и 10. Таким образом, если данные прогноза были основаны на гипотетических данных, ретроспективный прогноз будет также основываться на гипотетических данных.
[0069] Способ 1100 может дополнительно включать в себя прием от пользователя входных данных, взаимодействующих с хронологическим набором данных, для изменения хронологического набора данных в гипотетический набор данных. Как изображено на фиг.5 и в сопроводительном описании, это может быть сделано путем того, что пользователь перетаскивает существующие хронологические точки данных в новые гипотетические значения, вводит значения гипотетических точек данных (как иллюстрируется с использованием всплывающего окна 222) и т. д.
[0070] Способ 1100 может дополнительно включать в себя автоматическую очистку хронологического набора данных для выполнения действий, таких как исправление посторонних точек данных, обеспечение отсутствующих точек данных, стандартизация типов данных (например, изменение строк в числа) и т. д. Например, в некотором варианте осуществления способ может дополнительно включать в себя прием ввода пользователя в отношении того, как добавлять дополнительные точки данных путем приема ввода пользователя, определяющего среднее, алгоритм подгонки линии, конкретное значение и т. д. Это может быть использовано для того, чтобы автоматически генерировать отсутствующие или искаженные точки данных или чтобы добавлять определяемые пользователем значения для отсутствующих или искаженных точек данных.
[0071] Способ 1100 может осуществляться на практике, когда представление пользователю гипотетического набора данных, который основан на хронологическом наборе данных, включает в себя визуальное противопоставление гипотетического набора данных с хронологическим набором данных. Например, различная штриховка, ширина линий, цвета и т. д. могут быть использованы для отличия хронологических и гипотетических наборов данных.
[0072] Способ 1100 может осуществляться на практике, когда представление пользователю предсказанного набора данных на основе гипотетического набора данных включает в себя предсказание для периода времени, выбранного пользователем. Например, как иллюстрируется на фиг.2, пользователь может взаимодействовать с манипулятором 202 для определения периода времени путем перетаскивания манипулятора. В качестве альтернативы, манипулятор может быть расширен, чтобы иметь левую/правую стрелки, которые пользователь может нажать. Другие альтернативные или дополнительные жесты могут поддерживаться. Например, двойной щелчок на манипуляторе 202 может быть использован, чтобы сбросить прогноз. Другие элементы пользовательского интерфейса, такие как окошки даты, бегунки или другие элементы, могут предоставляться для обеспечения возможности пользователю определять период времени.
[0073] Способ 1100 может осуществляться на практике, когда представление пользователю предсказанного набора данных на основе гипотетического набора данных содержит предсказание для автоматически выбранного периода времени. Например, некоторые варианты осуществления могут иметь возможность генерировать в общем случае предпочтительный период времени, такой как годовой, месячный, недельный, дневной, часовой, минутный и т. д. период времени. В некоторых таких вариантах осуществления пользователь может переопределять автоматические выборы.
[0074] Теперь со ссылкой на фиг.12 иллюстрируется способ 1200. Способ 1200 может осуществляться на практике в вычислительной среде. Способ 1200 включает в себя действия для обеспечения предсказательных данных, предсказывающих значения данных для хронологического набора данных. Предсказательные данные предсказывают либо будущие значения для хронологического набора данных, либо прошлые значения для хронологического набора данных. Способ 1200 дополнительно способствует улучшению точности предсказательных данных путем идентификации для пользователя и обеспечения возможности пользователю выбирать вспомогательные наборы данных, которые могут быть оценены, с использованием предсказательной оценки вместе с хронологическим набором данных для улучшения точности предсказательных данных.
[0075] Способ включает в себя обеспечение пользовательского интерфейса пользователю (действие 1202). Пользовательский интерфейс идентифицирует один или несколько вспомогательных наборов данных. Вспомогательные наборы данных идентифицированы для пользователя на основе вспомогательных наборов данных, удовлетворяющих пороговому условию для хронологического набора данных. Вспомогательные наборы данных имеют возможность выбора пользователем в пользовательском интерфейсе. Например, фиг.4 изображает на 214, что пользователь может делать выбор из различных наборов данных факторов, которые могут затем быть использованы с предсказательными алгоритмами для прогноза или ретроспективного прогноза данных.
[0076] Способ 1200 дополнительно включает в себя прием ввода пользователя в пользовательском интерфейсе с выбором одного или нескольких вспомогательных наборов данных (действие 1204). Например, пользователь может использовать интерфейс, иллюстрируемый на 214, для выбора набора данных.
[0077] Способ 1200 дополнительно включает в себя отображение предсказательного набора данных пользователю (действие 1206). Предсказательный набор данных предсказывает либо будущие значения данных, либо прошлые значения данных для хронологического набора данных. Предсказательный набор данных определяется предсказательной оценкой в отношении хронологического набора данных и одного или нескольких выбранных вспомогательных наборов данных.
[0078] Способ 1200 может дополнительно включать в себя выравнивание по меньшей мере одного из одного или нескольких вспомогательных наборов данных с хронологическим набором данных путем модификации интервала значений данных по меньшей мере одного из одного или нескольких вспомогательных наборов данных для соответствия интервалу значений данных хронологического набора данных. Например, варианты осуществления могут обеспечивать или удалять точки данных, чтобы оба набора данных имели дневной, недельный, месячный или некоторый другой интервал для значений данных.
[0079] Способ 1200 может осуществляться на практике, когда по меньшей мере одно пороговое условие основано на сдвинутой по времени версии, сдвинутой во времени относительно хронологического набора данных, вспомогательного набора данных. Например, вспомогательный набор данных может коррелировать с хронологическим набором данных, но только когда вспомогательный набор данных сдвигается на некоторое значение времени. В качестве альтернативы, если вспомогательный набор данных имеет более высокое временное разбиение (например, "главный" набор данных разбит по месяцам, в то время как вспомогательный набор данных разбит по дням), он может быть агрегирован до того же самого временного разбиения, что и у "главного" набора данных. Обратное направление, вероятно, менее распространено и полезно, но возможно. Если вспомогательный набор данных имеет более низкое временное разбиение (например, "главный" набор данных разбит по дням, в то время как вспомогательный набор данных разбит по месяцам), он может "делиться" (равным или неравным образом) до того же самого временного разбиения, что и у "главного" набора данных.
[0080] Способ 1200 может дополнительно включать в себя итерационную идентификацию дополнительных вспомогательных наборов данных. Способ 1200 может включать в себя обеспечение указаний дополнительных вспомогательных наборов данных в пользовательском интерфейсе, обеспечивающее возможность пользователю выбирать дополнительные вспомогательные наборы данных, и обновление предсказанного набора данных, когда дополнительный вспомогательный набор данных выбирается пользователем. Таким образом, например, система может динамически обновлять вспомогательные наборы данных по мере того, как корреляции обнаруживаются между вспомогательными наборами данных и хронологическим набором данных, где эти корреляции удовлетворяют некоторому порогу. В некотором варианте осуществления идентификации дополнительных вспомогательных наборов данных выполняется путем идентификации дополнительных вспомогательных наборов данных, имеющих высокую корреляцию с уже идентифицированными вспомогательными наборами данных. Таким образом, например, если первый вспомогательный набор данных высоко коррелирован со вторым вспомогательным набором данных, который высоко коррелирован с хронологическим набором данных, то первый вспомогательный набор данных может быть обеспечен в качестве вспомогательного набора данных для улучшения предсказательных алгоритмов для хронологического набора данных.
[0081] Кроме того, способы могут осуществляться на практике компьютерной системой, включающей в себя один или несколько процессоров и машиночитаемые носители, такие как компьютерная память. В частности, компьютерная память может хранить машиноисполняемые инструкции, которые при исполнении одним или несколькими процессорами побуждают выполнение различных функций, таких как действия, перечисленные в вариантах осуществления.
[0082] Варианты осуществления настоящего изобретения могут содержать или задействовать специализированный или универсальный компьютер, включающий в себя компьютерные аппаратные средства, как рассмотрено более подробно ниже. Варианты осуществления в рамках объема настоящего изобретения также включают в себя физические и другие машиночитаемые носители для переноса или хранения машиноисполняемых инструкций и/или структур данных. Такие машиночитаемые носители могут быть любыми доступными носителями, к которым может осуществляться доступ универсальной или специализированной компьютерной системой. Машиночитаемые носители, которые хранят машиноисполняемые инструкции, являются физическими носителями информации. Машиночитаемые носители, которые переносят машиноисполняемые инструкции, являются носителями передачи. Таким образом, в качестве примера и не ограничения, варианты осуществления изобретения могут содержать по меньшей мере два четко различных вида машиночитаемых носителей: физические машиночитаемые носители информации и машиночитаемые носители передачи.
[0083] Физические машиночитаемые носители информации включают в себя RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптических дисках (такой как CD, DVD и т. д.), накопитель на магнитных дисках или другие магнитные устройства хранения или любой другой носитель, который может быть использован для сохранения желаемых средств программного кода в форме машиноисполняемых инструкций или структур данных и к которому может осуществляться доступ универсальным или специализированным компьютером.
[0084] "Сеть" определяется как одна или несколько линий передачи данных, которые обеспечивают возможность переноса электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация переносится или обеспечивается по сети или другому соединению связи (либо проводному, либо беспроводному, либо комбинации проводного или беспроводного) к компьютеру, компьютер должным образом рассматривает соединение как носитель передачи. Носители передачи могут включать в себя сеть и/или линии передачи данных, которые могут быть использованы для переноса или желаемых средств программного кода в форме машиноисполняемых инструкций или структур данных и к которым может осуществляться доступ универсальным или специализированным компьютером. Комбинации вышеупомянутого также включаются в объем машиночитаемых носителей.
[0085] Кроме того, при достижении различных компонентов компьютерной системы средства программного кода в форме машиноисполняемых инструкций или структур данных могут быть перенесены автоматически из машиночитаемых носителей передачи в физические машиночитаемые носители информации (или наоборот). Например, машиноисполняемые инструкции или структуры данных, принимаемые по сети или линии данных, могут буферизоваться в RAM внутри модуля сетевого интерфейса (например, "NIC") и затем в конечном итоге переноситься в RAM компьютерной системы и/или в менее энергозависимые машиночитаемые физические носители информации в компьютерной системе. Таким образом, машиночитаемые физические носители информации могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) задействуют носители передачи.
[0086] Машиноисполняемые инструкции содержат, например, инструкции и данные, которые побуждают универсальный компьютер, специализированный компьютер или специализированное обрабатывающее устройство выполнять конкретную функцию или группу функций. Машиноисполняемые инструкции могут быть, например, двоичными файлами, инструкциями промежуточного формата, такими как язык ассемблера, или даже исходным кодом. Хотя изобретение было описано на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничивается описанными признаками или действиями, описанными выше. В действительности описанные признаки и действия раскрываются в качестве примерных форм осуществления пунктов формулы.
[0087] Специалисты в данной области техники поймут, что изобретение может осуществляться на практике в сетевых вычислительных средах с множеством типов конфигураций компьютерной системы, включающих в себя персональные компьютеры, настольные компьютеры, компьютеры-ноутбуки, процессоры сообщений, портативные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые PC, миникомпьютеры, мэйнфреймы, мобильные телефоны, PDA, пейджеры, маршрутизаторы, переключатели и т. п. Изобретение может также осуществляться на практике в распределенных системных средах, где и локальные, и удаленные компьютерные системы, которые связываются (посредством либо проводных линий передачи данных, либо беспроводных линий передачи данных, либо комбинации проводных и беспроводных линий передачи данных) через сеть, выполняют задачи. В распределенной системной среде программные модули могут быть расположены как в локальных, так и в удаленных устройствах хранения памяти.
[0088] В качестве альтернативы или дополнения, функционально описанное здесь может выполняться, по меньшей мере частично, одним или несколькими аппаратными логическими компонентами. В качестве примера и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, включают в себя программируемые пользователем вентильные матрицы (FPGA), программно-зависимые интегральные цепи (ASIC), программно-зависимые стандартные продукты (ASSP), системы на кристалле (SOC), сложные программируемые логические устройства (CPLD) и т.д.
[0089] Настоящее изобретение может осуществляться в других конкретных формах без выхода за пределы его сущности или характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные и не ограничивающие. Объем изобретения, таким образом, определяется прилагаемой формулой изобретения, а не вышеприведенным описанием. Все изменения, которые осуществляются в рамках значения и диапазона эквивалентности формулы изобретения, охватываются определяемым ею объемом.