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

 

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

@浙大疏锦行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值