Трансформация данных
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Трансформация данных
Анализируемая информация, представленная в виде набора данных, имеет определенный формат. Под форматом данных подразумевается отнесение их к определенному типу (целочисленные, строковые, даты), задание вида (дискретные или непрерывные) и т. п. Для анализа различных аспектов информации может потребоваться преобразование ее формата или трансформация. Кроме преобразования форматов трансформация включает в себя изменение представления данных и другие операции, связанные с преобразованиями входного набора данных.
Трансформация данных - Комплекс методов и алгоритмов, направленных на оптимизацию представления и форматов данных с точки зрения решаемых задач и целей анализа. Трансформация данных не ставит целью изменить информационное содержание данных. Её задача - представить эту информацию в таком виде, чтобы она могла быть использована наиболее эффективно.
Вообще, трансформация данных это очень широкое понятие, не имеющее четко очерченных границ. В различных направлениях обработки данных термин «трансформация» иногда распространяют на любые манипуляции с данными независимо от их целей и методов. Однако в контексте аналитических технологий трансформация данных имеет вполне конкретные цели и задачи, а также использует достаточно стабильный набор методов. К основным методам трансформации относятся нормализация, преобразование типов и форматов, сортировка, группировка, слияние и др.
На каждом этапе аналитического процесса имеются свои приоритетные цели трансформации. Так, в системах оперативной обработки (OLTP), основными целями трансформации являются обеспечение поддержки корректности форматов и типов данных, оптимизация процессов доступа и выгрузки данных. На этапе ETL-процесса трансформация производится с целью приведения данных в соответствие с моделью, которая используется в хранилище, а также обеспечение процесса консолидации данных и их загрузки в хранилище. И, наконец, в аналитическом приложении производится непосредственная подготовка данных к анализу, объединение и выделение наиболее ценной информации, обеспечение корректной работы аналитических алгоритмов, методов и моделей.
Трансформация данных является одним из важнейших процессов в анализе. От того, насколько грамотно она будет проведена, зависит эффективность анализа, достоверность и точность его результатов.
1. Настройка набора данных
Обработка «Настройка набора данных» предназначена для изменения имени, метки, типа, вида и назначения полей текущей выборки данных и кэширования выходного набора.
У каждого поля можно изменить метку столбца, которая будет использоваться для дальнейшей работы в программе. Если в текущей выборке данных поле имеет имя «Name», ему можно задать метку «Наименование», что гораздо удобнее при дальнейшем отображении этого поля в таблицах или диаграммах. Изменение имени поля удобно в тех случаях, когда имена столбцов могут измениться в источнике данных или при перенастройке узлов верхних уровней. В этом случае в узле «Настройка набора данных» имя исходного столбца заменяется другим, на которое и настраиваются все дочерние узлы. После такой операции изменение имен полей на верхних уровнях не потребует перенастройки всех дочерних узлов в дереве сценариев.
Далее каждому полю можно изменить тип (логический, дата/время, вещественный, целый, строковый).
Затем можно указать вид данных (непрерывный, дискретный).
В зависимости от содержимого поля «Тип данных» на выбор вида данных накладываются ограничения, например, строковые данные не могут быть непрерывными. К выбору типа и вида данных нужно относиться серьезно, так как это влияет на возможность дальнейшего использования этого поля.
Далее можно изменить назначение полей. В зависимости от дальнейшего использования выборки данных предлагается изменить текущие назначения полей на следующие: непригодное, неиспользуемое, ключ, входное, выходное, информационное, измерение, факт.
2. Скользящее окно
При решении некоторых задач, например, при прогнозировании временных рядов при помощи нейросети, требуется подавать на вход модели значения нескольких смежных отсчетов из исходного набора данных. Такой метод отбора данных называется скользящим окном (окно - поскольку выделяется только некоторый непрерывный участок данных, скользящее – поскольку это окно «перемещается» по всему набору). При этом эффективность реализации заметно повышается, если не выбирать данные каждый раз из нескольких последовательных записей, а последовательно расположить данные, относящиеся к конкретной позиции окна, в одной записи.
Значения в одном из полей записи будут относиться к текущему отсчету, а в других - смещены от текущего отсчета «в будущее» или «в прошлое». Таким образом, преобразование скользящего окна имеет два параметра: «глубина погружения» - количество «прошлых» отсчетов, попадающих в окно, и «горизонт прогнозирования» – количество «будущих» отсчетов. Следует отметить, что для граничных (относительно начала и конца всей выборки) положений окна будут формироваться неполные записи, т.е. записи, содержащие пустые значения для отсутствующих прошлых или будущих отсчетов. Алгоритм преобразования позволяет исключить такие записи из выборки (тогда для нескольких граничных отсчетов записи формироваться не будут) либо включить их (тогда формируются записи для всех имеющихся отсчетов, но некоторые из них будут неполными). Отметим, что для правильного формирования скользящего окна данные должны быть соответствующим образом упорядочены.
Пример.
Есть история продаж за половину года по месяцам, представленная таблицей:
Если задать глубину погружения 2 и горизонт прогнозирования 1, то получим следующую таблицу с неполными записями.
Или следующую таблицу с полными записями.
Такую таблицу можно использовать при построении моделей, например, для прогнозирования. При этом на вход модели для ее обучения будут подаваться поля с текущим и двумя предыдущими месяцами, а на выход – поле с объемом продаж на следующий месяц.
Эту таблицу также можно использовать для вычисления оборотов за определенное количество месяцев, например, вычисляя разницу между столбцами с объемом продаж за текущий месяц и объемом продаж за предыдущий месяц.
3. Преобразование даты
Преобразование даты служит для анализа всевозможных показателей за определенный период (год, квартал, месяц, неделя, день, час, минута, секунда). Суть преобразования заключается в том, что на основе столбца с информацией о дате/времени формируются один или несколько столбцов, в которых указывается, к какому заданному интервалу времени принадлежит строка данных. Тип интервала задается аналитиком, исходя из того, что он хочет выделить из даты.
Такая операция требуется потому, что очень часто интересным для анализа является не сама дата, а ее производная. Например, для анализа посещаемости магазина интересен день недели, а для оценки загруженности касс – час.
Значения нового столбца, полученного после применения преобразования даты, могут быть одного из трех типов: строка, число или дата. Например, нужно из даты «10.04.2004» получить только месяц. Тогда в столбце строкового типа будет содержаться «2004-М04», и его уже нельзя использовать как дату, например, к нему нельзя снова применить преобразование даты. А в столбце типа «дата» будет значение «01.04.2004» – первый день месяца. К нему снова можно применить преобразование и получить, например, номер квартала. Новый столбец будет содержать значение 2 числового типа.
Пример.
Пример использования преобразования даты приведен в таблице. Первый столбец «Дата» – это исходный столбец. Остальные получены после обработки.
4. Квантование значений
При выполнении этой операции осуществляется разбиение диапазона числовых значений на указанное количество интервалов определенным методом и замена каждого обрабатываемого значения на число, связанное с интервалом, к которому оно относится, либо метку интервала. Интервалы разбиения включают в себя нижнюю границу, но не включают верхнюю кроме последнего интервала, который включает в себя обе границы. Результатом преобразования может быть: номер интервала, значение нижней или верхней границы интервала разбиения, среднее значение интервала разбиения, метка интервала или автоматическая метка.
Квантование (или дискредитация) может быть осуществлено интервальным или квантильным алгоритмом. Интервальное квантование подразумевает разбиение диапазона значений на указанное количество значений равной длины. Например, если значения в поле попадают в диапазон от 0 до 10, то при интервальном квантовании на 10 интервалов мы получим отрезки от 0 до 1, от 1 до 2 и т. д. При этом 0 будет относиться к первому интервалу, 1 – ко второму, а 9 и 10 – к десятому. Квантильное квантование подразумевает разбиение диапазона значений на равновероятные интервалы, то есть на интервалы, содержащие равное (или, по крайней мере, примерно равное) количество значений. Нарушение равенства возможно только тогда, когда значения, попадающие на границу интервала, встречаются в наборе данных несколько раз. В этом случае все они относятся к одному определенному интервалу и могут вызвать «перевес» в его сторону.
Настройки.
Для настройки квантования требуется для каждого используемого при разбиении поля указать:
1. Способ разбиения – по интервалам или по квантилям;
2. Количество интервалов;
3. Значение, подставляемое вместо значения интервала – номер интервала, нижняя граница, верхняя граница, середина интервала, метка интервала или автоматическая метка интервала. Если выбрана метка интервала, то нужно еще задать для каждого интервала метку, то есть его наименование.
4. Вид данных – дискретный или непрерывный.
После окончания автоматического расчета границ интервалов на основе имеющихся данных можно вручную изменить вычисленные границы. При этом нижняя граница любого интервала не может быть больше верхней, хотя совпадать они могут. Ручное изменение границ может потребоваться в тех случаях, когда исходная выборка данных не отражает всего диапазона значений, которые может принимать исследуемая величина на практике.
5. Сортировка
С помощью сортировки можно изменять порядок следования записей в исходной выборке данных в соответствии с заданным пользователем алгоритмом сортировки. Результатом выполнения сортировки будет новая выборка данных, записи в которой будут следовать в соответствии с заданными параметрами сортировки.
Если сортировка производится по одному полю, то все записи исходной выборки располагаются в порядке возрастания или убывания его значений. Если сортировка производится по двум или более полям, то действует следующий алгоритм:
1. Сначала записи сортируются в заданном порядке для первого поля.
2. В каждом наборе одинаковых значений первого поля записи располагаются в заданном порядке для второго поля.
И так далее для всех полей, подлежащих сортировке.
В окне настройки параметров сортировки представлен список условий сортировки, в котором содержатся две графы:
• Имя поля – содержит имена полей, по которым следует выполнить сортировку.
• Порядок сортировки – содержит порядок сортировки данных в соответствующем поле – по возрастанию или по убыванию.
6. Слияние
Обработчик «Слияние» предназначен для соединения двух наборов данных по ключевым полям. Для этого необходимо задать общие поля двух таблиц. Предполагается, что в присоединяемом наборе данных есть поля, которые соответствуют полям в исходной таблице, это и есть ключевые поля или поля связи. Кроме того, в таблицах могут быть поля, которые имеются только во входящем или присоединяемом наборе данных. Такие поля можно добавить к результирующей выборке, образующейся после слияния.
Для слияния двух узлов необходимо выполнить следующие шаги:
• В Мастере обработки определить узел связи, с которым будет осуществляться соединение, и определить тип слияния данных. При слиянии двух узлов возможны следующие варианты:
◦ Объединение. Объединение включает в результирующий набор данных все строки из входящего набора данных, дополненные снизу строками из связываемого набора данных.
◦ Внутреннее соединение. Внутреннее соединение включает в результат все строки, для которых найдено совпадение ключевых полей входящего и связываемого набора данных.
◦ Внешнее левое соединение. Внешнее левое соединение включает в результат все строки из входящего набора данных, дополненные значениями столбцов из связываемого набора данных, которые совпадают по ключевым полям.
◦ Внешнее правое соединение. Внешнее правое соединение включает в результат все строки из связываемого набора данных, дополненные значениями столбцов из входящего набора данных, которые совпадают по ключевым полям.
◦ Полное внешнее соединение. Полное внешнее соединение включает в результат все строки из входящего и связываемого наборов данных. Если ключевые поля совпадают, то значения столбцов заполняются реальными значениями. В несовпадающих строках столбцы заполняются пустыми значениями (null - значениями).
• На следующем шаге в Мастере обработки необходимо указать связь между наборами данных, каким полям из входящего набора соответствуют поля в связанной таблице.
• Следующим шагом в Мастере обработки необходимо указать поля, которые должны быть включены в результирующий выходной набор данных. Для этого щелчком левой кнопки мыши нужно установит галочку напротив метки поля, которое необходимо включить в выходной набор данных. На этой же странице Мастера можно задать имена полей в результирующей таблице.
• На последнем этапе в Мастере обработки существует возможность описания узла «Слияние», где можно указать детализированную информацию о соединяемых источниках данных и т.д.
Компонент «Слияние» необходим, когда к информации, содержащейся в некотором наборе данных, необходимо добавить дополнительную информацию из другого набора данных.
7. Замена данных
В результате выполнения этой операции производится замена значений по таблице подстановки, которая содержит пары, состоящие из исходного значения и выходного значения. Например, 0 - «красный», 1 - «зеленый», 2 - «синий». Или «зима» - «январь», «весна» - «апрель», «лето» - «июль», «осень» - «октябрь». Для каждого значения исходного набора данных ищется соответствие среди исходных значений таблицы подстановки. Если соответствие найдено, то значение меняется на соответствующее выходное значение из таблицы подстановки. Если значение не найдено в таблице, оно может быть либо заменено значением, указанным для замены «по умолчанию», либо оставлено без изменений (если такое значение не указано). Кроме того, можно указать значения, которые нужно вставить вместо пустых ячеек.
8. Группировка
Назначение.
Аналитику для принятия решения часто необходима сводная информация, т.е. сгруппированные данные. Совокупные данные намного более информативны, особенно если их можно получить в разных разрезах. В Deductor Studio предусмотрен инструмент, реализующий сбор сводной информации - «Группировка». Группировка позволяет объединять записи по полям-измерениям, агрегируя данные в полях-фактах для дальнейшего анализа.
Настройки.
Для настройки группировки требуется указать, какие поля являются измерениями, а какие - фактами. Для каждого факта требуется указать функцию агрегации.
Стандартные варианты агрегации: сумма, среднее, максимум, минимум, количество. Количество - это число агрегируемых значений фактов для каждой комбинации измерений. Для строковых полей в качестве функции агрегации можно указать только максимум, минимум и количество. При этом максимум (минимум) двух строк рассчитывается посимвольным сравнением. Сначала сравниваются два первых символа строк. Если коды этих символов одинаковы, сравниваются вторые символы и т.д. Как только в строках появится первый несовпадающий символ, функция агрегации принимает значение строки, код символа в которой оказался больше (меньше).
Помимо стандартных вариантов агрегации можно еще рассчитать медиану, выбрать первый и последний элемент в группе. Медиана рассчитывается следующим образом: все строки, попавшие в группу, сортируются по факту, по которому рассчитывается медиана, и из отсортированного списка выбирается средний по расположению в списке элемент. Медиана – это альтернатива среднему значению, устойчивое к аномальным выбросам. Первый и последний элемент в группе выбирается в соответствии с естественным порядком, в котором эти элементы следуют в исходном наборе данных.
Принцип работы.
В таблице данных ищутся записи с одинаковыми значениями полей, являющихся измерениями. Значения полей, выбранных как факты применяются функции агрегации.
9. Разгруппировка
Назначение.
Группировка используется для объединения фактов по каким-либо измерениям. При этом под объединением понимается применение некоторой функции агрегации. Если в исходном наборе данных присутствовали какие-либо другие измерения, то теряется информация о значениях фактов в разрезе этих измерений. Алгоритм разгруппировки позволяет восстановить эти факты, но их значения восстанавливаются не точно, а пропорционально известному вкладу в сгруппированные значения.