Меню Рубрики

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

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

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

Наиболее распространенный способ нормализации входных и выходных переменных – линейная нормализация.

Примем следующие обозначения:

– xik , yjk – i -е входное и j -е выходное значения k -го примера исходной выборки в традиционных единицах измерения, принятых в решаемой задаче;

– соответствующие им нормализованные входное и выходное значения;

– N – количество примеров обучающей выборки.

Тогда переход от традиционных единиц измерения к нормализованным и обратно с использованием метода линейной нормализации осуществляется с использованием следующих расчетных соотношений:

– при нормализации и денормализации в пределах [0, 1]:

; (1)

; (2)

– при нормализации и денормализации в пределах [–1, 1]:

;

,

;

.

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

.

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

– при нормализации и денормализации в пределах [0, 1]:

;

,

где xc i, yc j – центры нормализуемых интервалов изменения входной и выходной переменных:

;

– при нормализации и денормализации в пределах [–1, 1]:

;

.

Параметр aвлияет на степень нелинейности изменения переменной в нормализуемом интервале. Кроме того, при использовании значений a Рис. 2. Влияние параметра на график функции нелинейной нормализации

На рис. 2 показаны случаи нелинейной нормализации в пределах [0; 1] с использованием функции гиперболического тангенса с параметра ми a , равными, соответственно, 0,3, 0,5, 1,0. Очевидно, что чем меньше значение параметра a , тем более полого выглядит нормализованная зависимость и больше ширина коридора экстраполяции.

источник

Блог компании Даталитика. Интересное об искусственном интеллекте, машинном обучении, больших данных и ИТ-консалтинге

В нашей статье мы будем использовать язык программирования python с сопутствующими ему библиотеки (sklearn, matplotlib, seaborn) и в качестве среды для работы jupyter notebook. Цель текущего поста — показать общие подходы к подготовке данных. То есть, те манипуляции, которые необходимо совершить перед загрузкой данных в модель машинного обучения. В идеальном мире у вас будет абсолютно чистый датасет без выбросов или пропущенных значений. Однако в реальном мире такие наборы данных встречаются крайне редко.
Далее будем рассматривать данные из Kaggle: «Mental Health in Tech Survey«.

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

Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших табличных данных. Выполнив построчно код ниже

Также было бы неплохо увидеть информацию о количестве каждого уникального значения для каждого столбца в наборе данных:

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

  • Столбец «age» содержит людей, которые еще не родились (отрицательные числа).
  • Столбец «age» содержит детей (например, 5-летнего возраста), которые вряд ли будут проводить опрос о своем рабочем месте.
  • Столбец «age» содержит возраст в 99999999999 лет
  • Существует 49 различных значений для «gender». Для примера, «Male» и «male» обозначают одно и то же, но в рассматриваются как две разные категории.
  • self_employed и work_interfere содержат несколько пропущенных полей.

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

Зачастую не существует шаблонных подходов к этой задаче, поскольку подходы во многом зависит от контекста и характера данных. Например, являются ли данные случайными пропусками или же есть скрытая связь между пропусками и некоторым другим записями в обучающем примере?
Один из способов простых способов решения этой проблемы — просто игнорировать или удалять строки, в которых отсутствуют данные, выбрасывая их из нашего анализа. Однако этот метод может быть плох из-за потери информации.
Еще один способ — это заполнение пропусков, где мы заменяем отсутствующее значение каким-либо образом. Базовые реализации просто заменят все отсутствующие значения средним, медианным, либо же константой.
Для начала выясним, что делать с пропущенными значениями, найденными в self_employed и work_interfere. В обоих случаях столбец содержит категориальные данные.
Возьмем следующий пример, который представляет собой небольшой набор данных, содержащий три признака (погодное условие, температуру и влажность), чтобы предсказать, могу ли я играть в теннис или нет.

id weather temperature humidity play tennis?
1 cloudy 60 NaN yes
2 rainy 75 80% NaN
3 cloudy NaN 50% no
4 sunny 65 40% yes

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

Scikit-learn предоставляет реализацию для обработки пропусков

Как упоминалось ранее, для «gender» 49 различных значений, и было подозрение, что некоторые из этих значений не следует рассматривать как разные категории. В конечном итоге для простоты мы разделим данные на 3 категории: мужчина, женщина и другие (сюда вошли те категории, которые можно однозначно исключить из предыдущих двух, для примера — трансгендер).

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

