В Mahout in Action описано, что нормализация может слегка улучшить точность. Может кто-нибудь объяснить причину, спасибо!
Почему нормализация вектора может повысить точность кластеризации и классификации?
Ответ 1
Нормализация не всегда требуется, но она редко болит.
Некоторые примеры:
K-означает, что кластеризация "изотропна" во всех направлениях пространства и поэтому имеет тенденцию производить более или менее круглые (а не удлиненные) кластеры. В этой ситуации оставляя дисперсии неравными, эквивалентно добавляя больше веса к переменным с меньшей дисперсией.
Пример в Matlab:
X = [randn(100,2)+ones(100,2);...
randn(100,2)-ones(100,2)];
% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;
opts = statset('Display','final');
[idx,ctrs] = kmeans(X,2,...
'Distance','city',...
'Replicates',5,...
'Options',opts);
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
'Location','NW')
title('K-means with normalization')
Сравнительный анализ показывает, что результаты распределенной кластеризации зависят от типа процедуры нормализации.
Искусственная нейронная сеть (входы):
Если входные переменные объединены линейно, как в MLP, то это реже строго необходимо для стандартизации исходных данных, по крайней мере, в теория. Причина в том, что любое масштабирование входного вектора может быть эффективно отменяется путем изменения соответствующих весов и смещений, оставляя вас с теми же результатами, что и раньше. Однако, существует множество практических причин, по которым стандартизация входных данных может ускорить тренировку и снизить шансы застрять в локальных оптимумов. Кроме того, можно оценить распад массы и байесовскую оценку более удобно со стандартизованными входами.
Искусственная нейронная сеть (входы/выходы)
Должны ли вы делать какие-либо из этих действий в своих данных? Ответ: зависит.
Стандартизация входных или целевых переменных имеет тенденцию проводить обучение процесс лучше вести себя, улучшая числовое условие (см. ftp://ftp.sas.com/pub/neural/illcond/illcond.html) оптимизации проблемы и обеспечения того, чтобы различные значения по умолчанию, инициализация и прекращение действия. Стандартизация целей также может влиять на целевую функцию.
К стандартизации дел следует подходить с осторожностью, поскольку сбрасывает информацию. Если эта информация не имеет значения, то стандартизация случаев может быть весьма полезной. Если эта информация важно, тогда стандартизация случаев может быть катастрофической.
Интересно, что изменение единиц измерения может даже привести к тому, что можно увидеть совершенно другую структуру кластеризации: Кауфман, Леонард и Питер Дж. Руссеу.. "Поиск группы в данных: введение в кластерный анализ" . (2005).
В некоторых приложениях изменение единиц измерения может привести даже к одному чтобы увидеть совсем другую структуру кластеризации. Например, возраст (в лет) и высоту (в сантиметрах) четырех мнимых людей в таблице 3 и на рисунке 3. Похоже, что {A, B) и {C, 0) - два хорошо разделенных кластера. С другой стороны, когда высота выраженные в футах, получают табл. 4 и рис. 4, где очевидное теперь кластеры {A, C} и {B, D}. Этот раздел полностью отличающийся от первого, потому что каждый субъект получил другое компаньон. (Рисунок 4 был бы сплющен еще больше, если бы возраст были измерены в днях.)
Чтобы избежать этой зависимости от выбора единиц измерения, возможность стандартизации данных. Это преобразует оригинал измерения без единичных переменных.
Kaufman et al. продолжает некоторые интересные соображения (стр. 11):
С философской точки зрения стандартизация на самом деле не решать проблему. Действительно, выбор единиц измерения дает начало к относительным весам переменных. Выражение переменной в меньших единицы приведут к большему диапазону для этой переменной, которая тогда оказывают большое влияние на результирующую структуру. С другой стороны, стандартизация одной попытки дать всем переменным равный вес, в надежда на достижение объективности. Таким образом, он может использоваться который не обладает никакими предшествующими знаниями. Однако вполне может быть что некоторые переменные по своей сути более важны, чем другие в конкретное применение, а затем назначение весов должно быть основанные на знаниях по предмету (см., например, Abrahamowicz, 1985). На с другой стороны, предпринимались попытки разработать кластеризацию методы, не зависящие от масштаба переменных (Фридман и Рубин, 1967). Предложение Харди и Рассона (1982) для поиска раздела, который сводит к минимуму общий объем выпуклые оболочки кластеров. В принципе такой метод является инвариантным по отношению к линейным преобразованиям данных, но, к сожалению, для его реализации не существует алгоритма (кроме приближение, ограниченное двумя измерениями). Следовательно дилемма стандартизации представляется неизбежной в настоящее время, и программы, описанные в этой книге, оставляют выбор до пользователя.
Ответ 2
причина заключается в том, что иногда измерения разных переменных различаются по своей природе, поэтому дисперсия результатов корректируется путем нормализации. например, в сравнении возраста (x) и веса (y) для набора детей, возраст может идти от одного до десяти, а вес может составлять от 10 до 100. если вы не нормализуете графику, вы получите две очень странные длинные овальные фигуры справа от вашего графика, так как обе шкалы должны идти от одного до 100. нормализация дала бы обе оси от 1 до 100 шкал, потому что на графике будут отображаться более значимые кластеры.