Как нормализовать данные в Python

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

Нормализация также делает процесс обучения менее чувствительным к масштабу функций. Это приводит к улучшению коэффициентов после тренировки.

Этот процесс повышения пригодности функций для обучения путем изменения масштаба называется масштабированием функций.

Формула нормализации приведена ниже:

Normalization

Мы вычитаем минимальное значение из каждой записи, а затем делим результат на диапазон. Где диапазон – это разница между максимальным значением и минимальным значением.

Чтобы найти выбросы в наборе данных, мы используем следующие шаги:

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

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

Диапазон для квартилей

Шаг 1. Рассчитайте квартили

Если вы разделите данные на кварталы, каждый из этих наборов называется квартилем. Самые низкие 25% чисел в диапазоне составляют 1-й квартиль, следующие 25% — 2-й квартиль и т. Д. Мы делаем этот шаг в первую очередь, потому что наиболее широко используемое определение выброса — это точка данных, которая более чем на 1,5 интерквартильных диапазонов (IQR) ниже 1-го квартиля и на 1,5 межквартильных диапазонов выше 3-го квартиля. Чтобы определить эти значения, мы сначала должны выяснить, каковы квартили.

Excel предоставляет функцию КВАРТИЛЬ для расчета квартилей. Для этого требуются две части информации: массив и кварта.

Массив — это диапазон значений, которые вы оцениваете. Кварта — это число, которое представляет квартиль, который вы хотите вернуть (например, 1 для 1-го квартиля, 2 для 2-го квартиля и т. Д.).

Примечание. В Excel 2010 Microsoft выпустила функции QUARTILE.INC и QUARTILE.EXC как усовершенствования функции QUARTILE. QUARTILE более обратно совместима при работе с несколькими версиями Excel.

Вернемся к нашему примеру таблицы.

Диапазон для квартилей

Для вычисления 1-го квартиля мы можем использовать следующую формулу в ячейке F2.

Когда вы вводите формулу, Excel предоставляет список параметров для аргумента кварты.

Чтобы вычислить 3-й квартиль, мы можем ввести формулу, аналогичную предыдущей, в ячейку F3, но используя тройку вместо единицы.

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

Значения 1-го и 3-го квартилей

Шаг второй: оцените межквартильный размах

Межквартильный диапазон (или IQR) — это средние 50% значений в ваших данных. Он рассчитывается как разница между значением 1-го квартиля и значением 3-го квартиля.

Мы собираемся использовать простую формулу в ячейке F4, которая вычитает 1-й квартиль из 3-го квартиля:

Теперь мы можем видеть наш межквартильный размах.

Межквартильное значение

Шаг третий: верните нижнюю и верхнюю границы

Нижняя и верхняя границы — это наименьшее и наибольшее значение диапазона данных, который мы хотим использовать. Любые значения, меньшие или большие, чем эти связанные значения, являются выбросами.

Мы рассчитаем нижний предел в ячейке F5, умножив значение IQR на 1,5, а затем вычтя его из точки данных Q1:

Формула Excel для значения нижней границы

Примечание. Скобки в этой формуле не нужны, потому что часть умножения будет вычисляться перед частью вычитания, но они облегчают чтение формулы.

Чтобы вычислить верхнюю границу в ячейке F6, мы снова умножим IQR на 1,5, но на этот раз добавим его к точке данных Q3:

Нижняя и верхняя граница значений

Шаг четвертый: выявление выбросов

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

Мы будем использовать Функция ИЛИ для выполнения этого логического теста и отображения значений, соответствующих этим критериям, введите следующую формулу в ячейку C2:

Функция ИЛИ для выявления выбросов

Затем мы скопируем это значение в наши ячейки C3-C14. Значение ИСТИНА указывает на выброс, и, как видите, в наших данных их два.

Способ 2: функция РАНГ.СР

Второй функцией, которая производит операцию ранжирования в Экселе, является РАНГ.СР. В отличие от функций РАНГ и РАНГ.РВ, при совпадении значений нескольких элементов данный оператор выдает средний уровень. То есть, если два значения имеют равную величину и следуют после значения под номером 1, то им обоим будет присвоен номер 2,5.

Синтаксис РАНГ.СР очень похож на схему предыдущего оператора. Выглядит он так:

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

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

Переход в Мастер функций в Microsoft Excel

