机器学习算法与技术简介

  • 模型简介
    • PLA
    • MLP
    • Linear Regression
    • Logistic Regression
    • Naive Bayes
    • SVM
    • KNN
    • Decision Tree
    • Random Forest
    • AdaBoost
    • GBDT
  • 模型比较
  • LASSO
  • 对比
    • SVM和LR
    • GBDT和RF
  • 机器学习技术
    • 特征变换
    • 过拟合与正则
    • 缺失数据处理
    • 不平衡数据处理
    • 大数据处理
  • 参考

模型简介

PLA

简介:假设集是输入空间上的超平面,目标函数是01error。算法是每次更正错误直到没有错误发生。

h(x)=sign(wTx)

wt+1=wt+ynxn

优点:

  • 简单
  • 线性可分保证收敛

缺点:

  • 假设线性可分
  • 线性可分收敛的速度没有保证
  • 线性不可分的时候每得到一个模型都要在训练集上去评估,时间复杂度过高。

实践建议:

  • 线性不可分的情况可以得到模型后在训练集上进行验证,在一定的迭代次数中选择验证集上表现最好的模型。

MLP

简介:多层感知器

优点:

  • 非线性模型
  • 在线学习
  • 学习能力极强

缺点:

  • 非凸问题,对网络权重敏感,调整参数过多
  • 不容易调参

实践建议:

  • 绝大多数问题1层隐含层就足够了(多层不好训练),隐含层神经元个数介于输入层输出层之间
  • 权重L2正则
  • 权重后期pruning
  • 权重预训练
  • 提前终止
  • 看学习曲线

Linear Regression

简介:假设集是特征的线性组合,目标函数是最小二乘,算法是闭解。

h(x)=wTx

Ein(w)=1N||Xwy||2

w=(XTX)1XTY=XY

优点:

  • 闭解

缺点:

  • 模型简单

实践建议:

  • 构建新的特征增加模型的复杂度
  • 增加L2正则项

Logistic Regression

简介:假设集是特征线性组合的逻辑函数,目标函数是最大似然训练集,损失函数是cross entropy,算法是梯度下降。

h(x)=θ(wTx)

Ein(w)=1N1Nlog(1+exp(ynwTxn))

ww+η1Nn=1Nθ(ynwTxn)(ynxn)

ww+ηθ(ynwTxn)(ynxn)

优点:

  • 可以得到分类概率

缺点:

  • 模型简单

实践建议:

  • LR可以用GD或者SGD训练,SGD效果更快一些

Naive Bayes

简介:

优点:

缺点:

实践建议:

SVM

简介:

优点:

缺点:

实践建议:

KNN

简介:

优点:

缺点:

实践建议:

Decision Tree

简介:

优点:

缺点:

实践建议:

Random Forest

简介:

优点:

缺点:

实践建议:

AdaBoost

简介:

优点:

缺点:

实践建议:

GBDT

简介:

优点:

缺点:

实践建议:

模型比较

LASSO

  • LASSO一般用来挑选重要的特征,挑选完重要的特征后再代入其他模型进行训练(先用L1再用L2等效于使用Elastic Net回归)
  • 如果只关心模型的误差率不关心可解释性,那么一般不用LASSO。LASSO适用于挑选重要的特征并且进行解释。
  • LASSO可能出现一开始选择中了A特征,然后放松正则项的惩罚,B特征进入了,A特征的系数减小甚至变为0。
  • LASSO不稳定,一方面体现在对于多重共线性的特征组,它会随机地挑选组中的某一个特征。另一方面即使特征之间的相关性不是很大,LASSO仍然可能随机地选取其中的一个。解决这个问题的办法是随机LASSO。重复多次LASSO实验,每次实验的数据是原数据的取样,每次实验的L1正则系数被scale了。最后会给特征评分,评分高的特征在LASSO子实验中被选择的次数越高。

对比

SVM和LR

  • 解决问题的思路不同:SVM最大间隔分类器;LR最大化似然函数。
  • 构建的目标函数不同,SVM的目标函数包含hinge损失函数和正则项;LR的目标函数包含cross entropy的损失函数。两者的损失函数很相像,如果LR加上正则项,那么两者的优化目标也很相像。
  • 数据分布的影响不同:Linear SVM不直接依赖数据分布,分类平面只受SV的影响;LR的分类平面受所有数据点的影响(离分类平面越近影响力越大)。
  • 距离测度:Linear SVM计算margin距离的时候依赖数据表达上的测度,如果测度不好那么就没有意义了。所以一般做SVM要先scale数据;LR也需要scale数据,不过是为了更快更好地计算优化问题。
  • 核函数:SVM转化成对偶问题后采用核函数只需要计算与少数几个支持向量的距离;LR利用representation theory采用核函数后需要计算与所有样本点的距离,解释非稀疏的。
  • 概率模型:LR可以给出分类的概率;SVM必须再叠加LR才可以给出分类的概率。
  • 实践上:特征很大,就用linear SVM或者LR。特征很小,就用核SVM或者构建特征再用LR。

GBDT和RF

  • 都是tree-based的模型,有tree模型的优点:处理缺失数据、处理类别数据、处理多分类数据、处理分类回归、对样本的分布不敏感。
  • 子树的复杂度不同:GBDT的子树是简单的,甚至是decision-stump(只有两片叶子的树)。GBDT减少error主要通过组合多个不同权重的树减少bias,每次训练的新树都是在原来树上的改进,同时多颗树的组合也一定程度上降低了variance;RF的子树是复杂的(完全生长的树)。RF减少error主要通过组合多个树减少variance。树通过到处随机尽量使彼此不相关(样本随机,切的时候特征随机),从而variance降低的更快一些。但是RF不能降低bias,其bias比子树要稍高一些。所以子树要尽可能完全生成从而有较低的vias,然后组合多个树降低variance从而达到降低error的目的。RF的子树都过拟合数据,但是过拟合的方式各不相同,通过最后的平均投票,把过拟合的差异平均了。
  • 实践并行化:RF并行化较容易自然,GBDT并行化不自然。
  • 实践调参:GDBT调参更麻烦一些。RF一般只需要调max_features(每次split参考的最大的feature个数,通常用feature总数的平方根)。
  • 实践过拟合:RF抗过拟合的能力更强一些,更少的参数需要调整。GBDT对噪声更敏感,噪声大的时候表现可能差一些。
  • 最终效果:好好调参数的GBDT效果通常更好。
  • 模型扩展:GBDT来源于优化一个目标函数,这个目标函数可以用各种可以写出梯度的error。RF相对来说潜在的模型不是很明显。

机器学习技术

特征变换

过拟合与正则

缺失数据处理

不平衡数据处理

大数据处理

参考

你可能感兴趣的:(机器学习算法与技术简介)