分类 机器学习 下的文章

决策树(ID3)算法的实现和运用


  决策树简单来说是一种可用于问题判定的树形结构。如下图,就是一个决策树: 1.png

  椭圆表示终止模块,矩形表示判断模块,箭头称为分支。决策树虽然看起来简单,但在数据挖掘,人工智能等领域有着广泛应用。这里介绍的决策树称为ID3,它无法直接用于处理数值型数据。

  算法分析   优点:复杂度不高,对中间值缺失不敏感,可处理不相关数据   缺点:会产生过度匹配问题   适用数据类型:标称型

  要构造决策树,很重要的一步就是划分数据集。为了找到决定性特征,必须对每一种特征进行评估,并对原始数据集进行划分,划分后的子集分布于第一个决策点的所有分支上,如果某分支下的数据属于同一类型,则无需进一步划分,否则重复划分直至相同。那么,划分数据集的原则是什么呢? 将无序数据变得有序。这里涉及到信息熵的概念,详细介绍可以参考信息熵,这里我们只需要知道计算公式:H(x) = E[I(xi)] = E[ log(2,1/p(xi)) ] = -∑p(xi)log(2,p(xi)) (i=1,2,..n)


kNN算法的实现和运用


kNN就是k-近邻算法,它的工作原理是:存在样本数据集,且样本中每个数据都有标签。在输入没有标签的数据后,将新数据的特征与样本进行比对,可以从样本中提取出最相似数据的标签。一般来说,只选取样本中前K个最相似数据(一般k<20)。最后,选取k个最相似数据中出现最多次的分类,作为新数据的分类。

算法分析 优点:精度高,对异常值不敏感,无输入假定 缺点:空间和计算复杂度高 适用数据:数值型和标称型

Python实现:


Theano+Lasagne 实现手写数字识别


  Python在机器学习领域的地位越来越重要了,不仅因为它的简洁快速,更重要的是众多的社区和库的支持。   下面介绍几个非常不错的Python深度学习库:Theano,Pylearn2,Blocks,Keras,Lasagne   详细介绍可以参照链接中的文章。

  本文来说说用Theano+Lasagne来实现。

  Theano是一个强大的库,几乎能在任何情况下使用,从简单的logistic回归到建模并生成音乐和弦序列或是使用长短期记忆人工神经网络对电影收视率进行分类。更为重要的是它可以使用了Cython和CUDA来加速,大大提高了效率。   而Lasagne则是基于Theano构建的库,可以更便捷得实现深度学习功能,二者缺一不可。