特征工程-特征处理小结
特征处理包括:数据清洗和特征预处理。
一、数据清洗:
1.数据样本抽样
①样本要具备代表性
②样本比例要平衡以及样本不平衡时如何处理
③考虑全量数据
2.异常值处理
2.1异常值都包括:①空值;②重复值;
③四分位数上下1.5倍到3倍之外的异常值;
④实际业务情况下不允许出现的值 等
2.2异常值处理方法:
①识别异常值和重复值 Pandas: isnull() /duplicated()
②直接丢弃(包括重复数据) Pandas: drop() /dropna() /drop_duplicated()
③当是否有异常当作一个新的属性,替代原值 Pandas: fillna()
④集中值指代 Pandas: fillna()
⑤边界值指代 Pandas: fillna()
⑥插值 Pandas: interpolate()---Series
二、特征预处理
1.特征选择
1.1过滤思想:去掉相关性差的特征 --- SelectKBest
1.2包裹思想:构造简单模型,用线性回归器,每次迭代去掉一个弱特征--- RFE(SVR)
1.3嵌入思想:利用回归方法,去掉系数比较小的特征(这种方法存在一定风险,可能导致重要特征被丢弃)--- SelectFromModel(DecisionTreeRegressor)
2.特征变换
2.1 对指化:将小数放大(指数),大数放小(对数)
numpy.exp/ numpy.log
2.2 离散化(分箱):将连续变量分成几段(bins)
等频分箱(等深分箱)/等距分箱(等宽分箱)
2.3 归一化(标准化):把不同量纲的特征,放在同一尺度下比较
归一化 --- MinMaxScaler()
标准化 --- StandardScaler()
根据模型与具体数据分布,如果特征有上下界,归一化有时可能更好一些;如果没有上下界,标准化有时可能更好些。
2.4 数值化
标签化(定序数据) --- LabelEncoder()
独热(定类数据) --- OneHotEncoder()
2.5 正规化(Normalizer):有 l1 和 l2 两种方式
用途:① 直接用在特征上
② 用在每个对象的各个特征的表示(特征矩阵的行)
③ 模型的参数上(回归模型使用较多)
3.特征降维
3.1 PCA、奇异值分解等线性降维
PCA降维:①求特征协方差矩阵
②求协方差的特征值和特征向量
③将特征值按照从大到小的顺序排序,选择其中最大的k个
④将样本点投影到选取的特征向量上
3.2 LDA降维(LinearDiscriminantAnalysis)
4.特征衍生
对数据进行加减乘除、求导与高阶求导、人工归纳