Узел Фильтрация строк
srlruleset filter rows big

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

Для пользователей, знакомых с SQL, выполняемое узлом действие аналогично действию оператора 'WHERE' в запросе 'SELECT'. Соответствующее условие определяется с использованием собственного языка PolyAnalyst – SRL. Синтаксис SRL во многом похож на SQL, и большинство продвинутых пользователей смогут быстро овладеть им. Подробное описание языка SRL доступно в специальном разделе данного руководства.

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

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

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

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

Предположим, что у нас есть таблица с данными о домашних питомцах. Каждому животному отведена своя строка, а его характеристика представлена в колонках Тип, Имя и Возраст. Колонка Тип содержит значения строкового типа ("собака", "кошка", "ящерица" и т.д.). Колонка Возраст содержит числовые данные. Предположим, что мы хотим получить подмассив записей с информацией о собаках в возрасте до 5 лет. Выражение для фильтрации записей будет выглядеть следующим образом: [Тип] = "собака" and [Возраст] < 5. Для большей наглядности можно добавить круглые скобки и обособить части выражения: ([Тип] = "собака") and ([Возраст] < 5). При оценке этого условия для отдельной записи PolyAnalyst будет возвращать значения для колонок Тип и Возраст. Затем он будет проверять, содержится ли в колонке Тип значение "собака" строкового типа, а затем также проверит, содержит ли колонка Возраст число меньше 5. Поскольку мы используем оператор and, обе эти проверки должны вернуть значение "истина". Если оба значения истинные, то все выражение оценивается как истинное, а соответствующая запись включается в выходной массив данных как отвечающая критериям фильтрации. Если после проверки условие не оценивается как истинное (например, питомец является кошкой, либо возраст питомца составляет 5 лет или более), то запись не соответствует критерию фильтрации и не включается в выходные данные.

Соединения на скрипте

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

Что такое выборка данных?

В системе PolyAnalyst выборка – это процесс сокращения исходного объема данных перед началом анализа. Создание выборки предполагает ограничение числа переменных, используемых алгоритмом в качестве исходных данных. Выборку данных часто определяют как часть статистической популяции, свойства которой изучаются для получения информации о всем наборе данных.

Для чего нужна выборка данных?

Создание выборки данных может потребоваться на различных этапах работы над проектом. В ходе выполнения анализа мы можем иметь дело с миллиардами переменных и наблюдений. Системы анализа данных, включая PolyAnalyst, не всегда эффективно работают с данными большого объема, размер которых измеряется в терабайтах. Многие инструменты статистического моделирования подразумевают интенсивные расчеты и большие временные затраты. Но проблема заключается не только во времени обработки. Чем больше данных, тем больше вероятность того, что они не соответствуют минимальным требованиям качества. Большое количество данных не всегда способствует обнаружению в них шаблонов и закономерностей и, что хуже всего, может даже препятствовать этому.

Что нужно учитывать при создании выборки данных

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

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

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

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

Выборка при импорте данных

Окно настроек некоторых узлов-источников данных имеет вкладку Выборка, которая позволяет указать максимальное количество загружаемых записей, или какое количество записей необходимо пропустить перед сохранением данных в систему PolyAnalyst, или установить режим чтения каждой 5-ой (10-ой или X) записи. Подробнее об этом – в разделе Создание выборки данных в ходе импорта.

Выборка с помощью узла Выборка

Узел Выборка позволяет создать выборку записей исходной таблицы данных в соответствии с заданными настройками. Это может быть случайная выборка, выборка из первых X записей или каждой N-ой записи. Обратите внимание, что узел Выборка относится к категории узлов операций со строками, т.к. он, образно говоря, трансформирует исходную таблицу в новую выходную таблицу, работая исключительно со строками.

Выборка с помощью узла Фильтрация строк

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

Выборка с помощью узла Разбиение

Узел Разбиение создает новую таблицу данных, которая включает все исходные колонки и одну дополнительную колонку. В новой колонке содержится идентификатор, который определяет принадлежность каждой записи к определенному подмножеству. В настройках узла Разбиение можно указать любое количество таких подмножеств/классов. Чаще всего данный узел используется для разбиения таблицы данных на тренировочное и контрольное подмножества для обучения модели и оценки ее качества с помощью одного из узлов анализа данных. Узел Разбиение иногда используют вместо узла Выборка, т.к. только так в PolyAnalyst можно создать дополнение случайной выборки. При этом случайная выборка не создается по конкретному условию (вся процедура настройки узла Выборка сводится к тому, что пользователю необходимо указать лишь необходимое количество записей), поэтому как таковое обратное условие, которое можно было бы указать в узле Фильтрация строк, отсутствует. Однако в некоторых случаях, например, когда подмассив данных содержит первичный ключ, можно использовать узел Дополнение.

Автоматическая выборка в некоторых узлах моделирования

Некоторые узлы моделирования автоматически создают выборки из исходных тренировочных наборов данных. Узлы моделирования должны выполнять масштабные ресурсоемкие вычисления с интенсивным использованием оперативной памяти. Для оценки всей таблицы данных одновременно даже машинам с объемом оперативной памяти в 4 GB не хватит ресурсов. Для этих целей некоторые алгоритмы разбивают таблицу данных на более мелкие, случайные выборки. Данная операция также выполняется и в статистических целях. Обратите внимание, что в связи с использованием принципа случайности это может привести к получению разных результатов при каждом запуске алгоритма, даже если входные данные остаются те же. Другими словами, некоторые алгоритмы классифицируются как "недетерминированные" из-за особенностей механизма создания выборки.