常见机器学习分类算法

常见机器学习分类算法

    • Bayes贝叶斯分类法
      • 基本思想
      • 方法过程
      • 独立假设
      • 计算方法
      • 参数估计
      • 优缺点
    • Decision Tree决策树
    • Support Vector Mechine 支撑矢量机
    • K近邻
    • Logistic Regression逻辑回归
      • 逻辑斯特分布
      • 基本思想
      • 参数估计
    • Nerual Network神经网络
    • Adaboosting

Bayes贝叶斯分类法

基本思想

   对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对于给定的输入 x x x,利用贝叶斯定理求出后验概率。
   朴素贝叶斯法是典型的生成式学习方法:由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求后验概率分布 P ( X ∣ Y ) P(X|Y) P(XY)

监督学习方法可以分为生成方法判别方法,分别得到生成模型判别模型
生成方法:学习的是联合概率分布,然后基于学习到的联合概率密度,利用条件概率公式作为预测。
判别方法:是直接学习模型的决策函数,或者直接学习到条件概率分布进行预测。

方法过程


   假设输入空间为n维向量的集合,输出空间为类标记集合。 X X X为定义在输入空间上的随机向量, Y Y Y为定义在输出空间上的随机变量, P ( X , Y ) P(X,Y) P(X,Y) X X X Y Y Y的联合概率密度,训练数据集 T T T P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生。


   朴素贝叶斯法认为数据集满足上述假设,于是通过训练数据集来学习得到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
   联合概率密度公式:
P ( X , Y ) = P ( X ∣ Y ) ∗ P ( Y ) P(X,Y)=P(X|Y)*P(Y) P(X,Y)=P(XY)P(Y)
因此只需求 P ( Y ) P(Y) P(Y)
P ( Y = c k ) , k = 1 , 2 , . . . K , c k 为 类 别 标 记 P(Y=c_k), k=1,2,...K, c_k为类别标记 P(Y=ck),k=1,2,...K,ck
P ( X ∣ Y ) P(X|Y) P(XY)
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( n ) = x ( n ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k) P(X=xY=ck)=P(X(1)=x(1),...,X(n)=x(n)Y=ck)

   其中条件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck)有指数级数量的参数,其实际估计是不可行的。若 x ( j ) x^{(j)} x(j)可取的值有 S j S_j Sj个,Y可取的值有K个,那么参数的个数为 K ∏ j = 1 n S j K\prod_{j=1}^nS_j Kj=1nSj。参数数量过多导致无法求解。

独立假设

   因此,朴素贝叶斯法做了条件独立性的假设,即假设所有属性不相关。此时的参数个数变为 K ∑ j = 1 n S j K\sum_{j=1}^nS_j Kj=1nSj。这种假设使得朴素贝叶斯法的求解变的简单,但却会牺牲一定的正确率。

计算方法

   朴素贝叶斯分类时,将后验概率最大的类别作为 x x x的类输出。后验概率;
P ( Y = c k ∣ X = x ) = P ( X , Y ) ∑ k P ( X , Y ) = P ( X = x ∣ Y = c k ) ∑ i P ( X = x ∣ Y = c i ) P(Y=c_k|X=x)=\frac{P(X,Y)}{\sum_kP(X,Y)}=\frac{P(X=x|Y=c_k)}{\sum_iP(X=x|Y=c_i)} P(Y=ckX=x)=kP(X,Y)P(X,Y)=iP(X=xY=ci)P(X=xY=ck)

                     后验概率最大化等同于0-1损失下的期望风险最小化

参数估计

   极大似然估计:
   先验概率的极大似然估计为:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N} P(Y=ck)=Ni=1NI(yi=ck)
   条件概率的极大似然估计:
P ( X ( j ) = a j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^{(j)}=a_j|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_j,y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)} P(X(j)=ajY=ck)=i=1NI(yi=ck)i=1NI(xi(j)=aj,yi=ck)

   贝叶斯估计:
   用极大似然估计可能会出现所要估计的概率值为0的情况。解决办法是使用贝叶斯估计,具体的先验概率为:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda} P(Y=ck)=N+Kλi=1NI(yi=ck)+λ
条件概率公式为:
P ( X ( j ) = a j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ P(X^{(j)}=a_j|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_j,y_i=c_k)+\lambda}{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda} P(X(j)=ajY=ck)=i=1NI(yi=ck)+Sjλi=1NI(xi(j)=aj,yi=ck)+λ

λ = 1 \lambda=1 λ=1时称为拉普拉斯平滑

