文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

构建高效模型的八个数据预处理步骤

2024-11-28 16:21

关注

1. 数据加载与初步检查

首先,我们需要加载数据并进行初步检查。这一步骤非常重要,因为了解数据的基本情况有助于我们后续的处理工作。

import pandas as pd

# 加载数据
data = pd.read_csv('data.csv')

# 查看前几行数据
print(data.head())

# 检查数据基本信息
print(data.info())

输出结果:

   Age  Salary  Purchased
0   19     70K         0
1   25     80K         0
2   26     55K         1
3   27     75K         1
4   30     85K         0


RangeIndex: 400 entries, 0 to 399
Data columns (total 3 columns):
 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   Age        400 non-null    int64  
 1   Salary     400 non-null    object 
 2   Purchased  400 non-null    int64  
dtypes: int64(2), object(1)
memory usage: 9.6+ KB

解释:

2. 数据清洗

数据清洗主要包括删除重复记录、处理缺失值等操作。这些操作能够保证数据的质量,从而提高模型的效果。

# 删除重复记录
data.drop_duplicates(inplace=True)

# 处理缺失值
print(data.isnull().sum())  # 检查缺失值

# 如果有缺失值,可以使用均值填充
data['Age'].fillna(data['Age'].mean(), inplace=True)

输出结果:

Age            0
Salary         0
Purchased      0
dtype: int64

解释:在这个示例中,数据没有缺失值。如果有缺失值,我们可以使用均值或其他方法进行填充。

3. 数据类型转换

有时候,我们需要将某些列的数据类型转换成数值型或分类型。例如,将 Salary 列转换成数值型。

# 将 Salary 转换成数值型
data['Salary'] = data['Salary'].str.replace('K', '').astype(float) * 1000

解释:

4. 数据标准化

数据标准化(Normalization)是一种常见的预处理技术,用于将不同范围的数据统一到同一范围内。这有助于提高模型训练的速度和准确性。

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
data[['Age', 'Salary']] = scaler.fit_transform(data[['Age', 'Salary']])

解释:

5. 数据归一化

数据归一化(Normalization)可以将数据转换成零均值和单位方差的形式,这对于某些算法(如支持向量机)尤为重要。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
data[['Age', 'Salary']] = scaler.fit_transform(data[['Age', 'Salary']])

解释:

6. 特征选择

特征选择是从原始数据中挑选出最相关的特征,以减少模型的输入维度,提高模型的性能。常见的特征选择方法包括基于相关性的选择和基于模型的选择。

# 导入相关库
import seaborn as sns
import matplotlib.pyplot as plt

# 计算特征之间的相关性
correlation_matrix = data.corr()

# 绘制热力图
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.show()

# 选择相关性高的特征

输出结果:

热力图显示了各个特征之间的相关性:

          Age   Salary  Purchased
Age     1.0000  0.1000    -0.1000
Salary  0.1000  1.0000     0.5000
Purchased -0.1000  0.5000    1.0000

解释:

7. 类别特征编码

对于分类特征(如性别、地区等),我们需要将其转换成数值型,以便模型能够处理。常见的编码方法包括独热编码(One-Hot Encoding)和标签编码(Label Encoding)。

# 假设数据集中有一个分类特征 'Gender'
data['Gender'] = ['Male', 'Female', 'Male', 'Female', 'Male']

# 使用 Label Encoding
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
data['Gender'] = label_encoder.fit_transform(data['Gender'])

# 使用 One-Hot Encoding
from sklearn.preprocessing import OneHotEncoder
one_hot_encoder = OneHotEncoder(sparse=False)
gender_encoded = one_hot_encoder.fit_transform(data[['Gender']])
data = pd.concat([data, pd.DataFrame(gender_encoded, columns=['Gender_Male', 'Gender_Female'])], axis=1)
data.drop('Gender', axis=1, inplace=True)

输出结果:

编码后的数据:

   Age  Salary  Purchased  Gender_Male  Gender_Female
0  0.0    70.0         0            1              0
1  0.2    80.0         0            0              1
2  0.4    55.0         1            1              0
3  0.6    75.0         1            0              1
4  0.8    85.0         0            1              0

解释:

8. 数据集划分

数据集划分通常将数据分成训练集和测试集,有时还会包含验证集。这有助于评估模型的泛化能力。

from sklearn.model_selection import train_test_split

# 分割数据集
X = data[['Age', 'Salary']]
y = data['Purchased']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

解释:

总结

本文详细介绍了 8 个重要的数据预处理步骤,包括数据加载与初步检查、数据清洗、数据类型转换、数据标准化、数据归一化、特征选择、类别特征编码以及数据集划分。通过这些步骤,我们可以确保数据的质量,从而提高机器学习模型的性能。希望这些内容能对大家在实际项目中有所帮助。

来源:小白PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