Как уже упоминалось ранее, оказалось, что для Age существуют значения, которые кажутся ошибочными. Такие как отрицательный возраст или чрезвычайно большие целые числа, могут негативно повлиять на результат работы алгоритма машинного обучения, и нам нужно будет их устранить.
Для этого возьмем нашу эвристическую оценку, в каком возрасте могут работать люди: от 14 до 100 лет. И все величины, не попадающие в этот диапазон, преобразуем в формат Not-a-Number.

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

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

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

Который возвращает следующие значения

Для кодирования этих данных, сопоставим каждое значение с числом.

Этот процесс известен как Label Encoding и sklearn может сделать это за нас.

Проблема с этим подходом заключается в том, что вы вводите порядок, который может отсутствовать в исходных данных. В нашем случае можно утверждать, что данные являются ранжированными («Very difficult» меньше «Somewhat difficult», который меньше «Very easy», который меньше «Somewhat easy»), но в большинстве своем категориальные данные не имеют порядка. Например, если у вас есть признак обозначающий вид животного, зачастую высказывание кошка больше собаки не имеет смысла. Опасность кодирования меток заключается в том, что ваш алгоритм может научиться отдавать предпочтение собак, кошкам из-за искусственных порядковых значений, введенных вами во время кодирования.

Общим решением для кодирования номинальных данных является one-hot-encoding.

Вместо того, чтобы заменять категориальное значение на числовое значение (кодирование меток), как показано ниже

id type numerical
1 cat 1
2 dog 2
3 snake 3
4 cat 1
5 dog 2
6 turtle 4
7 dog 2

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

id type is_cat is_dog is_snake is_turtle
1 cat 1
2 dog 1
3 snake 1
4 cat 1
5 dog 1
6 turle 1
7 dog 1

Вы можете выполнить one-hot-encoding непосредственно в Pandas или использовать sklearn, хотя sklearn немного более прозрачен, поскольку one-hot-encoding из него работает только для целых значений. В нашем примере (где входные данные представляют собой строки) нам нужно сначала выполнить кодировку меток, а затем one-hot-encoding.

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

ML алгоритмы, которые требуют нормализации данных:

Примечание: приведенные выше списки ни в коем случае не являются исчерпывающими, а просто служат примером.

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

  • Температура: от 270 K до 305 K
  • Влажность: от 0 до 1 (т. е. Влажность 30%, равная 0,3)
  • День года: от 0 до 365

Когда вы смотрите на эти значения, вы интуитивно нормализуете значения. Например, вы знаете, что увеличение на 0,5 (=50%) для влажности намного более значимо, чем увеличение на 0,5 для температуры. И если мы не будем нормализовать эти данные, наш алгоритм может научиться использовать температуру в качестве основного предиктора просто потому, что масштаб является наибольшим (и, следовательно, изменения в значениях температуры наиболее значительны для алгоритма). Нормализация данных позволяет всем признакам вносить одинаковый вклад (или, что более точно, позволяет добавлять признаки в зависимости от их важности, а не их масштаба).

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

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

Существует несколько различных методов нормализации данных, самые популярные из них:

Нормализация Min-max устанавливает наименьшее наблюдаемое значение равным 0, а наибольшее наблюдаемое значение — 1.

Для выполнения нормализации мы можем использовать функции в sklearn.

Несколько замечаний по этой реализации:
На практике вы можете выбрать только определенные столбцы. Например, вам не нужно нормализовать фиктивные переменные из one-hot-encoding.

Читайте также:  Как сдавать анализ на уровень хгч

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

источник

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

Давайте представим, что мы хотим проанализировать наши данные использую многофакторную ANOVA.

Дисперсионный анализ — метод в математической статистике, направленный на поиск зависимостей в экспериментальных данных путём исследования значимости различий в средних значениях. В отличие от t-критерия он позволяет сравнивать средние значения трёх и более групп. Его разработал Р. Фишер для анализа результатов экспериментальных исследований. В литературе также встречается обозначение ANOVA. Wikipedia

Основная статистика, это F критерий Фишера, на основе критических значений которой мы и будем отклонять Ho. Формула имеет следующий вид:

где MSbg -межгрупповая дисперсия, а MSwg — внутригрупповая дисперсия.

Метрика, которую мы пытаемся описать разным количеством факторов имеет следующее распределение:

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

Видно, что распределение очень далеко от нормального.