Переход к аргументам функции РАНГ.СР в Microsoft Excel

  • Число (адрес ячейки содержащей элемент, уровень которого следует определить);
  • Ссылка (координаты диапазона, ранжирование внутри которого выполняется);
  • Порядок (необязательный аргумент).

Аргументы функции РАНГ.СР в Microsoft Excel

Результат вычисления функции РАНГ.СР в Microsoft Excel

Ранжирование с помощью функции РАНГ.СР в Microsoft Excel

Как видим, в Экселе существует две функции для определения ранжирования конкретного значения в диапазоне данных: РАНГ.РВ и РАНГ.СР. Для более старых версий программы используется оператор РАНГ, который, по сути, является полным аналогом функции РАНГ.РВ. Главное отличие формул РАНГ.РВ и РАНГ.СР состоит в том, что первая из них указывает наивысший уровень при совпадении значений, а вторая выводит средний показатель в виде десятичной дроби. Это единственное различие между этими операторами, но его нужно учитывать при выборе того, какой именно функцией пользователю лучше воспользоваться.

ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

Помимо этой статьи, на сайте еще 12049 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Читайте также:  Как сделать диаграмму с процентами в Excel

ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

3НФ — третья нормальная форма

Третья нормальная форма (3НФ) означает, что выполнены требования 2НФ, при этом в между атрибутами отношения нет транзитивных зависимостей.

Что такое транзитивная зависимость легко понять на примере уже упоминавшейся выше таблицы продаж — типичного примера ассоциативной таблицы.

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

  • «Идентификатор продажи» => «Номер документа»
  • «Идентификатор продажи» => «Код валюты»
  • «Номер документа» => «Код валюты»

Эти зависимости транзитивны: каждая продажа однозначно определяет свой документ-основание и расчётную валюту, однако, валюта определяется ещё и документом.

Результатом нарушения 3НФ является избыточность хранения и необходимость обновления данных в связанной таблице. Так, если вы оставите колонку «Код валюты» в таблице продаж, то при изменении валюты документа придётся также обновлять все связанные с ним строки продаж.

Необязательные аргументы

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

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

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

Аргументы должны быть введены в правильном порядке.

Чтобы протестировать, присутствует ли опциональный аргумент в процедуре, мы используем функцию IsMissing . Эта функция совместима только с некоторыми типами функций (типа Variant) и это является решающим, так как тип необязательно аргументов не был указан в объявлении (необъявленный тип = Variant).

Здесь есть пример, который использует два фрагмента кода, которые рассматривались выше:

См. рисунок ниже (пример 1):

Использование оператора ВЫБОР

Функция ВЫБОР относится к категории операторов «Ссылки и массивы». Её целью является выведение определенного значения в указанную ячейку, которому соответствует номер индекса в другом элементе на листе. Синтаксис этого оператора следующий:

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

Следующая группа аргументов «Значение». Она может достигать количества 254 элементов. При этом обязательным является аргумент «Значение1». В данной группе аргументов указываются те значения, которым будет соответствовать номер индекса предыдущего аргумента. То есть, если в качестве аргумента «Номер индекса» выступает число «3», то ему будет соответствовать значение, которое внесено, как аргумент «Значение3».

В качестве значений могут выступать разнообразные виды данных:

  • Ссылки;
  • Числа;
  • Текст;
  • Формулы;
  • Функции и т. д.

Теперь давайте рассмотрим конкретные примеры применения данного оператора.

Пример 1: последовательный порядок расположения элементов

Давайте посмотрим, как действует данная функция на простейшем примере. У нас имеется таблица с нумерацией от 1 до 12. Нужно согласно данным порядковым номерам с помощью функции ВЫБОР указать наименование соответствующего месяца во второй колонке таблицы.

    Выделяем первую пустую ячейку столбца «Наименование месяца». Кликаем по значку «Вставить функцию» около строки формул.

Переход в Мастер функций в Microsoft Excel

Переход к аргументам функции ВЫБОР в Microsoft Excel

После этого нам предстоит вручную вбить в группу полей «Значение» наименование месяцев. Причем каждому полю должен соответствовать отдельный месяц, то есть, в поле «Значение1» записываем «Январь», в поле «Значение2»«Февраль» и т. д.

Окно аргументов функции ВЫБОР в Microsoft Excel

Результат функции ВЫБОР в Microsoft Excel

Маркер заполнения в Microsoft Excel

