Fork me on GitHub

Other articles

  1. 机器学习算法之K近邻(k nearest neighbors)

    1. K近邻算法

    什么是K近邻算法?简单的说就是:给定所有训练数据和一组测试数据之后,在训练数据中寻找离这组测试数据最近的K组邻居,根据这K组邻居的label来做voting/average,从而预测出测试数据的label。

    knn-sample

    如上图所示,绿色圆圈是测试数据,其余为训练数据。假设K == 3,即寻找离测试数据最近的三个邻居,如图中黑色实线圆中的三个邻居(两个红色三角形,一个蓝色正方形)。在这三个邻居中,少数服从多数,所以测试数据就被分类为红色三角形。假设K == 5,那虚线圆中的5个邻居就是离测试数据最近的5个邻居,里面有三个蓝色正方形和2个红色三角形,所以少数服从多数,测试数据被分类为蓝色正方形。

    2. 距离度量

    那么如何找到最近的K个邻居呢?换句话说,如何度量样本之间的距离?

    最常用的距离度量方式自然是欧式距离,类似的还有马氏距离。本质上来说,寻找最近的邻居无非就是寻找最相似的邻居,所以余弦相似度这类相似度度量方式也完全可以在此处使用。

    3. Search algorithms

    接下来介绍查找最近K个邻居的算法:Brute Force, K-D ...

    read more
  2. 机器学习算法之决策树(decision tree)

    modeling

    先简单地举一个例子,看看什么是决策树。以下是一棵分类树,决定下班后是否要观看机器学习公开课。

    DT

    我们可以看到从根节点开始往下会有分支,最终会走向叶子节点,得到分类结果。每一个非叶子节点都是一个特征,上图中共有三维特征。决策树是所有机器算法中与人脑处理问题方式最接近的算法,所以很好理解。一棵决策树可以被抽象成以下数学公式:

    DTmodel

    T是路径总数/叶子节点总数(上图中有6个叶子节点),g_t(x)base hypothesis,上图中是常量Y/Nq_t(x)可以理解成g_t(x)的权重,取值为1或0:

    is x on path t ? 1 : 0;
    

    我们也可以用递归的视角来看决策树:

    recursiveDTmodel

    G_c(x)是当前节点的子树:

    tree = (root, sub-trees)
    

    构建一棵决策树

    按照以下伪代码我们可以递归式地构建一棵决策树:

    function DecisionTree ...
    read more

Page 1 / 1

blogroll

social