И на этом можно было бы остановиться и перестать что-либо делать. Но все-таки нам критично использовать именно этот критерий. Ниже мы разберем два подхода.а самом деле их больше, но пока рассмотрим наиболее популярные.

Вариант 1: влияние выбросов на распределение

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

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

Стоит понимать, что показанный тут пример очень грубый. Чаще всего нет необходимости чистить данные так, достаточно просто выборочно почистить выбросы.

Правило трёх сигм — практически все значения нормально распределенной случайной величины лежат в интервале

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

Проверим наблюдения по критерию согласия и получим следующий результат — наше распределение стало нормальным при W = 0.9943.

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

Вариант 2: использование метода трансформации по Боксу-Коксу.

Метод Бокса-Кокса позволят выбрать оптимальный способ нормализации данных исходя из значения нашей лямбды. Например, логарифм — это его частный случай нормализации при значении лямбда равной 0.

Исходя из значения Estimated Lambda 0.5 трансформация будет проходить при помощи извлечения квадратного корня. Про метод Бокса-Кокса отлично написано тут.

После применения трансформации мы получим следующее:

Наше распределение можно отнести к нормальному, что несомненно радует.

Допустим, теперь мы можем использовать ANOVA и проинтерпретировать результат.

Но стоит помнить, что мы будем оперировать не метрикой, а log-метрикой. С точки зрения бизнеса это будет совершенно непонятно и звучать более чем странно. Но это определенно позволит увеличить чувствительность критерия к этой метрике. Конечно, мы можем перевести значения в исходный вид, но эти результаты нельзя будет применять к тому, что мы получили.

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

источник

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

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

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

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

название формула использование
Стандартная оценка Икс — μ σ >> Нормализация ошибки , когда известны параметры населения. Работает хорошо для населения, которые обычно распределены
т-статистики Стьюдента Икс — Икс ¯ s >> >> Нормализация остатки когда популяционные параметры неизвестны (оценочно).
стьюдентизированной остаточного ε ^ я σ ^ я знак равно Икс я — μ ^ я σ ^ я > _ > > _ >> = — > _ > сигма> _ >>> Нормализация остатков , когда параметры оцениваются, в частности , в различных точках данных в регрессионном анализе .
Унифицированный момент μ К σ К > >>> Нормализация моменты, используя стандартное отклонение в качестве меры масштаба. σ
Коэффициент
вариации
σ μ >> Нормализация дисперсии, используя среднее значение как мера масштаба, в частности , для положительного распределения , таких как экспоненциальное распределение и распределение Пуассона . μ
масштабирование Функция Икс ‘ знак равно Икс — Икс мин Икс Максимум — Икс мин > _ >>> Масштабирование Функция используется для приведения всех значений в диапазоне [0,1]. Это также называется нормализацией единства на основе. Это можно обобщить , чтобы ограничить диапазон значений в наборе данных между любыми произвольными точками и использованием . a б Икс ‘ знак равно a + ( Икс — Икс мин ) ( б — a ) Икс Максимум — Икс мин \ справа) \ влево (ба \ справа)> -X _ >>>

Следует отметить , что некоторые другие коэффициенты, такие как отношение дисперсии к среднему- , также сделаны для нормализации, но не безразмерный: единицы не отменить, и , таким образом , отношение имеет единицы, и не масштабируются инвариантно. ( σ 2 μ ) > > \ справа)>

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

  • Назначение процентили . Это часто встречается на стандартных тестах. Смотрите также квантиль нормализации .
  • Нормализация путем добавления и / или умножения на константах , так значения находятся между 0 и 1. Это используется для функций плотности вероятности , с приложениями в таких областях, как физическая химия при назначении вероятностей | г | | 2 .

источник

Мы знаем, что Земля – это одна из 8 планет, которые вращаются вокруг Солнца. Солнце – это всего лишь звезда среди порядка 200 миллиардов звезд в галактике Млечный Путь. Очень тяжело осознать это число. Зная это, можно сделать предположение о количестве звезд во вселенной – приблизительно 4X10^22. Мы можем видеть около миллиона звезд на небе, хотя это всего лишь малая часть от всего фактического количества звезд. Итак, у нас появилось два вопроса:

  1. Что такое галактика?
  2. И какая связь между галактиками и темой статьи (кластерный анализ)

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

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

Заметка: Черная дыра – это центр галактики. Мы будем использовать похожую идею в отношении центроидов для кластерного анализа.

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