Диапазон заполнен значениями функции ВЫБОР в Microsoft Excel

Пример 2: произвольный порядок расположения элементов

В предыдущем случае мы применили формулу ВЫБОР, когда все значения номеров индекса были расставлены по порядку. Но как работает данный оператор в случае, если указанные значения перемешаны и повторяются? Давайте рассмотрим это на примере таблицы с успеваемостью школьников. В первом столбце таблицы указана фамилия ученика, во втором оценка (от 1 до 5 баллов), а в третьем нам предстоит с помощью функции ВЫБОР дать данной оценке соответствующую характеристику («очень плохо», «плохо», «удовлетворительно», «хорошо», «отлично»).

    Выделяем первую ячейку в колонке «Описание» и переходим при помощи того способа, о котором уже шел разговор выше, в окно аргументов оператора ВЫБОР.

В поле «Номер индекса» указываем ссылку на первую ячейку столбца «Оценка», в которой содержится балл.

Группу полей «Значение» заполняем следующим образом:

  • «Значение1»«Очень плохо»;
  • «Значение2»«Плохо»;
  • «Значение3»«Удовлетворительно»;
  • «Значение4»«Хорошо»;
  • «Значение5»«Отлично».

Окно аргументов функции ВЫБОР для определения баллов в программе Microsoft Excel

Значение оценки при помощи оператора ВЫБОР выведено в программе Microsoft Excel

Значение всех оценок при помощи оператора ВЫБОР выведено в программе Microsoft Excel

Пример 3: использование в комбинации с другими операторами

Но гораздо продуктивнее оператор ВЫБОР можно использовать в комбинации с другими функциями. Посмотрим, как это делается на примере применения операторов ВЫБОР и СУММ.

Имеется таблица реализации продукции по торговым точкам. Она разбита на четыре столбца, каждый из которых соответствует определенной торговой точке. Выручка указана отдельно за определенную дату построчно. Наша задача — сделать так, чтобы после ввода номера торговой точки в определенную ячейку листа отображалась сумма выручки за все дни работы указанного магазина. Для этого мы и будем использовать комбинацию операторов СУММ и ВЫБОР.

    Выделяем ячейку, в которой будет выводиться результат в виде суммы. После этого щелкаем по уже знакомому нам значку «Вставить функцию».

Вставить функцию в Microsoft Excel

Переход в окно аргументов функции СУММ в Microsoft Excel

То есть, аргументами данного оператора обычно являются либо числа, либо, еще чаще, ссылки на ячейки, где содержаться числа, которые необходимо просуммировать. Но в нашем случае в виде единственного аргумента выступит не число и не ссылка, а содержимое функции ВЫБОР.

Переход к другим функциям в Microsoft Excel

Мастер функций в программе Microsoft Excel

В поле «Значение1» нужно вписать координаты столбца «1 торговая точка». Сделать это довольно просто. Устанавливаем курсор в указанное поле. Затем, зажав левую кнопку мыши, выделяем весь диапазон ячеек столбца «1 торговая точка». Адрес тут же отобразится в окне аргументов.

Читайте также:  Как закрепить строку и столбец в Excel при прокрутке

Аналогичным образом в поле «Значение2» добавляем координаты столбца «2 торговая точка», в поле «Значение3»«3 торговая точка», а в поле «Значение4»«4 торговая точка».

Окно аргументов функции ВЫБОР в программе Microsoft Excel

Ошибочный итог в Microsoft Excel

Сумма отобразилась в программе Microsoft Excel

Важно учесть, что вводить можно только числа от 1 до 4, которые будут соответствовать номеру торговой точки. Если вы введете любое другое число, то формула опять выдаст ошибку.

Как видим, функция ВЫБОР при правильном её применении, может стать очень хорошим помощником для выполнения поставленных задач. При использовании её в комбинации с другими операторами возможности существенно увеличиваются.

ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

Помимо этой статьи, на сайте еще 12049 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Пример [ править ]

Приведем пример демонстрирующий работу пакетной нормализации. Рассмотрим задачу распознавания рукописных цифр на известном датасете MNIST [5] . Для решения задачи будет использоваться обычная нейронная сеть с [math]3[/math] скрытыми полносвязными слоями по [math]100[/math] узлов в каждом. Функция активации — ReLU. Выходной слой содержит [math]10[/math] узлов. Размер пакета равен [math]60[/math] . Сравниваются две одинаковые модели, но в первой перед каждым скрытым слоем используется пакетная нормализация, а во второй — нет. Темп обучения равен [math]0.01[/math] . Веса инициализированы значениями с малой дисперсией.

