给定如下5个指标:10,30,60,80,120。分别利用min-max标准化、 Z-score标准化方差和小数定标标准化将上述指标进行标准化。使用MATLAB运行该程序
时间: 2024-10-18 17:10:37 浏览: 21
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
在MATLAB中,我们可以使用内置函数来进行数值数据的标准化处理。这里我会简要地解释如何使用这三个方法:
1. **最小-最大标准化(Min-Max Scaling)**:
这种方法将每个值映射到0到1之间的范围内。公式如下:
```matlab
normalized_data = (data - min(data)) / (max(data) - min(data));
```
其中`data`是你提供的数值数组,即[10, 30, 60, 80, 120]。
2. **Z-Score标准化(Standard Score or z-score)**:
也称为标准分数,它将数据转换为均值为0,标准差为1的标准正态分布。公式为:
```matlab
normalized_data = (data - mean(data)) / std(data);
```
3. **小数定标标准化(Decimal Scaling)**:
将所有数的小数点向左移动相同的位数,使得它们具有相同的精度。例如,如果最大值是120,可以除以1000(假设我们希望保留三位小数):
```matlab
normalized_data = data ./ 1000;
```
以下是完整的MATLAB代码示例:
```matlab
% 数据
data = [10, 30, 60, 80, 120];
% Min-Max Scaling
[min_val, max_val] = min(max([data])); % 找到最小和最大值
normalized_min_max = (data - min_val) ./ (max_val - min_val);
% Z-Score Scaling
z_score = (data - mean(data)) ./ std(data);
% Decimal Scaling (假设保留3位小数)
decimal_scale = data / 1000;
% 显示结果
disp("Min-Max Normalized:");
disp(normalized_min_max);
disp("Z-Score Normalized:");
disp(z_score);
disp("Decimal Scaling (3 decimal places):");
disp(decimal_scale);
```
运行这段代码会分别得到三种标准化后的结果。
阅读全文