Для лучшего восприятия нарисуем график, где по оси x будет откладываться средняя продолжительность международных разговоров, а по оси y — средняя продолжительность локальных разговоров. Ниже график:

Заметка: Это похоже на анализ расположения звезд на ночном небе (здесь звезды заменены потребителями). В дополнение, вместо трехмерного пространства у нас двумерное, заданное продолжительностью локальных и международных разговоров, в качестве осей x и y.
Сейчас, разговаривая в терминах галактик, задача формулируется так – найти положение черных дыр; в кластерном анализе они называются центроидами. Для обнаружения центроидов мы начнем с того, что возьмем произвольные точки в качестве положения центроидов.

В нашем случае два центроида (C1 и C2) мы произвольным образом поместим в точки с координатами (1, 1) и (3, 4). Почему мы выбрали именно эти два центроида? Визуальное отображение точек на графике показывает нам, что есть два кластера, которые мы будем анализировать. Однако, впоследствии мы увидим, что ответ на этот вопрос будет не таким уж простым для большого набора данных.
Далее, мы измерим расстояние между центроидами (C1 и C2) и всеми точками на графике использую формулу Евклида для нахождения расстояния между двумя точками.

Примечание: Расстояние может быть вычислено и по другим формулам, например,

  1. квадрат евклидова расстояния – для придания веса более отдаленным друг от друга объектам
  2. манхэттенское расстояние – для уменьшения влияния выбросов
  3. степенное расстояние – для увеличения/уменьшения влияния по конкретным координатам
  4. процент несогласия – для категориальных данных
  5. и др.

Колонка 3 и 4 (Distance from C1 and C2) и есть расстояние, вычисленное по этой формуле. Например, для первого потребителя

Принадлежность к центроидам (последняя колонка) вычисляется по принципу близости к центроидам (C1 и C2). Первый потребитель ближе к центроиду №1 (1.41 по сравнению с 2.24) следовательно, принадлежит к кластеру с центроидом C1.

Ниже график, иллюстрирующий центроиды C1 и C2 (изображенные в виде голубого и оранжевого ромбика). Потребители изображены цветом соответствующего центроида, к кластеру которого они были отнесены.

Так как мы произвольным образом выбрали центроиды, вторым шагом мы сделать этот выбор итеративным. Новая позиция центроидов выбирается как средняя для точек соответствующего кластера. Так, например, для первого центроида (это потребители 1, 2 и 3). Следовательно, новая координата x для центроида C1 э то средняя координат x этих потребителей (2+1+1)/3 = 1.33. Мы получим новые координаты для C1 (1.33, 2.33) и C2 (4.4, 4.2).Новый график ниже:

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

В конце концов, мы поместим центроиды в центр соответствующего кластера. График ниже:

Позиции наших черных дыр (центров кластеров) в нашем примере C1 (1.75, 2.25) и C2(4.75, 4.75). Два кластера выше подобны двум галактикам, разделенным в пространстве друг от друга.

Итак, рассмотрим примеры дальше. Пусть перед нами стоит задача по сегментации потребителей по двум параметрам: возраст и доход. Предположим, что у нас есть 2 потребителя с возрастом 37 и 44 лет и доходом в $90,000 и $62,000 соответственно. Если мы хотим измерить Евклидово расстояние между точками (37, 90000) и (44, 62000), мы увидим, что в данном случае переменная доход «доминирует» над переменной возраст и ее изменение сильно сказывается на расстоянии. Нам необходима какая-нибудь стратегия для решения данной проблемы, иначе наш анализ даст неверный результат. Решение данной проблемы это приведение наших значений к сравнимым шкалам. Нормализация – вот решение нашей проблемы.

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

в данном случае X* — это нормализованное значение, min и max – минимальная и максимальная координата по всему множеству X
(Примечание, данная формула располагает все координаты на отрезке [0;1])
Рассмотрим наш пример, пусть максимальный доход $130000, а минимальный — $45000. Нормализованное значение дохода для потребителя A равно

Мы сделаем это упражнение для всех точек для каждых переменных (координат). Доход для второго потребителя (62000) станет 0.2 после процедуры нормализации. Дополнительно, пусть минимальный и максимальный возрасты 23 и 58 соответственно. После нормализации возрасты двух наших потребителей составит 0.4 и 0.6.

Легко увидеть, что теперь все наши данные расположены между значениями 0 и 1. Следовательно, у нас теперь есть нормализованные наборы данных в сравнимых шкалах.

