机器学习算法与技术简介

模型简介

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 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

卷积神经网络(一)——卷积、边缘化与池化层

卷积神经网络(一) ——卷积、边缘化与池化层 (原创内容,转载请注明来源,谢谢) 一、概述 卷积神经网络网络(Convolutional Neural Netw...

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

目标检测中的尺度--An Analysis of Scale Invariance in Object Detection – SNIP

An Analysis of Scale Invariance in Object Detection – SNIP Code will be made ...

5626
来自专栏机器学习原理

深度学习——目标检测(1)什么是目标检测?RCNNRCNN的检测流程:Bounding-box回归

前言:深度学习在图像的应用中目标检测是最基本也是最常用的,下面介绍几种常见的目标检测算法或者模型

1502
来自专栏SnailTyan

Dilated Convolutions——扩张卷积

1. 扩张卷积 Dilated Convolutions,翻译为扩张卷积或空洞卷积。扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilati...

3610
来自专栏帮你学MatLab

MATLAB智能算法30个案例分析(3-2)

神经网路部分 function err=Bpfun(x,P,T,hiddennum,P_test,T_test) %% 训练&测试BP网络 %% 输入 % x...

3035
来自专栏SnailTyan

Deformable Convolutional Networks论文翻译——中文版

Deformable Convolutional Networks 摘要 卷积神经网络(CNN)由于其构建模块固定的几何结构天然地局限于建模几何变换。在这项工作...

2580
来自专栏杂七杂八

K最近邻与线性分类器(下)

的系数),b为常数项,输出是10个数字,代表归属于不同的类。我们可以看下面的这个例子:假设一张图片由2*2的像素表示,共有三类,那上述公式的计算如下

1083
来自专栏AI科技评论

深度 | 详解CVPR2017最佳论文提名的 YOLO 2与 YOLO 9000物体检测系统

AI 科技评论按:YOLO是Joseph Redmon和Ali Farhadi等人于2015年提出的第一个基于单个神经网络的目标检测系统。在今年CVPR上,Jo...

4427
来自专栏Deep learning进阶路

深度学习论文笔记(六)--- FCN-2015年(Fully Convolutional Networks for Semantic Segmentation)

深度学习论文笔记(六)--- FCN 全连接网络 FullyConvolutional Networks for Semantic Segmentation ...

6280
来自专栏深度学习与计算机视觉

Object Detection系列(四) Faster R-CNN

Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detection系列...

2665

扫码关注云+社区