data = [200,300,400,600,1000] 要求 1:进行min-max标准化处理 要求2: 进行标准差标准化 要求3:进行小数定标标准化
时间: 2024-12-15 10:23:19 浏览: 10
数据标准化是预处理数据的重要步骤,它可以使不同范围的数据具有可比性。这里有三种常见的标准化方法:
1. Min-Max标准化(也称为最小最大规范化):这种方法将每个数值缩放到新的范围内,通常是[0, 1]。公式为:
```python
standardized_data = [(x - min(data)) / (max(data) - min(data)) for x in data]
```
2. 标准差标准化(Z-Score标准化或均值方差标准化):这个过程中心化数据并将其转换为标准正态分布。计算公式如下:
```python
mean = sum(data) / len(data)
std_dev = math.sqrt(sum((x - mean) ** 2 for x in data) / len(data))
standardized_data = [(x - mean) / std_dev for x in data]
```
3. 小数定标标准化(通常用于机器学习中的特征归一化):这里的“小数定标”指的是数据乘以一个固定的数,使得结果落在一个特定的小数范围内,例如 [1e-5, 1e5]。这种做法没有固定公式,取决于你选择的具体范围。
你可以使用上述代码片段来分别执行这三种标准化,记得导入`math`模块以使用`sqrt()`函数。如果你想要对所有数据都进行同样的操作,请确保在实际应用时先执行相应的初始化步骤。
现在,让我们执行这些操作:
```python
import math
data = [200, 300, 400, 600, 1000]
# Min-Max标准化
min_max_scaled_data = [(x - min(data)) / (max(data) - min(data)) for x in data]
# Z-Score标准化
mean = sum(data) / len(data)
std_dev = math.sqrt(sum((x - mean) ** 2 for x in data) / len(data))
z_score_scaled_data = [(x - mean) / std_dev for x in data]
# 假设我们要将数据映射到[1e-5, 1e5]之间的小数定标标准化
scale_factor = (1e5 - 1e-5) / max(data)
decimal_scale_data = [x * scale_factor + 1e-5 for x in data]
print("Min-Max scaled data:", min_max_scaled_data)
print("Z-Score scaled data:", z_score_scaled_data)
print("Decimal scaled data:", decimal_scale_data)
```
阅读全文