На Рисунке [math]5[/math] изображены два графика, показывающие разницу между моделями. Как видно, обе модели достигли высокой точности, но модель с использованием пакетной нормализации достигла точности более [math]90\%[/math] быстрее, почти сразу, и достигла максимума, примерно, уже на [math]10000[/math] итераций. Однако, модель без пакетной нормализации достигла скорости обучения примерно [math]510[/math] пакетов в секунду, а модель с использованием пакетной нормализации — [math]270[/math] . Однако, как можно видеть, пакетная нормализация позволяет выполнить меньшее количество итераций и, в итоге, сойтись за меньшее время.

На Рисунке [math]6[/math] изображен график, сравнивающий точно такие же модели, но с использованием сигмоиды в качестве функции активации. Такая конфигурация моделей требует большего времени, чтобы начать обучение. В итоге, модель обучается, но на это потребовалось более [math]45000[/math] итераций, чтобы получить точность более [math]80\%[/math] . При использовании пакетной нормализации получилось достичь точность более [math]90\%[/math] примерно за [math]1000[/math] итераций.

Метод 7. Использование метода z-оценки

Следующий метод, который мы хотим обсудить, — это метод z-оценки. Он преобразует информацию в распределение. Метод z-оценки вычисляет среднее значение каждого столбца, затем вычитает его из каждого столбца и, наконец, делит на стандартное отклонение. Таким образом мы получаем данные, нормализованные между -1 и 1.

В ячейке номер [115] мы создаем фрейм фиктивных данных и выводим его.

Далее, в ячейке [117], мы вычисляем среднее значение столбцов и вычитаем его из каждого столбца. Затем делим значение столбца на стандартное отклонение.

В итоге, в ячейке номер [118] мы получаем и выводим на экран данные, нормализованные в диапазоне от -1 до 1.

Реляционная база данных

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

Реляционная база данных – это упорядоченная информация, связанная между собой определёнными отношениями.

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

Примечание! Если Вас интересует язык SQL, рекомендую пройти мой онлайн-курс по основам SQL, который ориентирован на изучение SQL как стандарта, таким образом, Вы сможете работать в любой системе управления базами данных. Курс включает много практики: онлайн-тестирование, задания и многое другое.

Указание формата данных

На первом шаге выбираем формат данных:

Шаг 1. Указание формата данных

На выбор есть 2 варианта формата данных:

  • С разделителями — разделение происходит по знаку-разделителю (пробел, запятая, точка и т.д.);
  • Фиксированная ширина — разделение происходит по фиксированной ширине столбца.

Функция ТРАНСП – транспонирование диапазонов ячеек в Excel

Один из самых интересных и функциональных методов транспонирования таблиц в Excel – это функция ТРАНСП. С ее помощью можно превратить горизонтальный диапазон данных в вертикальный или же осуществить обратную операцию. Давайте разберемся в том, как с ней работать.

Синтаксис функции

Синтаксис этой функции невероятно прост: ТРАНСП(массив). То есть, нам необходимо использовать только один аргумент, который являет собой набор данных, который нужно перевести в горизонтальный или вертикальный вид в зависимости от того, какой был изначально.

Транспонирование вертикальных диапазонов ячеек (столбцов)

Предположим, у нас есть колонка с диапазоном B2:B6. Они могут содержать как готовые значения, так и формулы, которые возвращают результат в эти ячейки. Нам не столь сильно важно, транспонирование возможно в обоих случаях. После применения этой функции длина строки будет такой же самой, как и длина столбца исходного диапазона.

Функция транспонирования в Excel

Последовательность действий для использования этой формулы следующая:

  1. Выделяем строку. В нашем случае она имеет длину в пять ячеек.
  2. После этого перемещаем курсор на строку формул, и там вводим формулу =ТРАНСП(B2:B6).
  3. Нажимаем комбинацию клавиш Ctrl + Shift + Enter.

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

Читайте также:  Функция МВСД для определения скорости обращения денег в Excel

