全文共4514字,预计学习时长9分钟
开发机器学习模型最重要的两个步骤就是特征工程和预处理。特征工程包括特征的设计,而预处理则涉及数据清理。
我们经常花费大量时间,对数据进行精加工以用于建模。为使这一过程更加高效,本文将分享4个技巧,帮助你进行特征设计与预处理。
这些技巧可用于创建新特征、检测异常值、处理不平衡数据以及估算缺失值。
领域知识可能是设计特征期间最重要的几件事情之一。更好地了解你使用的特征,可以防止出现欠拟合和过拟合的情况。
1. 重新采样不平衡数据
实际上,你经常会遇到不平衡的数据。如果你的目标只是轻微的不平衡,那么这种不平衡当然不成问题。使用合适方式,例如平衡精确度、Precision-Recall 曲线或F1分数验证数据,就可解决这一问题。
不幸的是,情况并非总是如此,你的目标变量可能非常不平衡(例如,10:1)。那么,你可以对少数目标进行过采样,使用被称为SMOTE的技术引入平衡。
SMOTE
SMOTE全称为Synthetic Minority Oversampling Technique,是一种过采样技术,用于增加少数类的样本。
通过查看目标的特征空间、检测相邻目标,它能生成新样本。然后,仅选择相似样本,在相邻样本的特征空间内随机改变一列。
实现SMOTE的模块位于imbalanced-learn 文件夹中。你只需导入文件夹,应用fit_transform即可:
import pandas as pd from imblearn.over_sampling import SMOTE # Import data and create X, y df = pd.read_csv('creditcard_small.csv') X = df.iloc[:,:-1] y = df.iloc[:,-1].map({1:'Fraud', 0:'No Fraud'}) # Resample data X_resampled, y_resampled = SMOTE(sampling_strategy= {"Fraud":1000}).fit_resample(X, y) X_resampled = pd.DataFrame(X_resampled, columns=X.columns)