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