机器学习算法与技术简介

模型简介

PLA

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

h(x)=sign(wTx)

h(x) = sign(w^Tx)

wt+1=wt+ynxn

w_{t+1} = w_{t}+y_n x_n

优点:

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

缺点:

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

实践建议:

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

MLP

简介:多层感知器

优点:

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

缺点:

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

实践建议:

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

Linear Regression

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

h(x)=wTx

h(x) = w^Tx

Ein(w)=1N||Xw−y||2

E_{in}(w) = \frac{1}{N} || Xw-y||^2

w=(XTX)−1XTY=X†Y

w = (X^TX)^{-1} X^TY= X^{\dagger}Y

优点:

  • 闭解

缺点:

  • 模型简单

实践建议:

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

Logistic Regression

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

h(x)=θ(wTx)

h(x) = \theta(w^Tx)

Ein(w)=1N∑1Nlog(1+exp(−ynwTxn))

E_{in}(w) =\frac{1}{N} \sum_1^N \log(1+\exp(-y_nw^Tx_n))

w⇐w+η1N∑n=1Nθ(−ynwTxn)(ynxn)

w \Leftarrow w+\eta \frac{1}{N} \sum_{n=1}^N \theta(-y_nw^Tx_n)(y_n x_n)

w⇐w+ηθ(−ynwTxn)(ynxn)

w \Leftarrow w+\eta \theta(-y_nw^Tx_n)(y_n x_n)

优点:

  • 可以得到分类概率

缺点:

  • 模型简单

实践建议:

  • 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相对来说潜在的模型不是很明显。

机器学习技术

特征变换

过拟合与正则

缺失数据处理

不平衡数据处理

大数据处理

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

计算机视觉任务:图像梯度和图像完成

该笔记是以斯坦福cs231n课程的python编程任务为主线,展开对该课程主要内容的理解和部分数学推导。这篇文章是关于计算机视觉处理的,分为两篇文章撰写完成。此...

3577
来自专栏机器学习、深度学习

人脸检测--Supervised Transformer Network for Efficient Face Detection

Supervised Transformer Network for Efficient Face Detection ECCV2016 人脸检测: the...

2017
来自专栏小樱的经验随笔

损失函数详解

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数...

2542
来自专栏人工智能LeadAI

反向传播(backpropagation)算法 | 深度学习笔记

接上一篇(多层感知机(MLP)与神经网络结构 | 深度学习笔记)的最后,我们要训练多层网络的时候,最后关键的部分就是求梯度啦。纯数学方法几乎是不可能的,那么反向...

26910
来自专栏新智元

台大李宏毅最新深度学习课程:机器学习及其深层与结构化(347PPT)

【新智元导读】 台大李宏毅老师的深度学习课程以其深入浅出和全面性而受到大家的欢迎。是不可多得的、较为全面的系统的深度学习中文教材。目前,他们在网上贴出了2017...

3587
来自专栏数据派THU

开发者必看:超全机器学习术语词汇表!

来源:机器之心 本文长度为12243字,建议阅读8分钟 本文编译自谷歌开发者机器学习术语表项目,介绍了该项目所有的术语与基本解释。 A 准确率(accuracy...

2756
来自专栏IT派

福利 | 纵览机器学习基本词汇与概念

机器之心曾开放过人工智能术语集 ,该术语库项目目前收集了人工智能领域 700 多个专业术语,但仍需要与各位读者共同完善与修正。本文编译自谷歌开发者机器学习术语表...

3809
来自专栏WD学习记录

机器学习 学习笔记(22) 深度模型中的优化

用于深度模型训练的优化算法与传统的优化算法在几个方面有所不同。机器学习通常是简接作用的,再打所述机器学习问题中,我们关注某些性能度量P,其定义于测试集上并且可能...

1103
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine

上节课我们主要介绍了SVM的对偶形式,即dual SVM。Dual SVM也是一个二次规划问题,可以用QP来进行求解。之所以要推导SVM的对偶形式是因为:首先,...

2150
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 10 - NN基本功:反向传播的推导

上一篇 9 “驱魔”之反向传播大法引出了反向传播算法——神经网络的引擎,并在最后窥探了它的全貌。本篇将详细的讨论反向传播各方面的细节。尽管它被TensorFl...

3716

扫码关注云+社区