机器学习常见算法总结

偏差方差

偏差:预测值期望E与实际值的差距,差距越大,越偏离真实数据
方差:预测值变化范围,离散程度,离期望越远方差越大
模型与真实数据的误差是两者之和 Error = Bias + Variance
模型复杂度增加,偏差减小,方差变大**

小训练集偏向于高偏差/低方差模型,因为数据集小,高偏差/低方差模型(例如,朴素贝叶斯NB)容易过拟合(over fitting),大数据集模型对数据的拟合越好(偏差小,方差大)(例如,KNN),对真实数据的预测越接近数据本身的特征,效果越好

朴素贝叶斯

  • 强假设:特征独立
    这里写图片描述
  • 缺点:学习不到特征相关,无法处理特征冗余(预处理特征选择)
  • 优点:小规模数据效果好,多分类,增量式学习,缺失数据不敏感,常用于文本分类
  • 生成模型,拉普拉斯平滑

逻辑回归


  • 容易解释,线性分类模型
  • 在线学习:新数据在线梯度下降更新学习,单点梯度下降更新
  • 判别模型:没有学习概率分布,只是确定分类函数

  • 极大似然估计
    这里写图片描述
  • 梯度下降
    这里写图片描述

缺点

特征空间大时性能价差(解决方案:PCA主成分分析,特征选择)
容易欠拟合(解决方案:增加训练数据)
主要用于两分类(解决方案1:OVO,OVA, 解决方案2:softmax多分类)
适用于线性可分,非线性特征需要转换

线性回归

  • 最小二乘法,提速下降

    优点:实现简单,计算简单
    缺点:不能拟合非线性数据
    无法在线学习和并行

  • 最近邻KNN

    • 距离测度:常用欧式距离,余弦公式
    • 距离计算前K,投票确定标签
    • 基于实例学习,成本高,判别模型
    • 用于回归,K近邻属性均值即为回归值,或者根据距离加权均值
      优点:也适用于非线性数据,对数据未做假设,准确度高,异常点不敏感(异常点对分类影响比较小,去前K小,基本排除异常点的影响)

    缺点

    计算量大,基于实例每次便利全部数据计算距离(解决方案:KD树)
    样本不平衡效果差(负样本数量大影响分类,根据距离计算权值做优化)

    决策树

    • 易于解释,非线性分类
    • 不支持在线学习(新样本必须重新训练)
      ### 优点
    • 缺失值不敏感
    • 可以处理不相关特征
    • 短时间处理大数据集

    缺点

    • 容易过拟合(解决方案:剪枝,随机森林)
    • 忽略了数据相关性(每次选择最优划分,只考虑了单个特征)
    • 分类偏向于具有更多数值的特征(信息增益导致的只要使用信息增益会有这个问题)

    Adaboost

    • 前向加法模型
    • 关注误分类样本,增加误分类样本权值
    • 集成表决:错误率高表决权低
    • 弱分类器独立,准确度大于随即猜
    • 特征选择能力,泛化能力
    • 噪声敏感

    优点

    • 高精度分类:后一个分类器建立在前一个的误差之上
    • 可使用各种简单分类器,不做特征筛选
    • 不易发生过拟合

    K-means

    • 简单聚类,大数据集高效
    • 簇密集、簇之间区别明显时效果比较好
    • 适用于数值型数据,可能收敛至局部最小,大数据集收敛慢
    • k值难选(交叉验证),不使用差别较大的簇
    • 簇心敏感(K-means++,初始选择距离最远点作为簇心)
    • 对噪声和孤立点敏感(解决方案:k-medoids,选择簇内李均值点最小的点作为簇新,降低异常点对(均值簇心)的影响)

    SVM

    最大分类间隔:几何间隔与样本的误分次数间存在关系:
    这里写图片描述
    其中的分母就是样本到分类间隔距离,分子中的R是所有样本中的最长向量值)

    • 小样本收敛快,适用于非线性
    • 非线性核转换开销大,缺少直接的概率输出(只有分类结果)

    ME最大墒

    • 满足约速条件的模型中条件墒最大的模型
    • 天然多分类,输出分类概率,适用于大数据集

    Bagging

    >
    这里写图片描述
    最终的预测函数H对分类问题采用投票方式,对回归问题采用简单平均方法对新示例进行判别。

    EM期望最大化

    EM算法通过引入隐含变量,使用MLE(极大似然估计)进行迭代求解参数。通常引入隐含变量后会有两个参数,EM算法首先会固定其中的第一个参数,然后使用MLE计算第二个变量值;接着通过固定第二个变量,再使用MLE估测第一个变量值,依次迭代,直至收敛到局部最优解。

    降维

    PCA

    目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。

    1. 设n维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:
      这里写图片描述
    2. 其中m是数据实例的个数, xi是数据实例i的向量表达, x拔是所有数据实例的平均向量。定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,可以得到如下优化目标函数:
      这里写图片描述
      这里写图片描述
    3. A是数据协方差矩阵。
      容易得到最优的W是由数据协方差矩阵前k个最大的特征值对应的特征向量作为列向量构成的。这些特征向量形成一组正交基并且最好地保留了数据中的信息。
      PCA的输出就是Y = W‘X,由X的原始维度降低到了k维。

    PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。但是这样投影以后对数据的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好

    LDA

    与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分
    找到映射向量a, 使得 a‘X后的数据点能够保持以下两种性质:
    1、同类的数据点尽可能的接近(within class)
    2、不同类的数据点尽可能的分开(between class

    Regularization作用:

    1. 数值上更容易求解;
    2. 特征数目太大时更稳定;
    3. 控制模型的复杂度,光滑性。复杂性越小且越光滑的目标函数泛化能力越强。而加入规则项能使目标函数复杂度减小,且更光滑。
    4. 减小参数空间;参数空间越小,复杂度越低。
    5. 系数越小,模型越简单,而模型越简单则泛化能力越强(Ng宏观上给出的解释)。
    6. 可以看出是权值的高斯先验。

    过拟合

    • 产生的原因

      因为参数太多,会导致我们的模型复杂度上升,容易过拟合
      权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.

    • 解决方法

      交叉验证法
      减少特征
      正则化
      权值衰减
      验证数据

    线性与非线性


    • 如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。

    常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归
    常见的非线性分类器:决策树、RF、GBDT、多层感知机
    SVM两种都有(看线性核还是高斯核)
    线性分类器速度快、编程方便,但是可能拟合效果不会很好
    非线性分类器编程复杂,但是效果拟合能力强

  • 特征比数据量还大时,选择什么样的分类器?

    线性分类器,因为维度高的时候,数据一般在维度空间里面会比较稀疏,很有可能线性可分

  • 对于维度很高的特征,你是选择线性还是非线性分类器?
    理由同上
  • 对于维度极低的特征,你是选择线性还是非线性分类器?
    非线性分类器,因为低维空间可能很多特征都跑到一起了,导致线性不可分
  • 多重共线性

    特征之间高度相关
    - 决策树(每次选择最有特征划分,不考虑特证间关联),朴素贝叶斯(直接假设特征独立)不存在多重共线性影响
    - 预测问题可以包容共线性特征,关注预测的准确性
    - 解释问题关注每个特征的影响因子,多元共线性阻碍了这种解释学习

    生成模型与判别模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值