Агрегация и группирование.
- 18.12.22 г.
- 9772225665000    22035


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

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

Все дело в том, что агрегация понимается двояко.
    Первое общепризнанное определение: агрегация – расчет результирующих значений; суть процесса агрегации – преобразовать большой набор строк в единственное значение (https://cloud.yandex.ru/docs/datalens/concepts/aggregation-tutorial ).
    Второе общепризнанное определение: агрегация, или агрегирование, – это процесс объединения элементов в одну систему (https://ru.wikipedia.org/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B0%D1%86%D0%B8%D1%8F ).
    При этом можно встретить такое частное понимание: агрегация – передача элемента в систему в качестве параметра.
    Понятно, что имеют место два разных определения, и именно это положение в науках не только не исследовано само по себе, но и даже просто не оценено, хотя, как мы покажем далее, приводит к весьма существенным выводам, касающимся осмысления и формирования ряда вычислительных процессов и новых информационных технологий – диалектических информационных технологий.
    Рассмотрим обозначенные положения с учетом их вычислительных аспектов (т.е. применительно к программным функциям) в целях анализа агрегации и подготовки основы для последующих рассуждений об информационных технологиях и их методах.


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

Итак, агрегация приводит к вычислению общего параметра (совокупности) данных.
    Обычно это минимальное значение, максимальное значение, среднее арифметическое значение, медиана, сумма и т.д.

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

Имеют место такие три способа применения функций агрегирования, когда результирующее значение вычисляется
– для одной группы данных,
– для нескольких групп данных (обычно рассчитывают и возвращают результирующее значение отдельно для каждой группы, столбца),
– для одной или нескольких подгрупп данных.
    Например, имеются данные о пассажирах поезда дальнего следования: ФИО, пол, станция посадки, станция назначения, цена билета, категория посадочного места (плацкарт, купе, СВ), год рождения, семейное положение и т.п.
    Можно посчитать количество мужчин.
    Можно посчитать количество мужчин, купивших билеты в СВ, и количество мужчин старше 30 лет.
    Можно посчитать количество женатых мужчин, старше 30 лет и купивших билеты в СВ.

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

Агрегированные значения необходимы при изучении взаимосвязей между различными аспектами объекта (переменными) на обобщенном уровне, а также связей между общей (агрегированной) переменной и характеристикой на частном (индивидуальном) уровне.


Б. Вычисление заданного значения подразумевает структурирование данных по заданному признаку – их группирование, причем первое без второго невозможно (хотя можно, конечно же, рассматривать и обрабатывать каждое значение отдельно, но все же проще и нагляднее сначала провести группировку).
    Поэтому агрегация часто определяется также и как способ группирования данных, что привносит новые смыслы в ее понимание.
    Дело в том, что в общем случае речь уже идет не о вычислении агрегируемого значения, а о группировании, вычленении, структурировании данных, в отношении которых вычисляется агрегируемое значение (но могут осуществляться и другие действия структурного, организационного характера и т.п.). Именно поэтому при описании тех или иных функций агрегирования (программных функций), связанных с обработкой данных, понятия «агрегация» и «группирование» понимаются синонимично и совокупно. Вообще это имеет смысл, так как для того, что бы вычислить агрегируемое значение, необходимо акцентировать (выбрать) совокупность данных, которую оно будет отражать. Однако группирование, или структурирование данных, – это выделение подмножества данных по какому-либо критерию, параметру, а не вычисление агрегируемого значения. Поэтому агрегирование и группирование нельзя путать: это операции, принадлежащие разным родам действий. Например, их нельзя понимать в единстве, хотя их целесообразно осуществлять совместно. Это принципиально важное положение, в целом понятное, но без его акцентирования происходит смешение или даже взаимная подмена подобных или похожих действий, функций агрегирования (программных функций), часто приводящих к неоднозначностям и необъяснимым ошибкам в вычислениях в обычных информационных технологиях (см. «Сезон 2022/2023 гг. открыт!», п. А).

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


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


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

Для определенности рассмотрим форматы и способы реализации функций агрегирования, которые используются применительно к функции groupby библиотеки pandas. Всего применяются четыре функции, имеющие различные синтаксисы: agg, transform, apply и filter. (С другими функциями этой библиотеки функции агрегирования используются в другом формате (как аргумент).)

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

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

Наиболее распространенными встроенными функциями агрегирования являются базовые математические и статистические функции: сумма, среднее значение, медиана, минимум, максимум, стандартное отклонение, дисперсия, среднее абсолютное отклонение и др.
    С точки зрения использования (или учета) значения NaN более сложным, чем простые математические вычисления, является подсчет, обычно организуемый тремя функциями: count(), unique() и size().
    Их уникальными характеристиками являются следующие:
– при их применении к конкретному столбцу для него образуется нескольких соответствующих подгрупп (столбцов) данных,
– особенное использование значения NaN.

Ряд функций позволяет реализовывать несколько агрегаций по столбцам, что обеспечивает следующие возможности:
– передать функцию и применить ее к каждому отдельному набору данных,
– разделять данные в соответствии с требуемыми условиями
    Можно использовать различные функции и возможности их реализации:
– служебные функции (например, сводная статистика по столбцу),– пользовательские функции,
– отдельные наборы функций для каждого столбца,
– графические возможности.
– функции агрегирования различных библиотек.

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


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


Е. В завершении статьи сделаем ряд замечаний и выводов.

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

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

Оба обсужденных выше понятия агрегации тесно связаны, но не концептуально, не по сути исполнения, а организационно.
    Это в целом очевидно, выглядит простым, поэтому в науках и информационных технологиях не было исследовано.
    А в диалектике этому уделяется особое внимание, так как обозначенные вычисление и структурирование оказываются опосредованными, что определяет сверхсуммарный эффект, уже найденный эмпирическим образом: это анализ данных и поиск скрытых знаний. Однако в науках и информационных технологиях до сих пор эти позиции рассматриваются аналитически, «вычислительно», поэтому они несущественны, не позволяют усмотреть в данных существо объекта и обусловливают ряд ошибок.

Более того, при рассмотрении агрегации данных было установлено ее различие: вычисление заданного значения совокупности данных и структурирование данных по заданному признаку (их группирование). Однако на практике имеет место и другой диалектический аспект – который позволяет рассматривать агрегирование данных в частности и информационную технологию вообще как способы порождения новых данных; именно этот вывод является главным, причем не только для настоящей статьи, но и для понимания  информационную технологий в целом, что упущено в науках, но исследуется и уже широко используется в современной диалектике.

 

Дискуссии и конференции. Методы.