Нормируйте данные
возвращает vectorwise 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
передайте до выхода без управления.
Опция | Описание | Примеры |
---|---|---|
Имя переменной | Вектор символов или скалярная строка, задающая одно имя табличной переменной |
|
Вектор из имен переменных | Массив ячеек из символьных векторов или массив строк, где каждым элементом является имя табличной переменной |
|
Скаляр или вектор из переменных индексов | Скаляр или вектор из индексов табличной переменной | 1 [1 3 5] |
Логический вектор | Логический вектор, элементы которого каждый соответствует табличной переменной, где |
|
Указатель на функцию | Указатель на функцию, который берет табличную переменную в качестве входа и возвращает логический скаляр |
|
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 Для выборочных данных со средним значением и стандартное отклонение S, z - счет точки данных x
z- измеряют расстояние точки данных от среднего значения в терминах стандартного отклонения. Стандартизированный набор данных имеет среднее значение 0 и стандартное отклонение 1, и сохраняет свойства формы исходного набора данных (та же скошенность и эксцесс).
Общее определение для p - норма векторного v, который имеет элементы N,
где p является любым положительным действительным значением, Inf
, или -Inf
. Некоторые общие значения p:
Если p равняется 1, то получившаяся 1 норма является суммой абсолютных значений векторных элементов.
Если p равняется 2, то получившаяся 2-норма дает векторную величину или Евклидову длину вектора.
Если p является Inf
то .
Перемасштабирование изменяет расстояние между min и макс. значениями в наборе данных путем протяжения или сжатия точек вдоль числовой оси. z - множество данных сохраняется, таким образом, форма распределения остается то же самое.
Уравнение для того, чтобы перемасштабировать данные X
к произвольному интервалу [a b]
В то время как normalize
и rescale
функции могут оба перемасштабировать данные к любому произвольному интервалу, rescale
также разрешения, отсекающие входные данные к заданным минимальным и максимальным значениям.
Межквартильный размах (IQR) набора данных описывает область значений средних 50% значений, когда значения сортируются. Если медианой данных является Q2, медианой более низкой половины данных является Q1, и медианой верхней половины данных является Q3, то .
IQR обычно предпочитается по рассмотрению полного спектра данных, когда данные содержат выбросы (очень большие или очень маленькие значения), потому что IQR исключает самое большое 25%-е и самые маленькие 25% значений в данных.
Среднее абсолютное отклонение (MAD) набора данных является средним значением абсолютных отклонений от медианы из данных: . Поэтому MAD описывает изменчивость данных относительно медианы.
MAD обычно предпочитается по использованию стандартного отклонения данных, когда данные содержат выбросы (очень большие или очень маленькие значения) потому что отклонения квадратов стандартного отклонения от среднего значения, давая выбросам незаконно большой удар. С другой стороны отклонения небольшого количества выбросов не влияют на значение MAD.
Указания и ограничения по применению:
Выходные параметры C
и S
не поддерживаются.
'center'
и 'scale'
методы не могут быть заданы одновременно.
Поддерживаемые типы методов для 'center'
: 'mean'
медиана
, или числовой скаляр.
Поддерживаемые типы методов для 'scale'
: 'std'
, 'mad'
, 'first'
, или числовой скаляр.
'DataVariables'
пара "имя-значение" не может задать указатель на функцию.
Методы нормализации, которые требуют вычисления среднего или межквартильного размаха по первому измерению только, поддерживают высокие данные о вектор-столбце. Это включает методы normalize(___,'zscore','robust')
, normalize(___,'scale','mad')
, normalize(___,'scale','iqr')
, normalize(___,'center','median')
, и normalize(___,'medianiqr')
.
Для получения дополнительной информации см. Раздел "Высокие массивы".
Указания и ограничения по применению:
Когда типы методов для 'center'
и 'scale'
оба таблицы и 'DataVariables'
не обеспечивается, типы методов должны иметь имена табличной переменной в том же порядке.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Синтаксис normalize(___,'medianiqr')
не поддерживается.
Синтаксис normalize(___,'scale','iqr')
не поддерживается.
Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.