用python将数据规范化: 数据 13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70 - 使用最小-最大规范化将 35 映射到 [0,1] 区间 - 使用z分数规范化变化 35 - 使用小数定标规范化变换 35 - 使用深度为 3 的箱,用箱均值光滑数据。
时间: 2023-05-22 19:03:45 浏览: 125
Python数据预处理之数据规范化(归一化)示例
可以使用以下 Python 代码来完成数据规范化:
# 数据
data = [13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70]
# 最小-最大规范化,将35映射到[0,1]区间
min_val = min(data)
max_val = max(data)
normalized_data = [(x - min_val) / (max_val - min_val) for x in data]
print(normalized_data)
# z分数规范化
mean_val = sum(data) / len(data)
std_val = (sum([(x - mean_val)**2 for x in data]) / len(data))**0.5
z_score_data = [(x - mean_val) / std_val for x in data]
print(z_score_data)
# 小数定标规范化
decimal_places = len(str(max(data))) - 1
scaled_data = [x/(10**decimal_places) for x in data]
print(scaled_data)
# 深度为3的箱,用箱均值光滑数据
num_boxes = 2**3 # 深度为3,分2^3=8个箱
sorted_data = sorted(data)
box_size = len(sorted_data)//num_boxes
smoothed_data = []
for i in range(num_boxes):
start_idx = i * box_size
end_idx = (i+1) * box_size
box_data = sorted_data[start_idx:end_idx]
box_mean = sum(box_data) / len(box_data)
smoothed_data += [box_mean] * len(box_data)
print(smoothed_data)
阅读全文