优缺点

优点:

  • 参数少,对缺失数据不敏感
  • 有坚实数学基础和稳定的分类效率

缺点:

  • 需要假设属性之间相互独立
  • 需要知道先验概率
  • 分类决策存在固有错误率

Decision Tree决策树

优点:

  • 不需要任何领域知识或参数
  • 适合高维数据
  • 简单易理解
  • 短时间内处理大量数据,得到可行性较好的结果
  • 能同时处理数据型和常规型属性

缺点:

  • 对于各类样本数量不一致的数据集,信息增益偏向于选择那些具有更多数值的属性
  • 容易过拟合
  • 忽略了属性间的相关性
  • 不支持在线学习

Support Vector Mechine 支撑矢量机

优点:

  • 可解决小样本下机器学习问题
  • 提高泛华性能
  • 可解决高维、非线性问题
  • 避免了神经网络结构选择和局部极小的问题

缺点:

  • 对于缺失数据敏感
  • 对于内存消耗较大
  • 运行和调参麻烦

K近邻

优点:

  • 思想简单,理论纯属,可分类也可以回归
  • 可用于非线性分类
  • 时间复杂度O(n)
  • 准确度高,对数据无假设,且对outlier不敏感

缺点:

  • 计算量较大
  • 对于样本分类不均衡的问题,会产生误判
  • 需要大量内存

Logistic Regression逻辑回归

逻辑斯特分布

   设 X X X为连续型随机变量, X X X服从逻辑斯特分布是指 X X X具有下列分布函数和密度函数:
F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ F(x)=P(X\le x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=P(Xx)=1+e(xμ)/γ1
f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=F'(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} f(x)=F(x)=γ(1+e(xμ)/γ)2e(xμ)/γ
其中, μ \mu μ为位置参数, γ \gamma γ为形状参数。

基本思想

   虽然名为回归模型,但实际是一种分类模型!!
根据训练数据集学习得到参数 w w w b b b,得到条件概率分布:
P ( Y = 1 ∣ x ) = e x p ( w x + b ) 1 + e x p ( w x + b ) P(Y=1|x)=\frac{exp(wx+b)}{1+exp(wx+b)} P(Y=1x)=1+exp(wx+b)exp(wx+b)
P ( Y = 0 ∣ x ) = 1 1 + e x p ( w x + b ) P(Y=0|x)=\frac{1}{1+exp(wx+b)} P(Y=0x)=1+exp(wx+b)1
   对于测试实例 x x x,按照上面两个式子分别计算其属于两类的概率,将其分至概率较大的类别。
   其实质为被逻辑斯特方程归一化后的线性回归模型: 即在线性回归的基础上套了一个逻辑方程,所以实质上还是线性的映射;

参数估计

   对于给定训练数据集 T T T,应用极大似然法估计模型参数,从而得到逻辑斯特回归模型,具体的:
设:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x) P(Y=1x)=π(x)P(Y=0x)=1π(x)
似然函数为:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi
对数似然函数为:
L ( w ) = ∑ i = 1 N [ y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ]    = ∑ i = 1 N [ y i ( w x i + b ) − log ⁡ ( 1 + e x p ( w x i + b ) ) ] L(w)=\sum_{i=1}^N[y_i\log\pi(x_i)+(1-y_i)\log(1-\pi(x_i))]\\ \ \ \quad\quad=\sum_{i=1}^N[y_i(wx_i+b)-\log(1+exp(wx_i+b))] L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]  =i=1N[yi(wxi+b)log(1+exp(wxi+b))]
L ( w ) L(w) L(w)求极大值,则可得到参数 w , b w,b w,b的估计值。(梯度下降法或拟牛顿法)
优点:

  • 速度快
  • 原理简单易理解,可以直接看到各项特征的权重
  • 模型更新容易,易于吸收新数据
  • 可动态调整分类阈值

缺点:

  • 特征处理复杂

逻辑回归常见面试问题

Nerual Network神经网络

优点:

  • 分类准确率高
  • 并行处理能力强
  • 分布式存储和处理能力强
  • 鲁棒性强,不易受噪声影响

缺点:

  • 结果难以解释
  • 需要大量参数
  • 训练时间较长

Adaboosting

优点:

  • 精确度高
  • 可用各种方法构建子分类器,Adaboost提供的是一个框架
  • 当使用简单分类器时,结果易于理解
  • 无需筛选特征
  • 不会过拟合

缺点:

  • 对outlier敏感

未完待续!

你可能感兴趣的:(常见机器学习分类算法)