python实验内容:分别使用自编函数和调用库函数的方式实现如下两题: 1、实现三种数据标准化函数,min-max分别将最低、最高映射为0-1和 60-100(两个子函数)、Z-score标准化、sigmod标准化。返回python代码
时间: 2024-09-12 17:17:44 浏览: 66
在Python中,数据标准化是常见的数据预处理步骤,用于消除不同特征的量纲影响,并将数据缩放到一定的范围。以下是使用自编函数和调用库函数两种方式来实现你提到的数据标准化需求的示例代码。
首先是自编函数的方式:
```python
import numpy as np
# Min-1之间
def min_max_normalize(data):
min_val = np.min(data)
max_val = np.max(data)
return (data - min_val) / (max_val - min_val)
# Min-Max标准化函数:将数据映射到60-100之间
def min_max_normalize_60_100(data):
min_val = np.min(data)
max_val = np.max(data)
return (data - min_val) / (max_val - min_val) * 40 + 60
# Z-Score标准化函数:基于均值和标准差
def z_score_normalize(data):
mean_val = np.mean(data)
std_val = np.std(data)
return (data - mean_val) / std_val
# Sigmod标准化函数:将数据映射到0-1之间
def sigmod_normalize(data):
return 1 / (1 + np.exp(-data))
# 示例数据
data = np.array([1, 2, 3, 4, 5])
# 应用自编的标准化函数
normalized_data_min_max = min_max_normalize(data)
normalized_data_min_max_60_100 = min_max_normalize_60_100(data)
normalized_data_z_score = z_score_normalize(data)
normalized_data_sigmod = sigmod_normalize(data)
print(normalized_data_min_max)
print(normalized_data_min_max_60_100)
print(normalized_data_z_score)
print(normalized_data_sigmod)
```
然后是使用库函数的方式:
```python
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 使用库函数进行Min-Max标准化和Z-Score标准化
scaler_min_max = MinMaxScaler()
scaler_z_score = StandardScaler()
# 示例数据
data = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
# 应用库函数的标准化方法
normalized_data_min_max = scaler_min_max.fit_transform(data).flatten()
normalized_data_z_score = scaler_z_score.fit_transform(data).flatten()
print(normalized_data_min_max)
print(normalized_data_z_score)
```
注意:在使用库函数时,通常需要确保数据是二维数组,因此我们将数据重塑为`reshape(-1, 1)`。最后使用`.flatten()`将其转换回一维数组,以便与自定义函数的结果进行比较。
阅读全文