1 不均衡问题--类别不均衡
如果是类别分布不平衡,有很多方法解决,比如重采样,使用决策树模型(树模型对样本不均衡问题不敏感),样本加权完成,修改损失函数。但是特征分布不均衡,应该怎么做?
类别不平衡处理方法
https://www.cnblogs.com/JZ-Ser/p/7508531.html
1.0 重采样
过采样。复制小众类样本的数量,或者利用smote生成。
下采样。抽取大众类样本的一部分。
为什么过采样会起作用?
因为小众样本本分错产生的效果会累加。
1.1 通过样本加权
修改的不是样本对应的特征的值,而是调整样本的权重。一般是加大小众类别的权重。SVM可以进行修改,类别的样本数量越多,权重越小,也可以直接指定每种类别的权重,比如{1:10,0:1}
从算法来讲,通过加大小众样本的权重,当小众类样本出现分类错误情况时,产生的损失函数值较大,从而使得模型在学习时,会偏向于降低小样本的分错概率。
1.2 通过集成学习
从大众类的样本中随机抽取样本,选取所有正样本,训练基分类器。最后将各个模型的结果整合起来。
2 不均衡问题--特征值不均衡
例如性别特征,绝大部分为男性,少部分是女性,预测是否为程序员。如果男性样本中,大部分都是“yes”类,说明这个特征纯净度比较高,混乱程度小,信息熵小,信息增益大,适合作为决策树的根节点;如果男性样本中,“yes”类和“No”类,基本各占一半,说明这个特征意义不大。可以考虑舍弃。
3 特征值缺失--判断特征重要性
首先可以用皮尔森相关系数和RF等手段,判断该特征是否和列表标签相关,如何相关系数比较小,可以直接删掉,如果相关度比较高,应该怎么办?
皮尔森相关系数
RF选择特征
https://blog.csdn.net/tuntunwang/article/details/50587518
特征的重要性计算:首先利用oob作为测试集,得到RF的OOE;逐步干扰每个特征的值,得到新的OOE,哪个特征的OOE变化最大,哪个特征的重要性最大。
逻辑回归用于特征选择
去掉权重小的特征
4 特征值缺失--处理缺失特征值
某个重要的特征,确实非常严重怎么办?
中位数填充;用其他特征来预测;选用树模型。
决策树如何处理缺失值??
https://blog.csdn.net/u012328159/article/details/79413610
决策树对于缺失值的处理主要有两部分:第一部分是构造数的时候,计算每个节点的重要性,第二部分是如何选择路径,进入哪个子节点。
针对第一个问题,针对某个具体属性,筛选样本,得到该特征不缺失的子样本。通过该子样本,得到该节点的重要性。最后通过缺失程度进行加权,权重可以是缺失比例。
针对第二个问题,当某个属性a在某个样本中值缺失时,会按照某个概率将该样本放入所有所有子节点中。概率值,可以按照取值样本所占比例来计算。
在后续计算时,这个样本的权重就被减少了。默认样本的权重为1。