Запомните, перед процедурой кластерного анализа необходимо произвести нормализацию.

источник

АНАЛИЗ МЕТОДОВ НОРМИРОВКИ РАЗНОТИПНЫХ ДАННЫХ ДЛЯ АНАЛИЗА В ЭКСПЕРТНЫХ СИСТЕМАХ МЕДИЦИНСКОЙ ДИАГНОСТИКИ

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

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

Нормализация медицинских данных

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

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

Методы нормализации данных

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

Методы нормализации должны обладать следующими свойствами:

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

Результирующие (нормированные) величины должны находится в ограниченном интервале.

Минимаксная нормализация

В работах [1], [2] и [3], для повышения качества оцениваемых данных была применена минимаксная нормализация.

Она представляет собой линейное отображение данных из одного интервала в другой. Допустим, мы имеем набор данных величины X, который нужно перенести в новый интервал [Xl, Xr]. Найдем максимальное (Xmax) и минимальное(Xmin) значения в наборе. Тогда, формула преобразования величин из [Xmin Xmax] в [Xl Xr] будет выглядеть следующим образом:

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

Существенным минусом данного подхода является то, что величины Xmax и Xmin должны бы определены заранее, и не должны меняться в процессе работы[8].

Данный метод не удовлетворяет нашим потребностям, в виду отсутствия свойства 1.

Нормализация стандартным отклонением

В работах [7] и [8], авторы удачно применили стандартизацию стандартным отклонением.

Формула преобразования представлена в формуле 2.

МХ — мат ожидание величины X,

dX — стандартное отклонение

Если значения МХ и dX заранее неизвестны, их можно примерно оценить по образцу. После нормализации, каждое значение Xi будет представлять собой отклонение(предполагаемое), от среднего значения(предполагаемого). [7]

Этот метод прост в использовании, но у него есть ряд существенных минусов:

Сильная чувствительность к малым dX.

Необходимость хранения информации о Mx и dx, либо их регулярный перерасчет.

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

Тангенциальный метод

Работа [9] посвящена слиянию данных в биометрических системах. В рамках этой работы, авторы выделяют, как наиболее часто используемые, методы минимаксной нормировки, тангенциальный метод и адаптивную нормализацию.

Тангенциальный метод — это устойчивый статистический метод, который отображает данные на интервал (0;1).

Формула преобразования представлена в формуле 3:

Благодаря статистической устойчивости, метод всегда преобразует значение в заданный интервал, что обеспечивает свойство 2. Однако он не подходит для решения задачи, т. к. не имеет возможности учета значимых параметров (свойство 1).

Адаптивная нормализация

Адаптивная нормализация использует 2 метода: метод двух квадратов, и метод квадрат-прямая-квадрат.

Формула отображения первого метода представлена в формуле 4:

mid — середина пересечения предварительно известных распределений .

Формула отображения второго метода представлена в формуле 5:

d — ширина области пересечения

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

Функция желательности Харрингтона

В работе [12] авторы использовали функцию желательности Харрингтона(ФХ). Она возникла в результате наблюдений за реальными решениями экспериментаторов и обладает такими полезными свойствами, как непрерывность, монотонность и гладкость.

ФХ переводит значения конкретных параметров в абстрактные числовые значения. За основу берется одна из «кривых желательности». Ее формула представлена в формуле 6:

Она определяет функцию с двумя участками насыщения (в d→0 и d→1) и линейным участком (от d=0,2 до d=0,63). Эта функция была выведена эмпирическим путем. Ось координат Y называется шкалой частных показателей. Ось d – шкалой желательности. Промежуток эффективных значений на шкале частных показателей – [2; +5]. Шкала желательности делится в диапазоне от 0 до 1 на пять поддиапазонов: [0; 0,2] – «очень плохо», [0,2; 0,37] – «плохо», [0,37; 0,63] – «удовлетворительно», [0,63; 0,8] – «хорошо», [0,8; 1] – «очень хорошо». Конкретные параметры сравниваемых систем распределяются в масштабе, соответствующем предъявляемым к ним требованиям, на промежутке эффективных значений шкалы частных показателей. Затем соответствующие им показатели пересчитываются в отметки на шкале желательности. Полученное значение d(i) для iго параметра пересчитывается вместе с другими в обобщенный коэффициент желательности – D [12].

Он вычисляется по формуле 7.

n – число используемых показателей параметров сравнения для данной системы.

