Я понимаю причину нормализации столбцов, поскольку она приводит к одинаковому взвешиванию объектов, даже если они не измеряются в одном и том же масштабе - однако часто в литературе ближайшего соседа столбцы и строки нормализуются. Что такое нормализация строк для / почему нормализация строк? В частности, как результат нормализации строк влияет на сходство / расстояние между векторами строк?
normalization
distance
similarities
k-nearest-neighbour
curiosity_delivers
источник
источник
Ответы:
Это довольно старая тема, но я недавно столкнулся с этой проблемой в своей работе и наткнулся на это обсуждение. На вопрос был дан ответ, но я чувствую, что опасность нормализации строк, когда она не является единицей анализа (см. Ответ @ DJohnson выше), не была рассмотрена.
Суть в том, что нормализация строк может быть вредна для любого последующего анализа, такого как «ближайший сосед» или «k-средних». Для простоты я оставлю ответ конкретным для центрирования рядов.
Чтобы проиллюстрировать это, я буду использовать смоделированные гауссовские данные в углах гиперкуба. К счастью,
R
есть удобная функция для этого (код находится в конце ответа). В двумерном случае просто, что средне-центрированные данные упадут на линию, проходящую через начало координат на 135 градусов. Имитированные данные затем группируются с использованием k-средних с правильным количеством кластеров. Данные и результаты кластеризации (визуализируются в 2D с использованием PCA на исходных данных) выглядят следующим образом (оси для самого левого графика отличаются). Различные формы точек на графиках кластеризации относятся к назначению кластера "правда-земля", а цвета являются результатом кластеризации k-средних.Кластеры верхнего левого и нижнего правого разрезаются пополам, когда данные центрированы по строке. Таким образом, расстояния после центрирования строки искажаются и не очень значимы (по крайней мере, на основе знания данных).
Не так уж удивительно в 2D, что если мы используем больше измерений? Вот что происходит с 3D данными. Кластерное решение после центрирования строки - «плохо».
И аналогично с данными 4D (теперь для краткости показано).
Почему это происходит? Центрирование по среднему значению толкает данные в какое-то пространство, где некоторые элементы располагаются ближе, чем в противном случае. Это должно быть отражено в корреляции между функциями. Давайте посмотрим на это (сначала на исходные данные, а затем на средние по строке данные для 2D и 3D случаев).
[,1] [,2] [1,] 1.000 -0.001 [2,] -0.001 1.000 [,1] [,2] [1,] 1 -1 [2,] -1 1 [,1] [,2] [,3] [1,] 1.000 -0.001 0.002 [2,] -0.001 1.000 0.003 [3,] 0.002 0.003 1.000 [,1] [,2] [,3] [1,] 1.000 -0.504 -0.501 [2,] -0.504 1.000 -0.495 [3,] -0.501 -0.495 1.000
Похоже, что центрирование строки представляет корреляции между функциями. Как это зависит от количества функций? Мы можем сделать простую симуляцию, чтобы понять это. Результат моделирования показан ниже (снова код в конце).Таким образом, с увеличением числа признаков эффект центрирования строки, по-видимому, уменьшается, по крайней мере, с точки зрения введенных корреляций. Но мы просто использовали равномерно распределенные случайные данные для этого моделирования (как обычно при изучении проклятия размерности ).
Так что же происходит, когда мы используем реальные данные? Сколько раз внутренняя размерность данных ниже, проклятие может не применяться . В таком случае я бы предположил, что центрирование строки может быть «плохим» выбором, как показано выше. Конечно, требуется более тщательный анализ, чтобы сделать какие-либо окончательные заявления.
Код для моделирования кластеризации
Код для увеличения возможностей симуляции
РЕДАКТИРОВАТЬ
источник
Существуют различные формы нормализации строк, и ОП не указывает, какой из них имеет в виду.
Определенная форма нормализации строк (нормализация евклидовых норм), где каждая строка нормируется (делится на евклидову норму), очень популярна.
Например, если ваши исходные данные центрированы (как черные точки на этом изображении), и вы применяете к ним нормализацию строк, вы получаете красные звезды.
Зеленые точки представляют небольшое количество выбросов в исходных данных. Если вы примените к ним преобразование нормализации строк, вы получите голубые звезды.
Вы можете увидеть это наиболее четко, сравнив матрицы форм (или эллипсы контуров), в свою очередь соответствующие данным, их загрязненной версии и их нормализованному преобразованию строк:
источник
Есть несколько специфических для полей причин для нормализации строк. При анализе текста довольно часто представлять текст с гистограммой слов, которые он содержит. Начиная с количества слов для каждой строки, стандартная стандартизация превращает ее в гистограмму.
И вычислительная причина . Если вы работаете с разреженной матрицей, вы не можете легко центрировать и масштабировать данные столбец за столбцом. Если вы встраиваете его в плотную матрицу, данные могут стать слишком большими, чтобы поместиться в памяти. Однако масштабирование строка за строкой не влияет на общий объем необходимой памяти.
источник
У нормализации строк есть имя - ипсативное масштабирование, которое обычно включает изменение масштаба набора функций путем деления на максимальное значение для набора или вычитания среднего значения функций. Есть много мотивов для выбора этого подхода к преобразованию данных, но главная из них заключается в том, что он обусловливает особенности, относящиеся к уникальным характеристикам индивида (строка или единица анализа).
источник