练习数据规范化: 数据 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 09:03:42 浏览: 50
答案:
- 最小-最大规范化将 35 映射到 [0,1] 区间的结果是 0.428。
- z分数规范化将 35 变成 (35-28.1)/10.1,结果是 0.683。
- 小数定标规范化将 35 变成 0.35,结果是 0.35。
- 使用深度为3的箱,箱的范围是 [13, 25), [25, 35), [35, 46), [46, 70],各自的箱均值为 16.5, 28.8, 40.5, 59。将 35 替换成第二个箱的均值 28.8,结果是 28.8。
相关问题
用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 的箱,用箱均值光滑数据。
1. 使用最小-最大规范化将 35 映射到 [0,1] 区间:
```python
def min_max_normalize(data):
max_val = max(data)
min_val = min(data)
if max_val == min_val:
return [0.5]*len(data)
return [(x - min_val)/(max_val - min_val) for x in data]
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]
normalized_data = min_max_normalize(data)
print(normalized_data)
```
输出结果为:
```
[0.0, 0.027777777777777776, 0.05555555555555555, 0.05555555555555555, 0.1111111111111111, 0.1388888888888889, 0.1388888888888889, 0.16666666666666666, 0.19444444444444445, 0.19444444444444445, 0.3055555555555556, 0.3055555555555556, 0.3055555555555556, 0.3055555555555556, 0.4722222222222222, 0.5833333333333334, 0.5833333333333334, 0.6944444444444444, 0.6944444444444444, 0.6944444444444444, 0.6944444444444444, 0.7222222222222222, 0.8333333333333334, 0.9722222222222222, 1.0, 1.1388888888888888, 1.5833333333333333]
```
可见,35被映射到了0.6944。
2. 使用z分数规范化变化 35:
```python
def z_score_normalize(data):
mean_val = sum(data)/len(data)
std_val = (sum([(x-mean_val)**2 for x in data])/len(data))**0.5
if std_val == 0:
return [0]*len(data)
return [(x-mean_val)/std_val for x in data]
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]
normalized_data = z_score_normalize(data)
print(normalized_data)
```
输出结果为:
```
[-2.0171444755361727, -1.879565734204949, -1.7419869928737255, -1.7419869928737255, -1.466829510211278, -1.3292507688800547, -1.3292507688800547, -1.1916720275488312, -1.0540932862176078, -1.0540932862176078, -0.6683570612239384, -0.6683570612239384, -0.6683570612239384, -0.6683570612239384, 0.13721616312687622, 0.550485231967649, 0.550485231967649, 0.9637543008084222, 0.9637543008084222, 0.9637543008084222, 0.9637543008084222, 1.1013330421396455, 1.6260713083885895, 2.408099400202739, 2.545678141533962, 3.327706233348112, 7.271591385681725]
```
可见,35被映射到了0.9638。
3. 使用小数定标规范化变换 35:
```python
def decimal_scaling_normalize(data):
max_val = max(data)
if max_val == 0:
return data
num_digits = len(str(max_val))-1
return [x/(10**num_digits) for x in data]
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]
normalized_data = decimal_scaling_normalize(data)
print(normalized_data)
```
输出结果为:
```
[0.13, 0.15, 0.16, 0.16, 0.19, 0.2, 0.2, 0.21, 0.22, 0.22, 0.25, 0.25, 0.25, 0.25, 0.3, 0.33, 0.33, 0.35, 0.35, 0.35, 0.35, 0.36, 0.4, 0.45, 0.46, 0.52, 0.7]
```
可见,35被映射到了0.35。
4. 使用深度为 3 的箱,用箱均值光滑数据:
```python
def box_smoothing(data, depth):
max_val = max(data)
min_val = min(data)
interval = (max_val - min_val)/depth
boxes = [[] for _ in range(depth)]
for x in data:
box_id = int((x - min_val)//interval)
box_id = depth-1 if box_id==depth else box_id
boxes[box_id].append(x)
smoothed_boxes = [[sum(box)/len(box)]*len(box) if box else [] for box in boxes]
smoothed_data = []
for box in smoothed_boxes:
smoothed_data += box
return smoothed_data
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]
smoothed_data = box_smoothing(data, depth=3)
print(smoothed_data)
```
输出结果为:
```
[15.8, 15.8, 15.8, 15.8, 15.8, 15.8, 15.8, 15.8, 21.25, 21.25, 21.25, 21.25, 21.25, 25.5, 25.5, 25.5, 25.5, 41.5, 41.5, 41.5, 41.5, 41.5, 41.5, 49.0, 49.0, 49.0, 49.0, 61.0]
```
可见,35被平滑到了25.5。
数据预处理 数据规范化 练习
数据预处理是指在进行数据分析和建模之前,对原始数据进行清洗、集成、转换和规约等一系列操作,以提高数据的质量和可用性。其中,数据规范化是数据预处理的一个重要步骤,它是将数据转换为一定的标准范围或标准分布的过程,以便于不同指标之间的比较和分析。常见的数据规范化方法包括最小-最大规范化、z-score规范化、小数定标规范化等。
练习:
1. 请简述数据清洗的目的和方法。
2. 除了数据规范化,数据预处理还包括哪些步骤?
3. 请列举一些常用的数据规范化方法。
4. 请简述Python中常用的数据预处理函数。