练习数据规范化: 数据 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 07:03:42 浏览: 111
对于第一个问题,以下是 ChatGPT 的回答:
- 使用最小-最大规范化将 35 映射到 [0,1] 区间:将 35 映射到 [0,1] 区间后得到的结果是 (35-13)/(70-13)=0.366.
- 使用z分数规范化变化 35:使用z分数规范化将 35 转换为标准分(z-score),公式为(z-μ)/σ,其中μ为样本均值,σ为样本标准差。假设样本均值为31.23,标准差为12.84,则将 35 转换为标准分得到的结果为 (35-31.23)/12.84=0.293。
- 使用小数定标规范化变换 35:采用小数定标规范化将 35 转换为以10为底的小数形式,公式为x/10^k,其中k为使得所有数据都在 (-1, 1) 区间内的最小整数,对于本题,35 的k为2,因此将 35 转换为小数形式得到的结果为 0.35。
- 使用深度为 3 的箱,用箱均值光滑数据:将数据分成深度为 3 的箱子,计算每个箱子的均值,将每个数据点替换为所在箱子的均值。具体操作是先计算数据的四分位距(Q1,Q2,Q3),然后得到深度为3的箱子,例如,Q1-1.5*(Q3-Q1)到Q1, Q1到Q2, Q2到Q3, Q3到Q3+1.5*(Q3-Q1),将 35 替换为所在箱子的均值即可。
希望这些回答能对您有所帮助。
相关问题
用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。
阅读全文