Настройка узла Смещенная выборка

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

bias sample properties.rus
Добавление условия и составление SRL-выражения для условия

Чтобы добавить условие в узле Смещенная выборка, нажмите на кнопку button add на панели инструментов в верхней части вкладки Условия, либо используйте сочетание клавиш Alt+N. В списке слева появится новое условие. Выберите условие в левой части и введите SRL-выражение для данного условия в окне справа.

Поле редактирования выражения представляет собой большую текстовую область для ввода условия, над которой находится панель инструментов и меню для выбора исходных колонок и функций. Для создания выражении используется синтаксис SRL системы PolyAnalyst.

Опции на панели инструментов включают:

  • button operators – позволяет отобразить список доступных SRL- и PDL-операторов.

  • button columns – позволяет отобразить/скрыть список исходных колонок рядом с полем редактора выражений. Нажмите дважды на имя колонки, чтобы использовать ее в вашем выражении. Используйте поле Фильтр для поиска конкретных колонок по имени или тегу (#).

  • button functions – позволяет отобразить/скрыть список SRL- и PDL-функций рядом с полем редактора выражений. При выборе функции в поле ниже отобразится ее краткое описание. Нажмите дважды на имя функции, чтобы использовать ее в вашем выражении. Подробная информация доступна в соответствующих разделах: Справка по функциям PDL и/или Справка по функциям SRL.

  • button macros – позволяет управлять SRL и PDL макросами и переменными.

  • button related words – позволяет редактировать словоформы и/или все выражение.

  • button properties – позволяет изменить Настройки пользователя применительно к редактору SRL/PDL, например, шрифт, цвет фона и т.д.

  • button user manual – позволяет быстро перейти к Документации по SRL и Документации по PDL.

  • Показать – позволяет изменить дополнительные настройки отображения.

Чтобы проверить введенное вами выражение, нажмите на кнопку Проверить синтаксис. Если система обнаружит ошибку, на экране появится сообщение об ошибке. Рекомендуем вам ознакомиться с руководством по составлению SRL-выражений (см. ссылку выше), чтобы минимизировать вероятность ошибок. Во время выполнения узла PolyAnalyst повторно проверит все используемые SRL-выражения. Если в одном из выражений будет обнаружена ошибка, узел не будет выполнен.

Если вы используете SRL, вы также можете получить краткую справку по функциям SRL в настройках узла. Вы также можете получить информацию по определенной функции SRL, наведя курсор мыши на название функции, которую вы добавили в текстовое поле. Появится следующая подсказка:

example tooltip.rus

Если вам нужно открыть эту справку в отдельной вкладке вашего браузера, нажмите CTRL и кликните на "глазок" в окне всплывающей подсказки.

Чтобы удалить условие, выберите его и нажмите button remove в верхнем левом углу, либо используйте сочетание клавиш Alt+Delete.

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

Настройка нужного распределения данных для одного условия

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

Чтобы указать нужное распределение записей для выбранного условия, щелкните по нужной ячейке в колонке Доля (%). Введите новое значение и нажмите Enter или щелкните в любом другом месте окна свойств, чтобы сохранить указанное значение. Значения долей указываются в диапазоне от 0 до 100. При попытке ввести неправильное значение доли PolyAnalyst выдаст сообщение об ошибке.

Например, в нашей таблице с криминальными сводками (CrimeData.csv) имеется колонка с категориями совершенных преступлений (Robbery, Burglary, Vehicle Stolen, Fatal Accident и др). Если мы создадим два условия (Category = "Robbery" и Category = "Burglary"), а затем установим значения долей категорий Robbery и Burglary в 25 и 50% соответственно, то выходная таблица узла будет содержать 25% записей категории Robbery и 50% записей категории Burglary.

bias sample options.rus

Доли отдельных условий в сумме могут превышать 100%. Каждое условие оценивается отдельно. PolyAnalyst пытается выполнить задачу, поставленную каждым условием по отдельности (хотя в конечном счете он пытается выполнить все условия). Значение доли не означает, что заданные условия конкурируют друг с другом с тем, чтобы заполучить наибольшее количество записей в выходной таблице. Оно означает нужную пользователю долю записей, которые должны соответствовать одному условию и присутствовать в выходных данных. На самом деле, во многих или даже в большинстве случаев выражения, используемые в условиях, будут пересекаться. Каждое условие имеет свою собственную долю записей.

Доступные способы создания выборки

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

Оба алгоритма подробно описываются ниже.

Предположим, пользователь задает n логических условий. Каждое из них может быть представлено следующим образом:

Mean[Ci(r), запись r принадлежит смещенной выборке B] = Fi

где

i – индекс условия;

Ci(r) – значение булевого SRL-выражения для записи r;

Fi – нужная доля.

Действительное количество Qi истинных логических выражений в исходной таблице данных D можно определить по формуле:

Mean[Ci(r), запись r принадлежит оригинальной таблице данных D] = Qi

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

argmin( sum {(mean[Ci(r), r принадлежит результирующей выборке B] – Fi)^2, i = 1,2,…​n } )

где

argmax( size(B). B принадлежит исходной таблице данных D )

Если выбран режим создания случайной выборки, сначала генерируется вероятностная модель выборки. Выполняется оценка вероятности для того, чтобы решить, должна ли запись остаться в смещенной выборке. Запись r представлена как булевый вектор значений логического выражения C1(r), C2(r), … Cn(r). Выражение для определения вероятности, позволяющей сохранить запись r в выборке, выглядит так:

P(C1(r), C2(r), … Cn(r)) = H1(C1(r)) * H2(C2(r)) * … * Hn(Cn(r))

где:

biased sample random

Проблема условной оптимизации решается относительно переменных Xi, i = 1,2…​n. Используется градиентный метод возможных направлений.

После создания модели выборки, она применяется к каждой записи r в исходной таблице. Генерируется универсальное случайное значение 0 ⇐ v(r) ⇐ 1. Если v(r) ⇐ P(C1(r), C2(r), … Cn(r)), запись r сохраняется в выборке, в противном случае она исключается.

При создании адаптивной выборки, используется алгоритм пошаговой оптимизации. Записи рассматриваются последовательно. Критерий минимизации

sum {(mean[Ci(r), r принадлежит результирующей выборке B] – Fi)^2, i = 1,2,…​n }

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

Иногда ни один из алгоритмов не может одновременно удовлетворить всем условиям. Скорее всего, в таком случае условия являются взаимоисключающими.