Python训练营打卡Day8(2025.4.27)

知识点见示例代码

  • 字典的简单介绍
  • 标签编码
  • 连续特征的处理:归一化和标准化

至此,常见的预处理方式都说完了

作业:对心脏病数据集的特征用上述知识完成,一次性用所有的处理方式完成预处理,尝试手动完成,多敲几遍代码。

由于所给数据集已是处理过的数据集,以下将按所给数据集的处理情况对连续特征进行归一化和标准化。

 首先观察数据,需处理数据共有5列,分别是:age,trestbps,chol,thalach,oldpeak.

归一化 

先以trestbps和chol为例

# 对trestbps列做归一化,手动构建函数实现
# 自行学习下如何创建函数,这个很简单很常用
def manual_normalize(data):
    """
    此函数用于对输入的数据进行归一化处理
    :param data: 输入的一维数据(如 Pandas 的 Series)
    :return: 归一化后的数据
    """
    min_val = data.min()
    max_val = data.max()
    normalized_data = (data - min_val) / (max_val - min_val)
    return normalized_data
data['trestbps'] = manual_normalize(data['trestbps'])


data['trestbps'].head()

#输出:
#0    0.481132
#1    0.339623
#2    0.339623
#3    0.245283
#4    0.245283
#Name: trestbps, dtype: float64
# 借助sklearn库进行归一化处理

from sklearn.preprocessing import StandardScaler, MinMaxScaler
data = pd.read_csv("python60-days-challenge-master\heart.csv")# 重新读取数据


# 归一化处理
min_max_scaler = MinMaxScaler() # 实例化 MinMaxScaler类,之前课上也说了如果采取这种导入函数的方式,不需要申明库名
data['chol'] = min_max_scaler.fit_transform(data[['chol']])


data['chol'].head()

#输出:
#0    0.244292
#1    0.283105
#2    0.178082
#3    0.251142
#4    0.520548
#Name: chol, dtype: float64

接下来只需替换变量名即可实现全部变量归一化。

标准化

 以age为例

# 标准化处理
data = pd.read_csv("python60-days-challenge-master\heart.csv")# 重新读取数据
scaler = StandardScaler() # 实例化 StandardScaler,
data['age'] = scaler.fit_transform(data[['age']])


data['age'].head()

#输出:
#0    0.952197
#1   -1.915313
#2   -1.474158
#3    0.180175
#4    0.290464
#Name: age, dtype: float64

 

 其余变量同理也仅需执行此操作。

@浙大疏锦行

你可能感兴趣的:(python,算法,开发语言)