数据预处理:使用 sklearn.preprocessing 归一化数据
数据预处理:使用 sklearn.preprocessing 归一化数据
本指南介绍如何使用 sklearn.preprocessing 库中的 MinMaxScaler 对数据进行归一化处理。我们将涵盖以下步骤:
- 填充缺失值: 使用平均值填充
age和fare列的缺失值。 - 文本特征转换: 将
sex和embarked列的文本值转换为数字表示。 - 归一化: 使用
MinMaxScaler将特征数据缩放到 0 到 1 之间。 - 处理 'SettingWithCopyWarning' 警告: 了解并解决在对 DataFrame 进行切片操作时出现的警告。
代码示例:
from sklearn import preprocessing
# 补充缺失值
data_inicial.loc[:, 'age'] = data_inicial['age'].fillna(data_inicial['age'].mean())
data_inicial.loc[:, 'fare'] = data_inicial['fare'].fillna(data_inicial['fare'].mean())
# 文字转化为数字表示
data_inicial.loc[:, 'sex'] = data_inicial['sex'].map({'female': 0, 'male': 1}).astype(int)
# 补充 embarked 缺失值并转换
data_inicial.loc[:, 'embarked'] = data_inicial['embarked'].fillna('S') # 缺失值用最多的值取代
data_inicial.loc[:, 'embarked'] = data_inicial['embarked'].map({'C': 0, 'Q': 1, 'S': 2}).astype(int)
# 提取特征和标签数据
array_data = data_inicial.values
features = array_data[:, 1:] # 没有生存情况
y_data = array_data[:, 0] # 生存情况
# 归一化
minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))
x_data = minmax_scale.fit_transform(features) # 归一化
解释:
data_inicial.loc[:, 'age'] = ...: 使用.loc方法来避免SettingWithCopyWarning警告,它允许你直接修改 DataFrame 的特定列。data_inicial['sex'].map({'female': 0, 'male': 1}).astype(int): 将sex列的文本值映射为数字表示 (女性为 0,男性为 1)。MinMaxScaler(feature_range=(0, 1)): 创建一个MinMaxScaler对象,将特征值缩放到 0 到 1 之间。minmax_scale.fit_transform(features): 拟合MinMaxScaler模型并转换特征数据。
注意:
- 确保你的数据已经整理好,并且列名正确。
- 使用
SettingWithCopyWarning是为了避免潜在的数据修改问题。 - 归一化数据可以提高机器学习模型的性能。
进一步学习:
原文地址: https://www.cveoy.top/t/topic/hcFt 著作权归作者所有。请勿转载和采集!