数据预处理:方法、代码示例与最佳实践
数据预处理是指在进行数据分析和机器学习模型训练之前,对原始数据进行清洗、转换和规范化的过程。它可以帮助提高数据质量,降低噪声,并使数据更适合模型训练。下面是一些常用的数据预处理方法和相应的代码示例:
-
数据清洗
- 删除重复值:
df.drop_duplicates(inplace=True) - 处理缺失值:
df.dropna(inplace=True) # 删除包含缺失值的行 df.fillna(value, inplace=True) # 使用指定值填充缺失值 - 处理离群值:
df = df[(np.abs(df[column]-df[column].mean()) / df[column].std()) < threshold]
- 删除重复值:
-
特征选择
- 相关性分析:
corr_matrix = df.corr() corr_matrix['target_variable'].sort_values(ascending=False) - 方差筛选:
from sklearn.feature_selection import VarianceThreshold threshold = 0.8 # 设定方差阈值 selector = VarianceThreshold(threshold) selector.fit_transform(X) - 基于模型选择:
from sklearn.feature_selection import SelectFromModel from sklearn.linear_model import Lasso lasso = Lasso(alpha=0.1) selector = SelectFromModel(lasso) selector.fit_transform(X, y)
- 相关性分析:
-
数据转换
- 标准化:
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X) - 归一化:
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X) - 编码分类变量:
from sklearn.preprocessing import LabelEncoder, OneHotEncoder encoder = LabelEncoder() X_encoded = encoder.fit_transform(X) onehot_encoder = OneHotEncoder() X_encoded = onehot_encoder.fit_transform(X_encoded.reshape(-1, 1))
- 标准化:
-
数据集划分
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
以上是一些常用的数据预处理方法和相应的代码示例,具体的预处理方法和代码实现会根据数据的特点和任务的需求而有所差异。
原文地址: http://www.cveoy.top/t/topic/plhK 著作权归作者所有。请勿转载和采集!