目录
一、非平衡数据
- 分类器偏向于多数类:
- 目标是最小化整体错误率,少数类起到的作用很小
- 假设代价是相同的
- 数据层面解决非平衡数据:
- 正负样本都非常少时,用数据合成:SMOTE利用已有样本生成更多样本
- 负样本很多,正样本很少且比例悬殊时,考虑一分类:为其中一类建模,看做异常检测
- 正负样本都足够多且比例不是特别悬殊时,考虑采样或者加权:
- 加权:不同类别分错的代价不同,难于设置合理权重
- 重采样:
- 上/过采样:复制少数类,增加训练时间,易过拟合,复制时可以加入轻微随机扰动
- 基于聚类的重采样:解决类间不平衡问题的同时还能解决类内部不平衡问题
- 先分别对正负例进行k-means聚类
- 聚类后上采样,将每一个簇的数量都提高到最大簇的数量
- 基于聚类的重采样:解决类间不平衡问题的同时还能解决类内部不平衡问题
- 下/欠采样:剔除多数类,丢失信息,模型只学到了一部分,改进:
- EasyEnsemble:有放回下采样(保证相互独立)训练多个分类器,投票
- BalanceCascade:增量训练(Boosting),下采样训练->分类错的正样本放回->下采样训练->…->投票
- 上/过采样:复制少数类,增加训练时间,易过拟合,复制时可以加入轻微随机扰动
二、特征工程方法
- 过滤式:先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征训练模型
- 包裹式:直接把最终要使用的学习器性能作为特征子集的评价标准
- 嵌入式:将特征选择与学习器训练融为一体,两者在同一个优化过程中完成(即训练时自动选择特征)
- LASSO最小绝对收缩选择算子:最小二乘+L1
- 岭回归:最小二乘+L2
三、树模型 vs. 逻辑回归 vs. 神经网络
- 树模型:
- 优点:①会自动过滤无用特征
②建树成功之后预测非常快 - 缺点:①处理缺失数据困难
②容易过拟合
③会忽略属性之间的相关性
- 优点:①会自动过滤无用特征
- 逻辑回归:
- 优点:①形式简单,可解释性好。从特征的权重可以看到不同的特征对最后结果的影响
②训练速度较快,资源占用小,计算量仅与特征数目相关
③方便输出结果调整,容易进行阈值划分 - 缺点:①准确率不是很高。因为形式非常的简单,很难去拟合数据的真实分布。
②很难处理数据不平衡的问题。
③处理非二分类问题较麻烦。
- 优点:①形式简单,可解释性好。从特征的权重可以看到不同的特征对最后结果的影响
- 神经网络:
- 优点:有很强的非线性拟合能力,强大的自学能力
- 缺点:把一切推理都变成数值计算,没能力解释推理过程和依据
- 相同点:都是解决分类问题的高手
- 区别:①LR擅长对数据整体结构的分析,而树擅长对局部结构的分析
②逻辑回归擅长线性关系分析,而树擅长非线性关系分析,高维数据要用神经网络
四、损失函数
- 平方损失函数:回归: ( y − f ( x ) ) 2 (y-f(x))^{2} (y−f(x))2
- 对数(似然)损失函数:分类: − l o g P ( y ∣ x ) -logP(y|x) −logP(y∣x)
- 0-1损失函数:相等为0,不等为1
- 绝对值损失函数: ∣ y − f ( x ) ∣ | y-f(x) | ∣y−f(x)∣
- Hinge Loss:
l o s s = m a x ( 0 , 1 − y ∗ t ) loss= max(0, 1-y*t) loss=max(0,1−y∗t),类别y=±1,t 为预测分数
主要用于SVM 软间隔 max w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( w T x i + b ) ) \max \limits_{w,b}\frac{1}{2}||w||^2 + C \sum_{i=1}^mmax(0, 1- y_i(w^Tx_i + b)) w,bmax21∣∣w∣∣2+C∑i=1mmax(0,1−yi(wTxi+b)) - 交叉熵损失(Cross Entropy、Softmax):用于Logistic 回归与Softmax 分类
L i = − l o g ( e f y i ∑ j e f j ) L_i = -log(\frac{e^{f_{y_i}}}{\sum_j{e^{f_j}}}) Li=−log(∑jefjefyi) (分母相当于标准化)
五、核函数
- 线性核: k ( x , y ) = x T y + c k(x,y)=x^T y+c k(x,y)=xTy+c
- 多项式核: k ( x , y ) = ( a x T y + c ) d k(x,y)=(ax^Ty+c)^d k(x,y)=(axTy+c)d
- 高斯核(RBF)(径向基): k ( x , y ) = e x p ( − ∣ ∣ x − y ∣ ∣ 2 2 σ 2 ) k(x,y)=exp(-\frac{||x-y||^2}{2σ^2}) k(x,y)=exp(−2σ2∣∣x−y∣∣2), k ( x , y ) = e x p ( − γ ∣ ∣ x − y ∣ ∣ 2 ) k(x,y)=exp(-γ||x-y||^2) k(x,y)=exp(−γ∣∣x−y∣∣2)
- 拉普拉斯核: k ( x , y ) = e x p ( − ∣ ∣ x − y ∣ ∣ σ ) k(x,y)=exp(-\frac{||x-y||}{σ}) k(x,y)=exp(−σ∣∣x−y∣∣)
- Sigmoid核: k ( x , y ) = t a n h ( α x T y + c ) k(x,y)=tanh(αx^T y+c) k(x,y)=tanh(αxTy+c)
六、线性分类器 vs. 非线性分类器
- 线性分类器:如果模型是参数的线性函数,且存在线性分类面,那么就是线性分类器,否则不是。
- 线性分类器有:LR、贝叶斯分类、单层感知机、线性回归
- 非线性分类器:决策树、RF、GBDT、多层感知机SVM两种都有(看线性核还是高斯核)
- 区别:线性分类器速度快、编程方便,但是可能拟合效果不是很好
非线性分类器编程复杂,但是拟合能力强,效果好
七、聚类和分类模型
Linear回归 | KNN | Decision树、bagging、boosting | LR | Bayes | SVM | SVR | Kmeans、层次、密度、GMM(高斯混合模型) | |
---|---|---|---|---|---|---|---|---|
分类 | √ | √ | √ | √ | √ | |||
回归 | √ | √ | √ | √ | ||||
聚类 | √ |
八、特征向量的缺失值处理
- 缺失值较多.直接舍弃掉,否则可能会带入较大的noise
- 缺失值较少:
- 把NaN直接作为一个特征,假设用0表示;
- 用均值填充;
- 用随机森林等算法预测填充
九、结构风险,经验风险,期望风险
- 经验风险:局部的概念,基于训练集所有样本点损失函数最小化的,越小,拟合程度越好
- 期望风险:全局的概念,基于所有样本点的损失函数最小化的
- 结构风险 = 经验风险+正则项,是对经验风险和期望风险的折中,实际最小化结构风险,防止过拟合
十、ROC_AUC
- ROC:横轴—假正例率(FPR=FP/(FP+TN)),纵轴—真正例率(TPR=TP/(TP+FN))
阈值变化时,FPR和TPR的变化情况,(0,0)为均判为反例,(1,1)为均判为正例 - AUC:ROC与x轴形成的面积,一般,面积大的更好
- 高正确率与高召回率很难同时成立