Нормализовать данные
возвращает векторную z-оценку данных в N = normalize(A)A с центром 0 и стандартным отклонением 1.
Если A является вектором, то normalize оперирует всем вектором.
Если A является матрицей, таблицей или расписанием, то normalize работает с каждым столбцом данных отдельно.
Если A является многомерным массивом, то normalize работает вдоль первого размера массива, размер которого не равен 1.
указывает тип нормализации для данного метода. Например, N = normalize(___,method,methodtype)normalize(A,'norm',Inf) нормализует данные в A используя норму бесконечности.
использует N = normalize(___,'center',centertype,'scale',scaletype)'center' и 'scale' методы одновременно. Это единственные методы, которые можно использовать вместе. Если не указать centertype или scaletype, затем нормализация использует тип метода по умолчанию для этого метода (центрирование для получения среднего значения 0 и масштабирование на стандартное отклонение).
Используйте этот синтаксис с любым типом центра и масштаба, чтобы выполнить оба метода вместе. Например, N = normalize(A,'center','median','scale','mad'). Этот синтаксис можно также использовать для задания значений центра и масштаба. C и S из ранее вычисленной нормализации. Например, нормализовать один набор данных и сохранить параметры с помощью [N1,C,S] = normalize(A1). Затем повторно используйте эти параметры в другом наборе данных с помощью N2 = normalize(A2,'center',C,'scale',S).
Нормализуйте данные в векторе и матрице путем вычисления показателя z.
Создание вектора v и вычисляют z-балл, нормализуя данные так, чтобы они имели среднее значение 0 и стандартное отклонение 1.
v = 1:5; N = normalize(v)
N = 1×5
-1.2649 -0.6325 0 0.6325 1.2649
Создание матрицы B и вычислить z-балл для каждого столбца. Затем нормализуйте каждую строку.
B = magic(3)
B = 3×3
8 1 6
3 5 7
4 9 2
N1 = normalize(B)
N1 = 3×3
1.1339 -1.0000 0.3780
-0.7559 0 0.7559
-0.3780 1.0000 -1.1339
N2 = normalize(B,2)
N2 = 3×3
0.8321 -1.1094 0.2774
-1.0000 0 1.0000
-0.2774 1.1094 -0.8321
Масштабирование вектора A по его стандартному отклонению.
A = 1:5;
Ns = normalize(A,'scale')Ns = 1×5
0.6325 1.2649 1.8974 2.5298 3.1623
Масштаб A таким образом, его диапазон находится в интервале [0,1].
Nr = normalize(A,'range')Nr = 1×5
0 0.2500 0.5000 0.7500 1.0000
Создание вектора A и нормализовать его по своей 1-норме.
A = 1:5;
Np = normalize(A,'norm',1)Np = 1×5
0.0667 0.1333 0.2000 0.2667 0.3333
Центрирование данных в A так что он имеет значение 0.
Nc = normalize(A,'center','mean')
Nc = 1×5
-2 -1 0 1 2
Создайте таблицу, содержащую информацию о высоте для пяти человек.
LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Height = [71;69;64;67;64];
T = table(LastName,Height)T=5×2 table
LastName Height
_________ ______
'Sanchez' 71
'Johnson' 69
'Lee' 64
'Diaz' 67
'Brown' 64
Нормализуйте данные о высоте по максимальной высоте.
N = normalize(T,'norm',Inf,'DataVariables','Height')
N=5×2 table
LastName Height
_________ _______
'Sanchez' 1
'Johnson' 0.97183
'Lee' 0.90141
'Diaz' 0.94366
'Brown' 0.90141
Нормализация набора данных, возврат вычисленных значений параметров и повторное использование параметров для применения такой же нормализации к другому набору данных.
Создайте расписание с двумя переменными: Temperature и WindSpeed. Затем создайте второе расписание с теми же переменными, но с образцами, взятыми через год.
rng default Time1 = (datetime(2019,1,1):days(1):datetime(2019,1,10))'; Temperature = randi([10 40],10,1); WindSpeed = randi([0 20],10,1); T1 = timetable(Temperature,WindSpeed,'RowTimes',Time1)
T1=10×2 timetable
Time Temperature WindSpeed
___________ ___________ _________
01-Jan-2019 35 3
02-Jan-2019 38 20
03-Jan-2019 13 20
04-Jan-2019 38 10
05-Jan-2019 29 16
06-Jan-2019 13 2
07-Jan-2019 18 8
08-Jan-2019 26 19
09-Jan-2019 39 16
10-Jan-2019 39 20
Time2 = (datetime(2020,1,1):days(1):datetime(2020,1,10))';
Temperature = randi([10 40],10,1);
WindSpeed = randi([0 20],10,1);
T2 = timetable(Temperature,WindSpeed,'RowTimes',Time2)T2=10×2 timetable
Time Temperature WindSpeed
___________ ___________ _________
01-Jan-2020 30 14
02-Jan-2020 11 0
03-Jan-2020 36 5
04-Jan-2020 38 0
05-Jan-2020 31 2
06-Jan-2020 33 17
07-Jan-2020 33 14
08-Jan-2020 22 6
09-Jan-2020 30 19
10-Jan-2020 15 0
Нормализовать первое расписание. Укажите три выхода: нормализованную таблицу, а также значения параметров центрирования и масштабирования C и S которая используется функцией для выполнения нормализации.
[T1_norm,C,S] = normalize(T1)
T1_norm=10×2 timetable
Time Temperature WindSpeed
___________ ___________ _________
01-Jan-2019 0.57687 -1.4636
02-Jan-2019 0.856 0.92885
03-Jan-2019 -1.4701 0.92885
04-Jan-2019 0.856 -0.4785
05-Jan-2019 0.018609 0.36591
06-Jan-2019 -1.4701 -1.6044
07-Jan-2019 -1.0049 -0.75997
08-Jan-2019 -0.26052 0.78812
09-Jan-2019 0.94905 0.36591
10-Jan-2019 0.94905 0.92885
C=1×2 table
Temperature WindSpeed
___________ _________
28.8 13.4
S=1×2 table
Temperature WindSpeed
___________ _________
10.748 7.1056
Теперь нормализуйте второе расписание T2 используя значения параметров из первой нормализации. Этот метод гарантирует, что данные в T2 центрирован и масштабирован таким же образом, как T1.
T2_norm = normalize(T2,"center",C,"scale",S)
T2_norm=10×2 timetable
Time Temperature WindSpeed
___________ ___________ _________
01-Jan-2020 0.11165 0.084441
02-Jan-2020 -1.6562 -1.8858
03-Jan-2020 0.66992 -1.1822
04-Jan-2020 0.856 -1.8858
05-Jan-2020 0.2047 -1.6044
06-Jan-2020 0.39078 0.50665
07-Jan-2020 0.39078 0.084441
08-Jan-2020 -0.6327 -1.0414
09-Jan-2020 0.11165 0.78812
10-Jan-2020 -1.284 -1.8858
По умолчанию normalize оперирует с любыми переменными в T2 которые также присутствуют в C и S. Нормализация подмножества переменных в T2, укажите переменные для работы с 'DataVariables' аргумент «имя-значение». Подмножество переменных, которое вы указываете, должно присутствовать в C и S.
Определить WindSpeed в качестве переменной данных для работы. normalize работает с этой переменной и возвращает Temperature без изменений.
T2_partial = normalize(T2,"center",C,"scale",S,"DataVariables","WindSpeed")
T2_partial=10×2 timetable
Time Temperature WindSpeed
___________ ___________ _________
01-Jan-2020 30 0.084441
02-Jan-2020 11 -1.8858
03-Jan-2020 36 -1.1822
04-Jan-2020 38 -1.8858
05-Jan-2020 31 -1.6044
06-Jan-2020 33 0.50665
07-Jan-2020 33 0.084441
08-Jan-2020 22 -1.0414
09-Jan-2020 30 0.78812
10-Jan-2020 15 -1.8858
A - Входные данныеВходные данные, указанные как скаляр, вектор, матрица, многомерный массив, таблица или расписание.
Если A является числовым массивом и имеет тип single, то вывод также имеет тип single. В противном случае вывод имеет тип double.
normalize игнорирует NaN значения в A.
Типы данных: double | single | table | timetable
Поддержка комплексного номера: Да
dim - РазмерностьРазмерность для работы, заданная как целочисленный скаляр.
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
method - Метод нормализации'zscore' (по умолчанию) | 'norm' | 'scale' | 'range' | 'center' | 'medianiqr'Метод нормализации, указанный как одна из следующих опций:
Метод | Описание |
|---|---|
| z-балл со средним значением 0 и стандартным отклонением 1 |
| 2-норма |
| Шкала по стандартному отклонению |
| Масштабировать диапазон данных до [0,1] |
| Данные центра должны иметь среднее значение 0 |
| Данные центра и масштаба должны иметь медиану 0 и межквартильный диапазон 1 |
Чтобы вернуть параметры, используемые функцией для нормализации данных, укажите C и S выходные аргументы.
methodtype - Тип методаТип метода, указанный как массив, таблица, 2-элементный вектор строки или имя типа, в зависимости от указанного метода:
Метод | Параметры типа метода | Описание |
|---|---|---|
|
| Центр и масштаб должны иметь среднее значение 0 и стандартное отклонение 1 |
| Центр и масштаб должны иметь среднее 0 и среднее абсолютное отклонение 1 | |
| Положительный числовой скаляр (по умолчанию - 2) | p-норма |
| Норма бесконечности | |
|
| Шкала по стандартному отклонению |
| Шкала по среднему абсолютному отклонению. | |
| Масштабирование по первому элементу данных. | |
| Масштабировать данные по межквартильному диапазону. | |
Числовой массив | Масштабирование данных по числовым значениям. Массив должен иметь совместимый размер со входом A. | |
Стол | Масштабирование данных с использованием переменных в таблице. Каждая переменная таблицы во входных данных A масштабируется с использованием значения в переменной с аналогичным именем в таблице масштабирования. | |
| 2-элементный вектор строки (по умолчанию - [0 1]) | Масштабирование диапазона данных до интервала формы [a b], где a < b. |
|
| Центр должен иметь значение 0. |
| Центр, чтобы иметь медиану 0. | |
Числовой массив | Сместить центр по числовым значениям. Массив должен иметь совместимый размер со входом A. | |
Стол | Центр сдвига с использованием переменных в таблице. Каждая переменная таблицы во входных данных A центрируется с использованием значения в переменной с аналогичным именем в таблице центрирования. |
Чтобы вернуть параметры, используемые функцией для нормализации данных, укажите C и S выходные аргументы.
centertype, scaletype - Типы методов центрирования и масштабированияТипы методов центра и масштаба, указанные как любые допустимые methodtype для опции 'center' или 'scale' методы, соответственно. См. раздел methodtype описание аргумента для списка доступных параметров для каждого из методов.
Пример: N = normalize(A,'center',C,'scale',S)
datavars - Табличные переменные для работыvartype нижний индексПеременные таблицы для работы, указанные как один из параметров в этой таблице. datavars указывает, какие переменные входной таблицы необходимо нормализовать. Другие переменные в таблице, не указанные datavars пройти на выход без работы.
| Выбор | Описание | Примеры |
|---|---|---|
| Имя переменной | Вектор символов или скалярная строка, задающая имя переменной одной таблицы |
|
| Вектор имен переменных | Массив ячеек символьных векторов или строковый массив, где каждый элемент является именем переменной таблицы |
|
| Скаляр или вектор переменных индексов | Скаляр или вектор индексов табличных переменных |
|
| Логический вектор | Логический вектор, элементы которого соответствуют переменной таблицы, где |
|
| Дескриптор функции | Дескриптор функции, принимающий переменную таблицы в качестве входного значения и возвращающий логический скаляр |
|
vartype нижний индекс | Подстрочный индекс таблицы, созданный |
|
Пример: normalize(T,'norm','DataVariables',["Var1" "Var2" "Var4"])
N - Нормализованные значенияНормализованные значения, возвращаемые в виде массива, таблицы или расписания. N имеет тот же размер, что и входные данные A.
normalize обычно оперирует всеми переменными входных таблиц и расписаний, за исключением следующих случаев:
При указании 'DataVariables', то normalize работает только с указанными переменными, а другие переменные в данных возвращаются в N без изменений.
При использовании синтаксиса normalize(T,'center',C,'scale',S) для нормализации таблицы или расписания T с использованием ранее вычисленных параметров C и S, то normalize автоматически использует имена переменных в C и S для определения переменных данных в T для работы. Другие переменные в T возвращаются в N без изменений.
C - Значения центрированияЦентрирование значений, возвращаемых в виде массива или таблицы.
Когда A является массивом, normalize прибыль C и S как массивы, такие, что N = (A - C) ./ S. Каждое значение в C - значение центрирования, используемое для нормализации вдоль заданного размера. Например, если A является матрицей данных 10 на 10 и normalize работает вдоль первого измерения, затем C является вектором 1 на 10, содержащим значение центрирования для каждого столбца в A.
Когда A - таблица или расписание, normalize прибыль C и S как таблицы, содержащие центры и шкалы для каждой нормализованной табличной переменной, N.Var = (A.Var - C.Var) ./ S.Var. Имена табличных переменных C и S соответствует соответствующим переменным таблицы на входе. Каждая переменная в C содержит значение центрирования, используемое для нормализации одноименной переменной в A.
S - Масштабирование значенийМасштабирование значений, возвращаемых в виде массива или таблицы.
Когда A является массивом, normalize прибыль C и S как массивы, такие, что N = (A - C) ./ S. Каждое значение в S - значение масштабирования, используемое для нормализации вдоль заданного размера. Например, если A является матрицей данных 10 на 10 и normalize работает вдоль первого измерения, затем S является вектором 1 на 10, содержащим значение масштабирования для каждого столбца в A.
Когда A - таблица или расписание, normalize прибыль C и S как таблицы, содержащие центры и шкалы для каждой нормализованной табличной переменной, N.Var = (A.Var - C.Var) ./ S.Var. Имена табличных переменных C и S соответствует соответствующим переменным таблицы на входе. Каждая переменная в S содержит значение масштабирования, используемое для нормализации одноименной переменной в A.
Для случайной величины X со средним λ и стандартным отклонением, z-оценка значения x равна λ) λ. Для выборочных данных со средним значением X w и стандартным отклонением S z-оценка точки данных (x − X) S.
Z-оценки измеряют расстояние точки данных от среднего значения в терминах стандартного отклонения. Стандартизированный набор данных имеет среднее значение 0 и стандартное отклонение 1 и сохраняет свойства формы исходного набора данных (тот же самый перекос и куртоз).
Общее определение p-нормы вектора v, имеющего N элементов, равно
где p - любое положительное действительное значение, Inf, или -Inf. Некоторые общие значения p:
Если p равно 1, то результирующая 1-норма является суммой абсолютных значений векторных элементов.
Если p равно 2, то результирующая 2-норма даёт векторную звёздную величину или евклидову длину вектора.
Если p является Inf, затем i) |).
Масштабирование изменяет расстояние между значениями min и max в наборе данных путем растягивания или сжатия точек вдоль числовой линии. Z-оценки данных сохраняются, поэтому форма распределения остается прежней.
Уравнение для масштабирования данных X к произвольному интервалу [a b] является
] (b − a).
Пока normalize и rescale функции могут как масштабировать данные до любого произвольного интервала, так и rescale также позволяет подрезать входные данные до заданного минимального и максимального значений.
Межквартильный диапазон (IQR) набора данных описывает диапазон средних 50% значений при сортировке значений. Если медиана данных равна Q2, медиана нижней половины данных равна Q1, а медиана верхней половины данных равна Q3, то .
IQR обычно предпочтительнее, чем просмотр полного диапазона данных, когда данные содержат отклонения (очень большие или очень маленькие значения), поскольку IQR исключает наибольшие 25% и наименьшие 25% значений в данных.
Медианное абсолютное отклонение (MAD) набора данных - медианное значение абсолютных отклонений от медианного данных: |x−X˜|). Поэтому MAD описывает изменчивость данных по отношению к медиане.
MAD, как правило, предпочтительнее, чем использование стандартного отклонения данных, когда данные содержат отклонения (очень большие или очень малые значения), поскольку стандартное отклонение приводит к отклонениям от среднего значения, что приводит к чрезмерному большому воздействию. И наоборот, отклонения небольшого числа отклонений не влияют на значение MAD.
Примечания и ограничения по использованию:
Продукция C и S не поддерживаются.
'center' и 'scale' методы не могут быть указаны одновременно.
Поддерживаемые типы методов для 'center' являются: 'mean', 'median'или числовой скаляр.
Поддерживаемые типы методов для 'scale' являются: 'std', 'mad', 'first'или числовой скаляр.
'DataVariables' пара имя-значение не может указать дескриптор функции.
Методы нормализации, требующие вычисления медианного или межквартильного диапазона по первому измерению, поддерживают только данные вектора высоких столбцов. Это включает в себя методы normalize(___,'zscore','robust'), normalize(___,'scale','mad'), normalize(___,'scale','iqr'), normalize(___,'center','median'), и normalize(___,'medianiqr').
Дополнительные сведения см. в разделе Массивы Tall.
Примечания и ограничения по использованию:
Когда тип метода для 'center' и 'scale' являются как таблицами, так и 'DataVariables' не предоставляется, типы методов должны иметь имена табличных переменных в том же порядке.
Эта функция полностью поддерживает массивы графических процессоров. Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Примечания и ограничения по использованию:
Синтаксис normalize(___,'medianiqr') не поддерживается.
Синтаксис normalize(___,'scale','iqr') не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.