Main Content

归一化数据

在实时编辑器中中心化并缩放数据

自 R2021b 起

说明

使用归一化数据任务,您可以通过选择中心化和缩放方法(如 z 分数)以交互方式归一化数据。该任务会自动为您的实时脚本生成 MATLAB® 代码。

使用此任务,您可以:

  • 自定义如何在工作区变量(如表或时间表)中中心化并缩放数据。

  • 将输入数据与归一化后的数据进行可视化比较。

  • 返回用于计算归一化的中心化和缩放值。

相关函数

归一化数据生成使用 normalize 函数的代码。

Normalize Data task in the Live Editor

打开任务

要在 MATLAB 编辑器中将归一化数据任务添加到实时脚本中,请执行以下操作:

  • 实时编辑器选项卡上,选择任务 > 归一化数据

  • 在脚本的代码块中,键入相关关键字,例如 normalizerangescale。从建议的命令自动填充项中选择归一化数据。对于某些关键字,任务会自动更新一个或多个对应的参数。

示例

全部展开

使用实时编辑器中的“归一化数据”任务以交互方式归一化一个数据集并返回计算出的参数值。然后,重用这些参数以对另一个数据集应用相同的归一化。

创建一个包含两个变量 TemperatureWindSpeed 的时间表。然后用同样的变量创建第二个时间表,但使用的采样是一年后收集的。

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    

在实时编辑器中打开归一化数据任务。要归一化第一个时间表,请选择 T1 作为输入数据并归一化所有支持变量。

默认情况下,“归一化数据”任务返回归一化的数据。除了归一化的数据之外,通过选择任务的指定方法和参数部分中的返回中心化和缩放值,还会返回任务用于执行归一化的中心化和缩放参数值。

输出参量 newTablecenterValuescaleValue 分别表示归一化的值、中心化值和缩放值。

Live Task
% Normalize Data
[newTable,centerValue,scaleValue] = normalize(T1);

% Display results
figure
tiledlayout(2,1);
nexttile
plot(T1.Time,T1.Temperature,"SeriesIndex",6,"DisplayName","Input data")
legend
ylabel("Temperature")
xlabel("Time")

nexttile
plot(T1.Time,newTable.Temperature,"SeriesIndex",1,"LineWidth",1.5, ...
    "DisplayName","Normalized data")
legend
ylabel("Temperature")
xlabel("Time")

set(gcf,"NextPlot","New")

您可以在后续代码中使用实时编辑器任务的输出参量。通过 normalize 函数,使用第一个归一化的参数值来归一化第二个时间表 T2。此方法确保 T2 中的数据以与 T1 相同的方法中心化并缩放。

T2_norm = normalize(T2,"center",centerValue,"scale",scaleValue)
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 

相关示例

参数

全部展开

此任务对包含在向量、表或时间表中的输入数据进行操作。数据的类型可以是 singledouble

对于表或时间表输入数据,要清洗类型为 singledouble 的所有变量,请选择所有支持变量。要选择要清洗的 singledouble 变量,请选择指定的变量

将用于归一化数据的方法和相关参数指定为以下选项之一。

方法

方法参数

描述

Z-score

Standard deviation

中心化并缩放以使均值为 0,标准差为 1

Median absolute deviation

中心化并缩放,使之中位数为 0中位数绝对偏差1

Norm

正数值标量(默认值为 2)或 Inf(表示无穷范数)

p-范数缩放数据。

Range

范围上限和下限(下限默认为 0,上限默认为 1

将数据范围重新缩放[a, b] 形式的区间,其中 a < b

Median IQR

不适用

中心化和缩放数据,使中位数为 0四分位差1

Center

Mean(默认值)

中心化以使其均值为 0

Median

中心化以使其中位数为 0

Numeric scalar

按指定的数值平移中心。

From workspace

使用数值数组中的值或表中其变量名称与输入数据中的指定表变量匹配的值来平移中心。

Scale

Standard deviation(默认值)

按标准差缩放数据。

Median absolute deviation

中位数绝对偏差缩放数据。

First element

按数据的第一个元素缩放数据。

Interquartile range

四分位差缩放数据。

数值标量(默认值为 1)

通过除以指定的数值来缩放数据。

From workspace

使用数值数组中的值或表中其变量名称与输入数据中的指定表变量匹配的值来缩放数据。
Center and scale请参阅 CenterScale 方法参数使用指定的参数中心化并缩放数据。

详细信息

全部展开

版本历史记录

在 R2021b 中推出

全部展开