机器学习常见算法

来源:互联网 发布:网络电视30天回看 编辑:程序博客网 时间:2024/05/10 20:25

分类算法

K近邻算法

  • 通俗理解:
    • 有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后挑离这个训练 数据最近的K个点看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。
  • 缺点:
    • 计算量太大
    • 对于样本分类不均衡问题会产生误判

贝叶斯方法

  • 地位:贝叶斯方法是机器学习的核心方法之一
  • 贝叶斯公式:就是概率论中学到的那个没有深刻理解的公式
    • P(Bi/A)=P(Bi)P(A|Bi)/{P(Bj)P(A|Bj)之和 j=[1,n]}
  • 贝叶斯公式是一个后验概率公式
  • 应用实例:
    1. 中文的词串分词功能,如给“南京市长江大桥”分词,有两种可能性
      • 南京市/长江大桥
      • 南京/市长/江大桥
      • 比较这两种分词方式那个更靠谱
      • 统计机器翻译
      • 问题描述:
        • 给定一个句子e,它的可能的外文翻译中哪个是最靠谱的
      • 贝叶斯图像识别http://mindhacks.cn/wp-content/uploads/2009/02/i3.jpg
      • 首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是 E 还是 F 还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。
      • EM算法与基于模型的聚类
      • 聚类是一种无指导的机器学习问题
      • 最大似然与最小二乘
  • 朴素贝叶斯方法
    • 朴素贝叶斯方法是一个很特别的方法
    • 条件独立假设,是朴素贝叶斯方法的朴素之处
  • 层级贝叶斯模型
    • 层级贝叶斯模型是现代贝叶斯方法的标志性建筑之一
    • 隐马可夫模型
  • 关于贝叶斯方法的一些总结
    • 贝叶斯分类法是基于贝叶斯定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分类。
    • 朴素贝叶斯分类法嘉定一个属性值在给定类的影响独立于其他属性的,即类条件独立性
    • 优点:
      • 所需估计的参数少,对于缺失的数据不敏感
    • 缺点:
      • 属性之间相互独立的假设往往并不成立
      • 需要知道先验概率

决策树

  • 概念:
    • 决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。决策树的每个内部节点表示在一个属性上的测试,每个分支代表该测试的一个输出,而每个树叶节点存放着一个类标号。
  • 优点:
    • 不需要任何领域知识
    • 适合高维数据
    • 简单易于理解
    • 短时间内处理大量数据,得到可行且效果较好的结果
  • 缺点:
    • 易于过拟合
    • 忽略属性之间的相关性

支持向量机(SVM)

  • 概念
    • 支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类
  • 优点
    • 可以解决小样本下机器学习的问题
    • 提高泛化性能
    • 可以解决高维、非线性问题。超高维文本分类受欢迎
    • 避免神经网络结构选择和局部极小问题
  • 缺点
    • 对缺失数据敏感
    • 内存消耗大
    • 运行和调差烦人

逻辑回归

神经网络

  • 优点
    • 分类准确度高
    • 并行处理能力强
    • 分布式存储和学习能力强
    • 健壮性较强,不易受噪声影响
  • 缺点
    • 结果难以解释
    • 需要大量参数
    • 训练时间过长

深度学习

集成学习

随机森林

其他暂时不知道是不是分类算法

无监督学习

主成分分析算法(PCA)

  • 地位:是最经典的降维算法
  • 作用:找到数据的主要成分,抛弃掉不重要的成分

层级聚类(Hierachical Cluster)

  • 定位:无监督学习算法
  • 算法过程:
    1. 初始时刻,所有点都自己是一个聚类
    2. 找到距离最近的两个聚类(刚开始也就是两个点),形成一个聚类
    3. 两个聚类的距离指的是聚类中最近的两个点之间的距离
    4. 重复第二步,直到所有的点都被聚集到聚类中。

K均值算法(KMeans)

  • 地位:是最常见的聚类算法
  • 算法步骤
    1. 随机在图中取K(这里K=3)个中心种子点。
    2. 然后对图中的所有点求到这K个中心种子点的距离,假如点P离中心点S最近,那么P属于S点的聚类。
    3. 接下来,我们要移动中心点到属于他的“聚类”的中心。
    4. 后重复第2)和第3)步,直到,中心点没有移动,那么算法收敛,找到所有的聚类

基于密度的聚类算法(DBSCAN——Density-Based Spatial Clustering of Application with Noise)

  • 基于的事实:一个聚类可以由其中的任何核心对象唯一确定。
  • 算法步骤:
    1. 扫描整个数据集,找到任意一个核心点,对该核心点进行扩充。扩充的方法是寻找从该核心点出发的所有密度相连的数据点(注意是密度相连)。
    2. 遍历该核心点的邻域内的所有核心点(因为边界点是无法扩充的),寻找与这些数据点密度相连的点,直到没有可以扩充的数据点为止。最后聚类成的簇的边界节点都是非核心数据点。
    3. 之后就是重新扫描数据集(不包括之前寻找到的簇中的任何数据点),寻找没有被聚类的核心点,再重复上面的步骤,对该核心点进行扩充直到数据集中没有新的核心点为止。数据集中没有包含在任何簇中的数据点就构成异常点。

监督学习

  • 对监督学习的理解:
    • 监督学习是针对已有的结果去预测新出现的数据。
      • 如果要预测的内容是数值类型,称作回归;
      • 如果要预测的内容是类别或者是离散的,称为分类
    • 回归和分类本质上是类似的,所以很多算法既可以用作分类,也可以用作回归。

线性回归——最经典的回归算法

原创粉丝点击