Причем число этих показателей может быть неодинаковым для разных систем. Это позволяет сравнивать обобщенные коэффициенты даже тогда, когда отсутствует часть параметров сравнения у различных систем или данные по ним. Корень n-й степени «сглаживает» возникающие отклонения, а полученный результат позволяет оценивать системы (с определенной степенью точности), так сказать, «математически» [12].

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

Использование Функции желательности Харрингтона для нормализации разнотипных медицинских данных

Рассмотрим применение ФХ для анализа медицинских данных. Имеем показатели, представленные в таблице:

Таблица 1. Описание разнотипных данных

Значения показателя

Проба с задержкой дыхания на выдохе, для оценки функциональных возможностей дыхательной системы

Отвечает за нормальную работу щитовидной железы, стимулирует выработку гормонов щитовидной железы

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

Таблица 2. Примерная разметка желательности

источник

Мы уже рассказали, что такое нормализация данных и зачем она нужна при подготовке выборки (Data Preparation) к машинному обучению (Machine Learning) и интеллектуальному анализу данных (Data Mining). Сегодня поговорим о том, как выполняется нормализация данных: читайте в нашем материале о методах и средствах преобразования признаков (Feature Transmormation) на этапе их генерации (Feature Engineering).

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

Графическая интерпретация линейной и нелинейной нормализации

На практике наиболее распространены следующие методы нормализации признаков [1]:

  • Минимакс — линейное преобразование данных в диапазоне [0..1], где минимальное и максимальное масштабируемые значения соответствуют 0 и 1 соответственно;
  • Z-масштабирование данных на основе среднего значения и стандартного отклонения: деление разницы между переменной и средним значением на стандартное отклонение;
  • десятичное масштабирование путем удаления десятичного разделителя значения переменной.

Формулы нормализации данных по методам минимакс и Z-масштабирование

На практике минимакс и Z-масштабирование имеют похожие области применимости и часто взаимозаменяемы. Однако, при вычислении расстояний между точками или векторами в большинстве случае используется Z-масштабирование. А минимакс полезен для визуализации, например, чтобы перенести признаки, кодирующие цвет пикселя, в диапазон [0..255] [2].

Чтобы выполнить нормализацию данных, нужно точно знать пределы изменения значений признаков: минимальное и максимальное теоретически возможные значения. Этим показателям будут соответствовать границы интервала нормализации. Когда точно установить пределы изменения переменных невозможно, они задаются с учетом минимальных и максимальных значений в имеющейся выборке данных [3].

На практике data scientist нормализует данные с помощью уже готовых функций интегрированных сред для статистического анализа, например, IBM SPSS, SAS или специальных библиотек: Scikit-learn, Auto-sklearn, pandas и т.д. Кроме того, аналитик данных может написать собственный код на языке R или Python для почти любой операции Data Preparation [4].

Выборку нужно подготовить, чтобы моделирование прошло нормально

Подробно о том, как нормализовать данные и другие аспекты Data Preparation в нашем новом образовательном курсе для аналитиков Big Data в Москве: подготовка данных для Data Mining. Присоединяйтесь!

источник

Прикладные задачи и процессы

Потоки данных и хранилища данных

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

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

Содержимое любого хранилища данных должно представлять собой объединение всех ассоциируемых с ним потоков данных.

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

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

Читайте также:  Как сдавать анализ на урогенитальную инфекцию

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

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

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

Предварительное условие. Все сущности должны быть уникально идентифицированы комбинацией атрибутов и/или связей.

Первая нормальная форма. Удалить повторяющиеся атрибуты или группы атрибутов.

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

Например, удаляя группы атрибутов по членам экипажа из сущности РЕЙСОВЫЙ ПОЛЕТ (см. рис. 7.36), и создавая при этом новую сущность ЧЛЕН ЭКИПАЖА с атрибутами имени и роли и со связью многие-к-одному с исходной сущностью мы приводим РЕЙСОВЫ ПОЛЕТ к первой нормальной форме.

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

Вторая нормальная форма. Удалить атрибуты, зависящие только от части уникального идентификатора.

Если сущность имеет уникальный идентификатор, состоящий из более чем одного атрибута и/или связи и если другой атрибут зависит только от части этого составного идентификатора, тогда сам этот атрибут и та часть идентификатора, от которого он зависит, должны составить основу для формирования новой сущности. Новая сущность идентифицируется унаследованной частью уникального идентификатора исходной сущности и имеет с ней связь один-ко-многим.