Транспонирование горизонтальных диапазонов ячеек (строк)

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

  1. С помощью мыши выделяем эту колонку. Также можно воспользоваться клавишами на клавиатуре Ctrl и стрелочку вниз, предварительно нажав на самую верхнюю ячейку этой колонки.
  2. После этого записываем формулу =ТРАНСП(B10:F10) в строку формул.
  3. Записываем ее, как формулу массива, с помощью комбинации клавиш Ctrl + Shift + Enter.

Транспонирование с помощью Специальной вставки

Еще один возможный вариант транспонирования – использование функции «Специальная вставка». Это уже не оператор, который будет использоваться в формулах, но это также один из популярных методов превращения столбцов в строки и наоборот.

Эта опция находится на вкладке «Главная». Чтобы получить к ней доступ, необходимо найти группу «Буфер обмена», и там найти кнопку «Вставить». После этого открыть меню, которое находится под этой опцией и выбрать пункт «Транспонировать». Перед этим нужно выделить диапазон, который нужно выделить. В результате, мы получим такой же диапазон, только зеркально противоположный.

Функция транспонирования в Excel

6.3.2. Нелинейное преобразование

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

Квантильные преобразования помещают все функции в одно и то же желаемое распределение на основе формулы $G^<-1>(F(X))$ где $F$ — кумулятивная функция распределения признака и $G^<-1>$ функция квантиля требуемого распределения выходного $G$. В этой формуле используются два следующих факта: (i) если $X$ случайная величина с непрерывной кумулятивной функцией распределения $F$ тогда $F(X)$ равномерно распределяется по [0,1]; (ii) еслиU — случайная величина с равномерным распределением на $[0,1]$ тогда $G^<−1>(U)$ имеет распространение $G$. Выполняя ранговое преобразование, квантильное преобразование сглаживает необычные распределения и меньше подвержено влиянию выбросов, чем методы масштабирования. Однако это искажает корреляции и расстояния внутри и между объектами.

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

6.3.2.1. Отображение в равномерное распределение

QuantileTransformer обеспечивает непараметрическое преобразование для отображения данных в равномерное распределение со значениями от 0 до 1:

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

Это можно подтвердить на независимом тестовом наборе с аналогичными замечаниями:

6.3.2.2. Отображение в гауссово распределение

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

PowerTransformer в настоящее время предоставляет два таких преобразования мощности, преобразование Йео-Джонсона и преобразование Бокса-Кокса.

Преобразование Йео-Джонсона определяется следующим образом:

в то время как преобразование Бокса-Кокса задается следующим образом:

Бокс-Кокса можно применять только к строго положительным данным. В обоих методах преобразование параметризуется $\lampda$, который определяется путем оценки максимального правдоподобия. Вот пример использования Box-Cox для сопоставления выборок, взятых из логнормального распределения, в нормальное распределение:

Хотя в приведенном выше примере standardize параметр установлен на False , PowerTransformer по умолчанию будет применяться нормализация с нулевым средним и единичной дисперсией к преобразованному результату.

Ниже приведены примеры Бокса-Кокса и Йео-Джонсона, примененные к различным распределениям вероятностей. Обратите внимание, что при применении к определенным распределениям степенные преобразования достигают результатов, очень похожих на гауссову, но с другими они неэффективны. Это подчеркивает важность визуализации данных до и после преобразования.

../_images/sphx_glr_plot_map_data_to_normal_0011.png

Также можно сопоставить данные с нормальным распределением, используя QuantileTransformer настройку output_distribution=’normal’ . Используя предыдущий пример с набором данных радужной оболочки:

Таким образом, медиана входа становится средним значением выхода с центром в 0. Нормальный выход обрезается так, чтобы минимум и максимум входа — соответствующие квантилям 1e-7 и 1 — 1e-7 соответственно — не становились бесконечными при преобразование.

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

…Keep every entity in an object stored with an ID as a key, and use IDs to reference it from other entities, or lists

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

Для того, чтобы извлекать данные для компонентов у нас есть селекторы, которые как раз нормализуют данные. И в моём примере нормализация происходила бы так:

Я написал функцию-селекотор, которая нормализует для меня данные. При этом я больше не передаю ненужные пропсы (sortParam) в компонент. Таким способом документация redux предлагает нам нормализовывать наши данные.

Что такое составной ключ?

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

В нашей базе данных есть два человека с одинаковым именем Роберт Фил, но они живут в разных местах.

Что такое нормализация? 1NF, 2NF, 3NF и BCNF с примерами

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

Давайте перейдем во вторую нормальную форму 2NF

Ссылка на основную публикацию