目录
2.2 归一化Max-Min( # MinMaxScaler标准化处理)
数据预处理是指在对数据进行分析或建模前对数据进行清洗、处理、转换等操作,以提高数据的质量和可用性。常用的数据预处理方法有:
-
数据清洗:包括填充缺失值、去除重复数据、处理异常值等。
-
特征选择:从原始数据中选取对建模有用的特征,去除冗余特征。
-
特征转换:对特征进行编码、归一化处理、离散化等。
-
数据集划分:将数据集划分为训练集、验证集和测试集,保证模型的可靠性和泛化能力。
-
数据集平衡:对不平衡的数据集进行处理,如欠采样、过采样等。
-
数据集扩增:对数据进行增强,如旋转、镜像等。
-
数据降维:对高维数据进行降维,如主成分分析、线性判别分析等。
-
数据集合并:将多个数据集合并成一个。
-
数据归档:将数据进行归档保存,便于日后的使用。
下面主要介绍基本数据清洗及部分特征转换操作
1. 数据清洗---缺失值处理
数据集中经常存在缺失值,我们可以通过各种方法处理这些值,比如删除或填充。
- 删除:删除缺失值是最简单的处理方法。但它可能会导致信息的丢失。
import pandas as pd
df = pd.read_csv('data.csv')
df = df.dropna()
- 填充:通常可以使用列的平均值、中位数或众数填充缺失值。(填充有多种方式,后续补充)
df = pd.read_csv('data.csv')
df = df.fillna(df.mean())
2. 数值型数据特征转换
标准化&归一化
数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。
示例代码:
import pandas as pd
from sklearn import preprocessing
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv')
2.1 Z-Score标准化
数据标准化将数据缩放到具有0均值和1标准偏差的范围内。
# Z-Score标准化
from sklearn.preprocessing import StandardScaler
zscore_scaler = preprocessing.StandardScaler() # 建立StandardScaler对象
df['normalized_column'] = zscore_scaler.fit_transform(df[['original_column']]) # StandardScaler标准化处理
2.2 归一化Max-Min( # MinMaxScaler标准化处理)
数据归一化将数据缩放到0和1之间。
# 归一化Max-Min
from sklearn.preprocessing import MinMaxScaler
minmax_scaler = preprocessing.MinMaxScaler() # 建立MinMaxScaler模型对象
df['normalized_column'] = minmax_scaler.fit_transform(df[['original_column']])
3. 类别型数据特征转换( 数据编码)
类别型数据可以转换为数字,使其可以被模型处理。数据编码是一种将分类数据转化为数值型数据的方法,使其可以被机器学习模型处理。
3.1 标签编码
每个类别被映射到一个整数。适用于有序分类数据。
# 标签编码
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
df['encoded_column'] = encoder.fit_transform(df['categorical_column'])
3.2 OneHot(独热编码)
为每个类别创建一个新的二进制特征。适用于无序分类数据。
# OneHot编码
df = pd.get_dummies(df, columns=['categorical_column'])