×

线性回归中的——数据预处理

hqy hqy 发表于2025-04-14 04:42:25 浏览10 评论0百度已收录

抢沙发发表评论

假设我们有一个简单的数据集,该数据集用于预测房价。特征包括面积(平方米)、卧室数量和浴室数量。目标是房价(千美元)。

import pandas as pd import numpy as np # 原始数据 data = {Area: [70, 120, 85, None, 60], Bedrooms: [2, 3, None, 1, 1], Bathrooms: [1, 2, 1, 1, 1], Price: [300, 500, 350, 150, 200] } df = pd.DataFrame(data)

缺失值处理

理由:缺失值会导致模型不能进行训练或导致模型预测偏误。处理方式包括:删除记录、填充值、使用模型进行预测等。

对"Area"使用均值填充:

area_mean = df[Area].mean() df[Area].fillna(area_mean, inplace=True)

对"Bedrooms"使用中位数填充:

bedrooms_median = df[Bedrooms].median() df[Bedrooms].fillna(bedrooms_median, inplace=True)

数据标准化

理由:标准化能够使不同量纲或量级的数据统一到相同的尺度,便于模型的收敛和提高精度。

Z分数标准化"Area":

area_mean = df[Area].mean() area_std = df[Area].std() df[Area] = (df[Area] - area_mean) / area_std

Z分数标准化"Bedrooms":

bedrooms_mean = df[Bedrooms].mean() bedrooms_std = df[Bedrooms].std() df[Bedrooms] = (df[Bedrooms] - bedrooms_mean) / bedrooms_std

数据归一化(可选)

理由:与标准化相比,归一化会将数据限制在一个小的范围内(通常是0-1之间),这在某些算法中可能是有用的。

最小-最大归一化"Area":

area_min = df[Area].min() area_max = df[Area].max() df[Area] = (df[Area] - area_min) / (area_max - area_min)

最小-最大归一化"Bedrooms":

bedrooms_min = df[Bedrooms].min() bedrooms_max = df[Bedrooms].max() df[Bedrooms] = (df[Bedrooms] - bedrooms_min) / (bedrooms_max - bedrooms_min)

总结与建议

1、缺失值处理:确定最适合您数据集的缺失值处理方式。

2、数据标准化和归一化:根据模型和数据分布选择适当的标准化或归一化方法。

预处理是一个迭代过程,可能需要多次尝试和调整。始终验证预处理步骤如何影响模型性能,并根据需要进行调整。不仅要处理训练数据,还要以相同的方式处理测试数据。