Например, значение атрибута номера рейсового полета не зависит от даты и времени полета, поэтому мы создаем новую сущность РЕЙС с фиксированным номером рейса, который определяет расписание одного или нескольких РЕЙСОВЫХ ПОЛЕТОВ в определенный промежуток времени (см. рис. 7.36).

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

Третья нормальная форма. Удалить атрибуты, зависящие от атрибутов, не являющихся частью уникального идентификатора.

Если существует атрибут, который зависит от другого атрибута, не являющегося частью уникального идентифика­то­ра, то эти атрибуты (зависимый и зависящий) должны составить основу для формирования новой сущности, ко­то­рая имеет связь один-ко-многим с исходной сущностью. Уникальным идентификатором новой сущности явля­е­тся тот атрибут, от которого зависит другой атрибут.

Например, название авиакомпании, тип воздушного судна и обычная его вместимость не зависят от номера РЕЙСА. Мы надеемся, что такую характеристику как название авиакомпании скорее выбирает ее президент, а не некто, распределяющий маршруты и составляющий расписание рейсов. (см. рис. 7.36).

Третья нормальная форма является последней, с помощью которой выявляются опущенные сущности и связи.

Интуитивная нормализация. Если вы тщательно проанализируете результирующую модель, то придете к тому, к чему приходит хороший аналитик при изучении предметной области, а именно, существуют такие независимые и представляющие интерес вещи, относительно которых необходимо хранить информацию (т.е. сущности), как АЭРОПОРТ, АВИАКОМПАНИЯ, ЛИЦО и т.д. Аналитик также осознает, что имя авиакомпании может быть атрибутом только авиакомпании. И если теперь имя авиакомпании появляется где-либо в тексте на бумаге, то только потому, что это удобный способ указания существования связи чего-либо с авиакомпанией, например, имя авиакомпании может быть приведено в расписании полетов.

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

Рис. 7.36. Нормализация данных в ER модели.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9435 — | 7324 — или читать все.

195.133.146.119 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

источник

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

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

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

В некоторых СУБД, например Access, предусмотрен мастер анализа таблиц, который позволяет нормализовать таблицы базы данных. При использовании мастера пользователь имеет возможность самостоятельно определить создаваемые таблицы или позволить мастеру провести нормализацию таблиц.

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

Универсальное отношение порождает ряд проблем.

· Аномалии обновления (потенциальная противоречивость)

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

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

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

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

Дадим определение первых трех нормальных форм.

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

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

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

Практически таблицы реляционной базы данных не обязательно должны удовлетворять всем требованиям нормальных форм.

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

· Каждое поле таблицы должно быть уникальным.

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

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

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

Связывание таблиц

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

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

Группа связанных таблиц называется схемой данных. Пример схемы данных показан на рис. .

Рис. 1.2. Фрагмент схемы данных базы данных Товарная база

Типы связей между таблицами

Тип связи определяет правила сопоставления строк между двумя таблицами. Существуют следующие виды связей или отношений.

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

Один — ко — многим (1:оо). Такая связь определяет отношение между таблицами, когда одна из них является главной, а другая подчиненной. При этом каждой строке главной таблицы может соответствовать несколько строк в подчиненной таблице, а каждой строке в подчиненной таблице соответствует только одна в главной таблице. Примером такого отношения является связь между таблицами Клиенты и Заказы, устанавливаемая между полями Код клиента и Код клиента (см., например, схему данных базы данных Товарная база). В отношении один ‑ ко ‑ многим главной таблицей является таблица, которая содержит первичный ключ, который составляет часть один в отношении один ‑ ко ‑ многим (Код клиента в таблице Клиенты). Каждый клиент может иметь или один заказ, или несколько заказов, или не иметь их совсем. Каждый заказ в подчиненной таблице Заказы должен принадлежать только одному клиенту, разместившему этот заказ.

Многие — ко — многим. При такой связи каждой строке первой таблицы может соответствовать несколько строк во второй таблице и наоборот. Примером такой связи является связь между таблицами ЗаказыиКаталог. Один заказ может содержать много моделей мебели и каждая конкретная модель может быть включена во множество заказов. Такая связь может быть реализована только через третью таблицу, с которой исходные таблицы будут иметь связи один ‑ ко ‑ многим.

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

Дата добавления: 2016-01-03 ; просмотров: 2387 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

источник