核心思路
先撒网再挑选
根据业务和经验选择与问题可能相关的所有变量 然后再精细筛选
1.在撒网阶段 若变量满足以下任意条件 则先剔除:
(1) 缺失值较高 可以事先设定一个阈值 比如80% 高于这个值的变量不纳入考虑
(2) 变量大部分值都是同一个值
(3) 变量的可取值太多
2.计算各变量之间的相关性 相关系数
通常将类别型变量和连续型变量分开计算之间的相关性
定类变量
定序变量
连续变量
变量相关性计算的几种方式:
(1) 定类变量和定类变量之间的相关性
lambda 相关系数
(2) 定类变量和定序变量之间的相关性
gamma相关系数
tau系数
spearman相关系数
(3) 连续变量和连续变量
spearman相关系数
pearson相关系数
3.变量挑选
变量筛选和变量降维
(1) 变量筛选包括变量距离聚类 和 模糊聚类
计算各个变量之间的相关性 相关性越大 距离越近
根据变量之间的距离进行聚类 样本距离近的归为一类
根据聚类方式可分为层次聚类 动态聚类 模糊聚类 基于密度聚类或最大期望聚类
基于变量的层次聚类(俩俩合并)步骤为:
计算变量之间的距离 将距离最近的点合并到同一个类别中
计算类别与类别之间的距离,将距离最近的类合并成一个类
不停的合并 直到形成一个类
类和类之间的距离计算方式可以有 最短距离法 最长距离法 中间距离法 类平均法
(1) 计算变量相关性
cor(x, y, method=‘pearson’)
method 还可以是kendall 或 spearman
(2) 层次聚类
hclust(d,method)
d dist型对象 as.dist转换
method 可以是
最短距离法 single
最长距离法 complete
中间距离法 median
相似法 mcquitty
类平均法 average
重心法 centroid
离差平方和法 ward.D
模糊聚类是指在分类过程中不仅要考虑事物之间有无关系 还要考虑事物之间关系的深浅程度
(2) 变量降维包括 主成分分析和因子分析
主成分分析应用步骤:
a 计算样本-变量矩阵的相关性矩阵
b 计算相关矩阵的特征值和特征向量
c 选择主成分 一般选择累计贡献率达到80% ~ 90% 的前k个变量
d 计算原始变量和每个主成分的相关系数
e 主成分旋转
因子分析
因子分析相比于主成分分析的最大优势在于可通过灵活的旋转使得结果更易于解释
因子分析的主要步骤:
a 选择合适的因子个数
因子个数的选择是因子分析的重点,少了不能有效解释原始变量的方差,多了不能达到降维的目的, 常用的方法有特征值法和碎石图法
特征值法是计算相关矩阵的特征值,大于1的特征值个数就是因子个数
碎石图法则是将特征值从大到小连成折现图,折线必然是先陡后平的,选择由陡变平的前一个点即是因子个数
但这两种方法具有一定的主观性
另一种方法是平行分析法, 其逻辑是如果一个从真实数据中抽取的因子所解释的变异比随机数据中的特征因子所解释的变异还小 那么这个因子就应该被舍弃。
首先生成一组随机数据的矩阵,这些矩阵的变量个数和被试的个数与真实的数据一致
然后求出随机矩阵的特征值,并计算这些特征值的均值
比较这些特征值的均值曲线和真实数据矩阵特征值的碎石图 如果真实数据的特征值落在随机数据特征值均值曲线之上,则保留这个因子 否则去掉这个因子。
b 选择适当的方法进行参数估计
c 因子旋转
为减少对因子解释的主观性 常常使用因子旋转 包括正交旋转和斜交旋转
d 计算因子得分
给出每个样本xi关于m个公共因子的得分,是对不可测变量f的取值作出估计 常用加权最小二乘法和回归法
特征选择的方法
1 过滤法 根据阈值筛选
方差过滤 方差越大的特征 重要性越大 指定一个方差阈值 sklearn中varianceThreshold可以很好解决
相关系数 用于输出是连续型的 计算所有特征与输出值之间的相关系数 按照一定阈值筛选
假设检验的方法 如卡方检验 可以检验某个特征分布和输出值分布之间的相关性
F检验 f_classif 分类问题选择特征
t检验 f_regression 回归问题选择特征
信息增益 越大表示该特征与输出值之间的相关性越大 保留 sklearn中用mutual_info_classif 和 mutual_info_regression 回归来计算输入特征和输出值之间的信息增益
2 包装法 选择一个目标函数来一步步筛选特征
常用的是递归消除特征法 使用一个算法进行多轮训练 每轮训练后消除若干权值系数的对应的特征
然后基于新的特征进行下一轮新的训练 在sklearn中 可使用RFE函数来进行特征选择
3 嵌入法
也是使用机器学习的算法进行特征筛选 与RFE的区别在于不是通过逐步减少特征来训练 而是使用全部的特征 在sklearn中可用selectFromModel函数来进行特征的选择
最常用的是L1正则化和L2正则化来进行特征选择 惩罚项越大 模型系数越小 大到一定程度时,模型系数为0 起到特征筛选的目的
此外可用gbdt
高级组合特征的构建与筛选
若干项加和差乘除等等
FM FFM DEEPFM
网友评论